TESTNET DEMO — real wallet signature on test networks only. No mainnet value. The coins involved are worthless test coins from public faucets.
send a real payment, on testnet
This is the actual send21 flow, end to end, with no account and no email: a real draft, a real signature in your own wallet, a real confirmation on a public test network. Direct. Non-custodial. Yours.
How it works
- An agent or the API creates a payment draft — here the server does it for you with the same scoped, draft-only access an AI agent gets. Nothing here can spend.
- A human reviews and signs in their own wallet. send21 never holds keys, never signs, never broadcasts.
- send21 watches the chain until the payment confirms — in production 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
In production an agent holds a scoped API key that can create and track drafts but never spend — the human always signs in their own wallet. Use the test networks (Testnet4, Signet, SolanaDevnet, EthereumSepolia, BaseSepolia) while integrating.
# an AI agent (or your backend) creates the draft with a scoped key —
# draft-only scopes: the key can create and track drafts but can never spend
curl -X POST https://send21.io/api/v1/drafts \
-H "Authorization: Bearer s21_YOUR_TESTNET_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: agent-demo-001" \
-d '{
"receiverAddress": "tb1q...your-testnet-address",
"network": "Testnet4",
"paymentMethod": "MultiOutput",
"amountSats": 5000,
"memo": "agent testnet draft"
}'// MCP (Streamable HTTP) — same key, same draft-only scopes
{
"mcpServers": {
"send21": {
"url": "https://send21.io/mcp",
"headers": { "Authorization": "Bearer s21_YOUR_TESTNET_KEY" }
}
}
}
// then call the create_draft tool with { "network": "Testnet4", ... }Full API: /swagger · agent overview: /llms.txt · status via GET /drafts/{id}/status or signed webhooks (draft.confirmed).