Testnet demo. You sign with your own wallet, on test networks only. The coins are free test coins from public faucets and have no value.
See the whole flow in a few minutes, with no account and no email. send21 creates a payment draft, you pay it from your own wallet, and the page shows the confirmation from a public test network.
How it works #
- send21 creates a payment draft , with the same draft-only access an AI agent gets. Nothing here can spend.
- You check and sign in your own wallet . send21 never holds keys, never signs and never broadcasts.
- send21 watches the chain until the payment confirms. In a real integration your backend gets a signed draft.confirmed webhook at that moment.
Need test coins? Faucets #
For AI agents: the same flow over API or MCP #
An agent gets a scoped API key that can create and track drafts but never spend. A person always signs in their own wallet. Test networks on send21.io are for this demo only, and account drafts use the live networks. That is still safe while you integrate: a draft moves no money until someone signs it, so create small drafts to your own address and cancel them.
curl -X POST https://send21.io/api/v1/drafts \
-H "Authorization: Bearer s21_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: agent-demo-001" \
-d '{
"receiverAddress": "0x...your-own-address",
"network": "Base",
"currency": "Usdc",
"paymentMethod": "MultiOutput",
"singleOutput": true,
"amountSats": 1000000,
"memo": "agent integration test, 1 USDC"
}'
// MCP (Streamable HTTP), same key, same draft-only scopes
{
"mcpServers": {
"send21": {
"url": "https://send21.io/mcp",
"headers": { "Authorization": "Bearer s21_YOUR_KEY" }
}
}
}
// then call the create_draft tool with { "network": "Base", "currency": "Usdc", ... }
Full API: /swagger | agent overview: /llms.txt | status via GET /drafts/{id}/status or signed webhooks (draft.confirmed).
Ready for real payments? #
Create a free account and send your first pay link. No subscription, only a small fee per payment.