Interact with the Algorand blockchain via the Algorand MCP server — wallet operations, ALGO/ASA transactions, smart contracts, account info, NFD lookups, atomic groups, Tinyman swaps, TEAL compilation, knowledge base. Use when a user asks about Algorand wallets, balances, sending ALGO or tokens, asset opt-in, transactions, NFD names, DEX swaps, smart contracts, or account details.
Interact with Algorand blockchain through the Algorand MCP server (126 tools across 16 categories, including x402 payments and Bazaar discovery).
~/.algorand-mcp/wallet.db (file mode 0600) and signs transactions on your behalf via the wallet_* tools. Mnemonics are never returned in tool responses. The DB file IS the secret — protect the data directory like any secret material (relevant for Docker: mount ~/.algorand-mcp as a persistent volume).mainnet, testnet, and localnetWhen calling Algorand MCP tools via mcporter, use the correct syntax:
Correct:
mcporter call algorand-mcp.tool_name --args '{"param": "value", "network": "testnet"}'
Also correct (flag-style):
mcporter call algorand-mcp.tool_name param=value network=testnet
Wrong — args not sent properly:
mcporter call algorand-mcp tool_name '{"param": "value"}' # Space instead of dot, missing --args
Key points:
server.tool (dot notation), NOT server tool (space)--args '{"json"}' for JSON payloadsparam=value / param:value flag syntaxAt EVERY session start:
wallet_get_info with target network — verify an account exists and is activewallet_add_account (sets nickname)generate_algorand_qrcode or direct to testnet faucet: https://lora.algokit.io/testnet/fundgenerate_algorand_qrcode or direct to testnet faucet: https://faucet.circle.com/mainnet, testnet, localnet) before transactionsEvery tool that touches the blockchain accepts a network parameter:
| Value | Description |
|-------|-------------|
| testnet | Algorand testnet — default if omitted (algorand-mcp 4.2.5+), safe for development |
| mainnet | Algorand mainnet — real value, exercise caution. Pass only when the user explicitly names mainnet |
| localnet | Local dev network (requires ALGORAND_LOCALNET_URL env var) |
Mainnet is never implicit. If the user does not name a network, use testnet. Switch to mainnet only on an explicit user instruction, and confirm the full action (amount, asset, sender, receiver, network) before signing.
Before ANY transaction:
api_algod_get_account_asset_info before ASA transferswallet_get_info or api_algod_get_account_info| Asset | ASA ID | Decimals | |-------|--------|----------| | ALGO | native | 6 | | USDC | 31566704 | 6 | | USDT | 312769 | 6 | | goETH | 386192725 | 8 | | goBTC | 386195940 | 8 |
Always verify asset IDs on-chain — scam tokens use similar names.
| Asset | Unit | 1 Whole Token = |
|-------|------|-----------------|
| ALGO | microAlgos | 1,000,000 |
| USDC (ASA 31566704) | micro-units | 1,000,000 (6 decimals) |
| Custom ASAs | base units | Depends on decimals field |
Always check asset's decimals field with api_algod_get_asset_by_id before computing amounts.
make_payment_txnmake_asset_transfer_txnmake_asset_create_txn, make_asset_config_txn, make_asset_destroy_txnmake_asset_freeze_txnmake_app_create_txn, make_app_call_txn, make_app_update_txn, make_app_delete_txn, make_app_optin_txn, make_app_closeout_txn, make_app_clear_txnmake_keyreg_txn| Step | Tool | Purpose |
|------|------|---------|
| 1 | wallet_get_info | Verify active account, check balance |
| 2 | Query tools | Get blockchain data (account info, asset info, etc.) |
| 3 | make_*_txn | Build the transaction |
| 4 | wallet_sign_transaction | Sign with active wallet account |
| 5 | send_raw_transaction | Submit signed transaction to network |
| 6 | Present txID | Show transaction ID with explorer link (see below) |
ALWAYS present the transaction ID to the user after any successful transaction submission. Use the correct explorer link based on the network:
| Network | Explorer Link Template |
|---------|----------------------|
| mainnet | https://allo.info/tx/{txId} |
| testnet | https://lora.algokit.io/testnet/transaction/{txId} |
Example output after a testnet transaction:
Transaction confirmed!
TXID123...View on explorer: https://lora.algokit.io/testnet/transaction/TXID123...
Example output after a mainnet transaction:
Transaction confirmed!
TXID456...View on explorer: https://allo.info/tx/TXID456...
This applies to ALL transaction types: payments, asset transfers, opt-ins, app calls, atomic groups, and any other operation that yields a transaction ID.
For asset opt-ins, use the shortcut:
wallet_optin_asset { assetId: 31566704, network: "testnet" }
When the user provides their own secret key (not using the wallet):
| Step | Tool | Purpose |
|------|------|---------|
| 1 | make_*_txn | Build the transaction |
| 2 | sign_transaction | Sign with provided secret key hex |
| 3 | send_raw_transaction | Submit signed transaction |
| 4 | Present txID | Show transaction ID with explorer link |
For atomic (all-or-nothing) multi-transaction groups:
| Step | Tool | Purpose |
|------|------|---------|
| 1 | make_*_txn (multiple) | Build each transaction |
| 2 | assign_group_id | Assign group ID to all transactions |
| 3 | wallet_sign_transaction_group | Sign all transactions in group with wallet |
| 4 | send_raw_transaction | Submit all signed transactions |
| 5 | Present txIDs | Show all transaction IDs with explorer links |
Wallet (10): wallet_add_account, wallet_remove_account, wallet_list_accounts, wallet_switch_account, wallet_get_info, wallet_get_assets, wallet_sign_transaction, wallet_sign_transaction_group, wallet_sign_data, wallet_optin_asset
Account (8): create_account, rekey_account, mnemonic_to_mdk, mdk_to_mnemonic, secret_key_to_mnemonic, mnemonic_to_secret_key, seed_from_mnemonic, mnemonic_from_seed
Utility (13): ping, validate_address, encode_address, decode_address, get_application_address, bytes_to_bigint, bigint_to_bytes, encode_uint64, decode_uint64, verify_bytes, sign_bytes, encode_obj, decode_obj
Transaction Building (18): make_payment_txn, make_keyreg_txn, make_asset_create_txn, make_asset_config_txn, make_asset_destroy_txn, make_asset_freeze_txn, make_asset_transfer_txn, make_app_create_txn, make_app_update_txn, make_app_delete_txn, make_app_optin_txn, make_app_closeout_txn, make_app_clear_txn, make_app_call_txn, assign_group_id, sign_transaction, encode_unsigned_transaction, decode_signed_transaction
Algod (5): compile_teal, disassemble_teal, send_raw_transaction, simulate_raw_transactions, simulate_transactions
Algod API (13): api_algod_get_account_info, api_algod_get_account_application_info, api_algod_get_account_asset_info, api_algod_get_application_by_id, api_algod_get_application_box, api_algod_get_application_boxes, api_algod_get_asset_by_id, api_algod_get_pending_transaction, api_algod_get_pending_transactions_by_address, api_algod_get_pending_transactions, api_algod_get_transaction_params, api_algod_get_node_status, api_algod_get_node_status_after_block
Indexer API (17): api_indexer_lookup_account_by_id, api_indexer_lookup_account_assets, api_indexer_lookup_account_app_local_states, api_indexer_lookup_account_created_applications, api_indexer_lookup_account_transactions, api_indexer_search_for_accounts, api_indexer_lookup_applications, api_indexer_lookup_application_logs, api_indexer_lookup_application_box, api_indexer_lookup_application_boxes, api_indexer_search_for_applications, api_indexer_lookup_asset_by_id, api_indexer_lookup_asset_balances, api_indexer_lookup_asset_transactions, api_indexer_search_for_assets, api_indexer_lookup_transaction_by_id, api_indexer_search_for_transactions
NFDomains (6): api_nfd_get_nfd, api_nfd_get_nfds_for_addresses, api_nfd_get_nfd_activity, api_nfd_get_nfd_analytics, api_nfd_browse_nfds, api_nfd_search_nfds
Tinyman DEX (9): api_tinyman_get_pool, api_tinyman_get_pool_analytics, api_tinyman_get_pool_creation_quote, api_tinyman_get_liquidity_quote, api_tinyman_get_remove_liquidity_quote, api_tinyman_get_swap_quote, api_tinyman_get_asset_optin_quote, api_tinyman_get_validator_optin_quote, api_tinyman_get_validator_optout_quote
Haystack Router (3): api_haystack_get_swap_quote, api_haystack_execute_swap, api_haystack_needs_optin — DEX-aggregated swaps across Tinyman V2, Pact, Folks with optimal routing. See the haystack-router-interaction skill for detailed workflows and reference docs.
Pera Asset Verification (3): api_pera_asset_verification_status, api_pera_verified_asset_details, api_pera_verified_asset_search — mainnet asset verification (verified/trusted/suspicious/unverified), detailed asset info with USD value, and search by name/keyword
ARC-26 URI (1): generate_algorand_qrcode
Knowledge Base (1): get_knowledge_doc
x402 Payments (2): x402_discover_payment_requirements, make_http_request_with_x402 — probe an x402-protected endpoint for payment requirements, then pay-and-fetch in one call. See the x402 Payment Workflow section below for the supervised pattern.
x402 Bazaar Discovery (3): bazaar_list, bazaar_search, bazaar_get_resource_details — browse and search the Bazaar discovery directory hosted by the configured facilitator (facilitator.goplausible.xyz by default) to find paid resources cataloged across the x402 ecosystem before calling make_http_request_with_x402. See the x402 Bazaar Discovery section below for the recommended pattern.
API responses are paginated. All API tools accept optional itemsPerPage (default 10) and pageToken parameters. Pass pageToken from a previous response to fetch the next page.
For paid HTTP resources (HTTP 402 responses), Bazaar discovery, and any workflow involving the five x402 tools (x402_discover_payment_requirements, make_http_request_with_x402, bazaar_list, bazaar_search, bazaar_get_resource_details), load the dedicated algorand-x402-payment skill. It covers:
maxAmountPerRequest as a budget cappaymentRequirements[N] must be an OBJECT schema failure, etc.)Trigger to load: any time you encounter an HTTP 402 response, the user mentions x402 / paid APIs / paid resources / Bazaar / "find me a paid X", or you need to call any of the five tools listed above.
Trade on-chain prediction markets (YES/NO outcomes) denominated in USDC via the Alpha Arcade integration (14 tools).
| Step | Tool | Purpose |
|------|------|---------|
| 1 | wallet_get_info | Verify active account, check ALGO + USDC balance |
| 2 | alpha_get_live_markets | Browse available markets |
| 3 | alpha_get_orderbook | Check liquidity and prices for a market |
| 4 | alpha_create_market_order or alpha_create_limit_order | Place an order |
| 5 | alpha_get_positions / alpha_get_open_orders | Check portfolio |
All prices and quantities use microunits (1,000,000 = $1.00 or 1 share). Orders require both ALGO (~0.957 per escrow) and USDC collateral.
For detailed Alpha Arcade workflows (orderbook mechanics, multi-choice markets, split/merge shares, claiming, collateral model), load the
alpha-arcade-interactionskill.
generate_algorand_qrcode generates an Algorand payment URI and QR code per ARC-26 specification via QRClaw service.
Parameters:
| Parameter | Required | Description |
|-----------|----------|-------------|
| address | Yes | Receiver Algorand address |
| label | No | Payment label |
| amount | No | Amount in microunits (e.g. 1000000 = 1 ALGO or 1 USDC) |
| asset | No | ASA ID for asset transfers; omit or 0 for ALGO |
| note | No | Payment note |
| xnote | No | Exclusive immutable note |
Returns:
qr — UTF-8 text QR code (terminal-friendly)uri — the algorand:// URI stringlink — shareable hosted QR URL (via QRClaw service)expires_in — link validity periodChannel-Aware Output:
After calling generate_algorand_qrcode, tailor output to the channel:
TUI / Web channels (terminal, web UI, canvas):
qr inside a code fencealgorand:// URI for wallet deep linkslinkExample:
[paste UTF-8 QR here]
URI: algorand://...
Shareable QR: [link URL]
Social channels (Telegram, Discord, WhatsApp, Signal, Slack, IRC, etc.):
For detailed tool documentation:
For workflow examples (including x402 payment):
When using NFD (.algo names), always use the depositAccount field from the NFD response for transactions, NOT other address fields.
wallet_* tools for signingvalidate_address — transactions are irreversibleapi_pera_asset_verification_status — scam tokens use similar namesSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer