From algorand-plugin
Interact with Algorand blockchain via the Algorand MCP server — wallet operations, ALGO/ASA transactions, smart contracts, account info, NFD lookups, atomic groups, Tinyman swaps, Haystack Router best-price swaps, Alpha Arcade prediction markets, Pera asset verification, TEAL compilation, knowledge base. Use when user asks about Algorand wallet, balances, sending ALGO or tokens, asset opt-in, transactions, NFD names, DEX swaps, DEX aggregation, best-price routing, prediction markets, Alpha Arcade, asset verification, smart contracts, or account details.
How this skill is triggered — by the user, by Claude, or both
Slash command
/algorand-plugin:algorand-interactionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Interact with Algorand blockchain through the Algorand MCP server (122 tools across 14 categories).
Interact with Algorand blockchain through the Algorand MCP server (122 tools across 14 categories).
wallet_* tools to sign; private keys are never available to youmainnet, testnet, and localnetallowance) and daily (dailyAllowance) limits enforced by walletMCP tools are deferred — you MUST use ToolSearch to load them before calling:
ToolSearch("+algorand wallet") # Search by keyword — loads matching tools
ToolSearch("select:mcp__algorand-mcp__wallet_get_info") # Load a specific tool by full name
Once loaded, call them normally:
mcp__algorand-mcp__wallet_get_info { "network": "testnet" }
mcp__algorand-mcp__make_payment_txn { "from": "ADDR", "to": "ADDR", "amount": 1000000, "network": "testnet" }
Full tool name pattern: mcp__algorand-mcp__<tool_name>. If you get "tool not found", use ToolSearch("+algorand <keyword>") to load it first.
At EVERY session start:
ToolSearch("+algorand wallet") to load wallet tools — MCP tools are deferred and MUST be loaded via ToolSearch before usemcp__algorand-mcp__wallet_get_info with target network — verify an account exists and is activewallet_add_account (load via ToolSearch first)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 transactionsToolSearch("+algorand <keyword>") to load tools for the task at handEvery tool that touches the blockchain accepts a network parameter:
| Value | Description |
|---|---|
mainnet | Algorand mainnet (default) — real value, exercise caution |
testnet | Algorand testnet — safe for development |
localnet | Local dev network (requires ALGORAND_LOCALNET_URL env var) |
Default to testnet during development.
Before ANY transaction:
api_algod_get_account_asset_info before ASA transferswallet_get_info or api_algod_get_account_infoallowance) and daily (dailyAllowance) limits. Setting either to 0 means unlimited| 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. Use
api_pera_asset_verification_statusto check verification tier before transacting unknown assets.
| 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 (enforces limits) |
| 5 | send_raw_transaction | Submit signed transaction to network |
| 6 | Query tools | Verify result on-chain |
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 |
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 |
Haystack Router aggregates quotes across multiple Algorand DEXes (Tinyman, Pact, Folks) and LST protocols (tALGO, xALGO) to find the optimal swap route.
| Step | Tool | Purpose |
|---|---|---|
| 1 | wallet_get_info | Verify active account, check balance |
| 2 | api_haystack_needs_optin | Check if address needs opt-in for the target asset |
| 3 | wallet_optin_asset | Opt-in if needed |
| 4 | api_haystack_get_swap_quote | Preview best-price quote — show user output, USD values, route, price impact |
| 5 | User confirms | Always confirm before executing |
| 6 | api_haystack_execute_swap | All-in-one: quote + sign via wallet + submit + confirm |
CRITICAL — Swap direction (
typeparameter):
- "Buy 10 ALGO" → user wants exactly 10 ALGO out →
type: "fixed-output",amount= 10000000- "Sell/swap 10 ALGO" → user spends exactly 10 ALGO →
type: "fixed-input",amount= 10000000- "Buy USDC for 10 ALGO" → user spends exactly 10 ALGO →
type: "fixed-input",amount= 10000000- Rule: "buy X of Y" = fixed-output. "sell/swap/use X of Y" = fixed-input. If ambiguous, ask.
For detailed Haystack Router workflows (batch swaps, configuration, slippage guidance), load the
haystack-router-interactionskill. For building swap UIs or integrating the@txnlab/haystack-routerSDK, load thehaystack-router-developmentskill.
Alpha Arcade provides on-chain prediction markets on Algorand. All collateral and payouts are in USDC (ASA 31566704). Prices and quantities use microunits (1,000,000 = $1.00 or 1 share).
| Step | Tool | Purpose |
|---|---|---|
| 1 | wallet_get_info | Verify active account, check ALGO + USDC balances |
| 2 | alpha_get_live_markets | Browse available markets (or alpha_get_reward_markets for rewarded markets) |
| 3 | alpha_get_orderbook | Check available liquidity for a specific market |
| 4 | alpha_create_market_order | Auto-match at best price (fills immediately → becomes position) |
| 4alt | alpha_create_limit_order | Place at specific price (rests on orderbook until matched) |
| 5 | alpha_get_positions | Check token balances (filled orders) |
| 5alt | alpha_get_open_orders | Check unfilled limit orders |
CRITICAL — Prices are microunits, NOT percentages:
yesProb/noProbrange 0–1,000,000. $0.50 = 500,000. Dividing by 100 instead of 1,000,000 causes uint64 overflow and transaction failures.
Orders require both ALGO and USDC: ~0.957 ALGO locked per order (MBR) + USDC collateral for buys. "Overspend" errors mean insufficient ALGO or USDC.
Market orders become positions, not open orders: After fill, check
alpha_get_positions— notalpha_get_open_orders.
Multi-choice markets: Trade using
options[].marketAppId, not the parent market ID.
For detailed Alpha Arcade workflows (orderbook mechanics, collateral, amend/cancel, split/merge, claiming), load the
alpha-arcade-interactionskill.
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 (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_search_for_accounts, api_indexer_lookup_applications, api_indexer_lookup_application_logs, api_indexer_search_for_applications, api_indexer_lookup_application_box, api_indexer_lookup_application_boxes, 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_lookup_account_transactions, 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
Pera Asset Verification (3): api_pera_asset_verification_status, api_pera_verified_asset_details, api_pera_verified_asset_search
Alpha Arcade (15): Read: alpha_get_live_markets, alpha_get_reward_markets, alpha_get_market, alpha_get_orderbook, alpha_get_open_orders, alpha_get_positions. Trade: alpha_create_limit_order, alpha_create_market_order, alpha_cancel_order, alpha_amend_order, alpha_propose_match, alpha_split_shares, alpha_merge_shares, alpha_claim
For detailed Alpha Arcade workflows (orderbook mechanics, collateral, limit vs market orders), load the
alpha-arcade-interactionskill.
ARC-26 URI (1): generate_algorand_qrcode
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 periodAfter calling the tool, extract and paste the QR code directly in your response. Always include all of these in your reply:
qr. Paste inside a code block.link, so users can share or open it in a browser.Knowledge Base (1): get_knowledge_doc
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.
IMPORTANT: Do NOT attempt x402 payments using only this skill. When you encounter an HTTP 402 response or need to pay for an x402-protected resource, you MUST load the algorand-x402-payment skill which contains the complete, authoritative payment flow.
This skill provides the MCP tools needed for x402 (wallet, transactions, signing), but the algorand-x402-payment skill has the correct payload format, critical rules, and step-by-step recipe.
For reference examples, see references/examples-algorand-mcp.md.
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 irreversiblenpx claudepluginhub goplausible/claude-algorand-plugin --plugin algorand-pluginUse the Alchemy CLI for live blockchain queries, token/NFT lookups, transaction simulation, webhook management, and Alchemy app admin. Ideal for agent-driven automation, not production code.
Accesses Alchemy APIs for RPC, tokens, NFTs, transfers, and transaction simulation. Supports API key, x402 (USDC), and MPP (USDC/Stripe) auth on EVM and SVM.
Builds unsigned DeFi transactions from natural language intents across EVM chains like Ethereum, Arbitrum, Base, Optimism, Polygon. Supports send, swap, stake, lend on Aave, Uniswap, Lido, etc.