skills/algokit-utils-py/SKILL.md
Guide for writing Python code with AlgoKit Utils (`algokit-utils`). Use this skill whenever the user is building on Algorand with Python — client setup, account management, payments, ASA operations, atomic transaction groups, smart contract deployment and interaction (AppFactory, AppClient, ARC-56/ARC-32 specs), raw app calls, TEAL compilation, key registration, network management, error handling, and the low-level crypto primitives in `algokit_crypto` (Ed25519 keygen/signing/verification, Peikert xHD BIP44 wallets, wrapped-secret patterns) and `algokit_common` (`sha512_256`). Trigger on imports from `algokit_utils` or `algokit_crypto`, references to `AlgorandClient`, `AppFactory`, `AppClient`, `AlgoAmount`, `ed25519_generator`, `peikert_hd_wallet_generator`, `sha512_256`, `WrappedEd25519Seed`, or `RawEd25519Signer`, or any Python code that builds on Algorand.
npx skillsauth add algorand-devrel/algorand-agent-skills algokit-utils-pyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill targets version 5.x of algokit-utils.
This skill provides idiomatic patterns for algokit-utils (Python).
When helping users, prefer the patterns below over raw algosdk calls — AlgoKit Utils wraps the
SDK with higher-level, type-safe abstractions.
Reference docs are split into individual files under references/. Only read the file(s) relevant
to the user's question — this keeps context lean. The table below maps topics to filenames.
AlgorandClient.default_localnet(),
.testnet(), .mainnet(), .from_config(), .from_clients(), or .from_environment().algo(5), micro_algo(1000),
AlgoAmount.from_algo(5), or AlgoAmount(algo=5).algorand.account.*) handles key generation, mnemonics, multisig, logic
sigs, rekeyed accounts, funding, and signer registration.algorand.new_group()) builds atomic groups with fluent chaining.
Supports .add_payment(), .add_asset_transfer(), .add_app_call_method_call(), etc.on_update/on_schema_break strategies and template variable substitution.params builder for deferred composition.algorand.send.app_call(), .app_create(), .app_update(),
.app_delete(), .app_call_method_call(), .app_create_method_call() when you don't have an app spec.algorand.app.compile_teal() and .compile_teal_template() with
caching and template variable substitution.algokit_crypto package that ships alongside
algokit-utils. This module carries Ed25519 keypair generation/signing/verification
(ed25519_generator, ed25519_verifier), the Peikert xHD BIP44 wallet
(peikert_hd_wallet_generator), and the wrapped-secret pattern for HSM/KMS-backed keys
(WrappedEd25519Seed, WrappedHdExtendedPrivateKey,
ed25519_signing_key_from_wrapped_secret). The Algorand SHA-512/256 primitive lives in
algokit_common as sha512_256. Reach for these when you are building a custom
RawEd25519Signer, deriving deterministic accounts from a seed, or computing
Algorand-compatible hashes outside the transaction path.PaymentParams, AssetCreateParams) — pass them
positionally to algorand.send.* methods.AlgoAmount.algo returns Decimal (not number); .micro_algo returns int (not bigint).asset_opt_out() takes ensure_zero_balance as a keyword argument outside the params object.from_clients() accepts pre-created SDK clients (AlgodClient, IndexerClient, KmdClient).LogicError (AVM failures), TransactionComposerError (group failures).(Exception) -> Exception, not async.Read only the file(s) relevant to the user's current question.
| File | What it covers |
|------|---------------|
| references/getting-started.md | Installation (pip install algokit-utils), imports, LocalNet prerequisites |
| references/client-initialization.md | LocalNet, TestNet, MainNet, custom config, from_clients, env vars |
| references/account-management.md | Random accounts, mnemonics, rekeyed, multisig, logic sigs, funding, signers |
| references/algoamount-and-value-handling.md | algo(), micro_algo(), conversions, transaction fees |
| references/payment-transactions.md | Simple payments, unsigned txns, notes, leases, fee control, close account |
| references/asset-operations.md | Create, opt-in/out, transfer, freeze, config, destroy, bulk ops, get info |
| references/key-registration.md | Online/offline key registration for consensus participation |
| references/transaction-composition.md | Atomic groups, multi-signer, atomic swaps, build/send/simulate, clone |
| references/smart-contract-deployment.md | AppFactory, bare/ABI create, idempotent deploy, template vars |
| references/smart-contract-interaction.md | AppClient, ABI calls, bare calls, global/local/box state, params builder |
| references/raw-app-calls.md | Low-level app create/call/update/delete, ABI method calls without app spec |
| references/compile-teal.md | compile_teal, compile_teal_template, template variable substitution |
| references/network-and-client-management.md | Algod/indexer/kmd access, LocalNet detection, validity window, params cache |
| references/configuration-and-global-settings.md | populate_app_call_resources, debug mode, trace collection, logging |
| references/error-handling.md | LogicError, parse_logic_error, TransactionComposerError, error transformers |
| references/ed25519.md | Ed25519 keypair generation, raw signers, signature verification, pinned PyNaCl backend |
| references/hashing.md | Algorand SHA-512/256 sha512_256, multisig and logic sig address construction |
| references/hd-wallets.md | peikert_hd_wallet_generator, BIP44 paths, multi-account derivation, wiring into AccountManager |
| references/wrapped-secrets.md | WrappedEd25519Seed, WrappedHdExtendedPrivateKey, ed25519_signing_key_from_wrapped_secret, HSM/KMS patterns |
algorand.send.* builds, signs, and submits in one call.algorand.create_transaction.* builds without signing or sending.app_client.params.* builds call params for deferred use in groups.app_client.send.bare.* for bare calls; app_client.send.call() for ABI calls.simulate — no fees spent.algorand.account.ensure_funded() is idempotent — skips if balance is already sufficient.factory.deploy() is idempotent — creates, updates, replaces, or no-ops based on state.config.configure(populate_app_call_resources=True) to auto-populate app call resources.Method.from_signature("hello(string)string") for raw ABI method calls without app spec.generate_address_with_signers(ed25519_pubkey, raw_ed25519_signer) from algokit_transact
takes the pubkey and raw signer as separate positional args (plus an optional
sending_address kwarg for rekeyed wiring) — unlike the TypeScript helper, it does not
accept a single Ed25519SigningKey object. Pass its .signer to
algorand.account.set_signer(addr, signer) — hardware wallets, KMS, and HD-derived keys all
plug in through this one entry point.ed25519_generator, ed25519_verifier, and ed25519_signing_key_from_wrapped_secret are
aliases that currently point at the PyNaCl-backed pynacl_* variants. Import the pynacl_*
names directly when you need to pin the backend across future releases.ed25519_signing_key_from_wrapped_secret always zeroes the unwrapped bytearray after use
and raises an ExceptionGroup (from the exceptiongroup backport) when both the operation
and the re-wrap fail — never catch and discard it silently.raw_ed25519_signer(bytes) returns bytes, not a
coroutine.tools
Guide for writing TypeScript code with AlgoKit Utils (`@algorandfoundation/algokit-utils`). Use this skill whenever the user is building on Algorand with TypeScript — client setup, account management, payments, asset operations, atomic transaction groups, smart contract deployment and interaction (AppFactory, AppClient, ARC-56/ARC-32 specs), raw app calls, key registration, network management, testing with algorandFixture, error handling, and the low-level crypto primitives under `@algorandfoundation/algokit-utils/crypto` (Ed25519 keygen/signing/verification, SHA-512/256 `hash`, Peikert xHD BIP44 wallets, wrapped-secret patterns). Trigger on imports from `@algorandfoundation/algokit-utils` (incl. `/crypto`, `/testing`, `/transact` subpaths), references to `AlgorandClient`, `AppFactory`, `AppClient`, `AlgoAmount`, `algorandFixture`, `ed25519Generator`, `peikertXHdWalletGenerator`, `hash`, `WrappedEd25519Seed`, or `RawEd25519Signer`. Also on any TypeScript or JavaScript code that builds on Algorand.
tools
Builds x402 HTTP-native payment applications on Algorand using TypeScript. Covers clients (fetch, axios), servers (Express, Hono), facilitators, paywalls, Next.js integration, and the @x402-avm core library. Use when implementing x402 payment flows in TypeScript, creating payment-gated APIs, building x402 facilitators or paywalls, or integrating @x402-avm packages.
tools
Builds x402 HTTP-native payment applications on Algorand using Python. Covers clients (httpx, requests), servers (FastAPI, Flask), facilitators, Bazaar discovery, and the x402-avm core library. Use when implementing x402 payment flows in Python, creating payment-gated APIs, building x402 facilitators, or integrating x402-avm packages.
tools
--- name: algorand-typescript description: Develops Algorand smart contracts in TypeScript using Algorand TypeScript (PuyaTs). Covers contract syntax, AVM types, storage patterns, transactions, ABI methods, testing, deployment, and AlgoKit Utils. Use when: (1) writing or modifying .algo.ts smart contracts, (2) using uint64, bytes, GlobalState, BoxMap, LocalState, itxn, gtxn in contracts, (3) testing contracts with algorandFixture/Vitest, (4) deploying or calling contracts with typed clients, (5)