
send21
Non-custodial payment drafts/pay links for BTC, USDC, USDT, EURC.
Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeCan modify data
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
Non-custodial payment drafts/pay links for BTC, USDC, USDT, EURC. Never holds keys.
Server tool list (9)
Raw names from tools/list. Only developers need these.
| get_transaction_template | Get the multi-output transaction template for a draft: Bitcoin Core walletcreatefundedpsbt arguments and Electrum/Sparrow pay-to-many CSV. The operator's wallet funds, reviews, and signs it — send21 contains no signing code. Requires scope drafts:read. |
| get_fee_schedule | Get the public send21 fee schedule: tiered percent by payment size in USD, min/max fee, and dust limit. No authentication needed. |
| create_payment_request | Create a payment request / checkout pay link (you are the RECEIVER asking to get paid). Price in any of 165 fiat currencies; the payer opens the returned payPath, picks one of the offered currencies (rate locks then), and pays a single QR-scannable transfer straight to your address. Requires scope drafts:write. |
| list_address_book | List the account's saved addresses (label, address, network, direction: Sending = recipients the owner pays, Receiving = the owner's own addresses). Requires scope addressbook:read. |
| get_draft | Get a payment draft by id, including amounts, fee, quote, and status. Requires scope drafts:read. |
| get_payment_request | Get a payment request by id: status (Open/Completed/Cancelled/Expired), pay path, offered currencies, and the underlying draft once the payer committed. Requires scope drafts:read. |
| get_rate | Get the current exchange rate for an asset in a fiat currency (rate = fiat units per 1 whole asset unit, with source provenance). Assets: Btc, Usdc, Usdt, Eurc. 165 ISO-4217 fiat currencies are supported. |
| create_draft | Create a non-custodial payment draft (you are the SENDER paying a receiver address). Amount is either exact base units (sats for BTC, micro-units for stablecoins) via amountBaseUnits, or fiat-pegged via fiatCurrency+fiatAmount with the exchange rate locked at creation. Returns the draft incl. id, amounts, fee, and status. Funds move only when the sender signs in their own wallet — send21 never holds keys. Requires scope drafts:write. |
| get_draft_status | Lightweight status snapshot of a draft: status (AwaitingPayment/Seen/Confirmed/Expired/Cancelled), paying txid, confirmations. Cheap to poll. Requires scope drafts:read. |