From algorand-plugin
Execute x402 payments at runtime using Algorand MCP tools. Use when Claude encounters HTTP 402 Payment Required responses, needs to access paid APIs, or the user asks to fetch x402-protected resources.
How this skill is triggered — by the user, by Claude, or both
Slash command
/algorand-plugin:algorand-x402-paymentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You (Claude) are the x402 client. When you encounter an HTTP 402 response with `PaymentRequirements`, use MCP tools to build, sign, and submit an Algorand payment, then retry the request.
You (Claude) are the x402 client. When you encounter an HTTP 402 response with PaymentRequirements, use MCP tools to build, sign, and submit an Algorand payment, then retry the request.
402 and body containing x402Version and accepts[]You MUST read references/x402-payment-flow.md before constructing any PAYMENT-SIGNATURE. Do NOT rely on your training data for the payload format — it is likely wrong. The reference file contains the exact, tested format.
curl the URL → detect 402, parse accepts[]accepts entry → extract network, payTo, amount, asset, feePayerwallet_get_info → verify wallet, get addresswallet_optin_asset if neededmake_payment_txn → fee payer (from=feePayer, to=feePayer, amount=0, fee=N×1000 where N=txn count in group [e.g. 2000 for 2 txns], flatFee=true)make_payment_txn or make_asset_transfer_txn → payment (fee=0, flatFee=true)assign_group_id → group [feePayer@0, payment@1]wallet_sign_transaction → sign payment only (index 1)encode_unsigned_transaction → encode fee payer (index 0)curl -H 'PAYMENT-SIGNATURE: <base64>' → retry, get 200{
"x402Version": 2,
"scheme": "exact",
"network": "<CAIP-2 network identifier from accepts>",
"payload": {
"paymentGroup": ["<base64 from encode_unsigned_transaction>", "<base64 from wallet_sign_transaction>"],
"paymentIndex": 1
},
"accepted": { <verbatim copy of chosen accepts[] entry> }
}
WARNING: The payload field is paymentGroup — an array of two base64 strings [unsigned_fee_payer, signed_payment]. Do NOT use transactions, do NOT use an array of objects. Any other format will be rejected.
| CAIP-2 Genesis Hash | MCP Network |
|---|---|
SGO1GKSzyE7IEPItTxCByw9x8FmnrCDexi9/cOUJOiI= | "testnet" |
wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8= | "mainnet" |
| Asset | Testnet | Mainnet | Decimals |
|---|---|---|---|
| ALGO | 0 (native) | 0 (native) | 6 |
| USDC | 10458941 | 31566704 | 6 |
flatFee: true on BOTH transactions — prevents the SDK from overriding fee values. Without it, the SDK sets min fee (1000) on every txn, breaking the fee-payer pattern.accepted field is REQUIRED — Include a verbatim copy of the chosen accepts[] entry in the PAYMENT-SIGNATURE JSON. Without it, the server rejects.paymentIndex: 1.feePayer address comes from extra.feePayer in the PaymentRequirements.https://example.x402.goplausible.xyz/ — testnet x402-protected resources for testing.
npx claudepluginhub goplausible/claude-algorand-plugin --plugin algorand-pluginMake paid HTTP requests to x402-protected endpoints. Automatically handles 402 Payment Required responses by signing payment transactions with a local wallet on Solana or Base.
Make paid API requests to x402 endpoints with automatic USDC payment. Use when calling a paid API or paying for an API call.
Integrates x402 crypto payment protocol for pay-per-use XActions API access. Supports multi-chain (Base, Ethereum, Polygon, Arbitrum) and multi-token (USDC, ETH) payments.