Create an account
Sign up in under a minute. Add a small prepaid credit - our fee comes out of it, never out of your customer's payment.
Customers send crypto to a wallet you already own. We watch the chain, match the transfer, fire a signed webhook. You never wait for a payout, because there is no payout to wait for.
Connect a wallet you already own, create a checkout, and let your customer pay. Funds land directly in your wallet. No payout to request.
Sign up in under a minute. Add a small prepaid credit - our fee comes out of it, never out of your customer's payment.
Add the wallet you want to receive into. We only need your public address. Your private key never leaves your hands.
Generate a payment link, send an invoice, or call the API. Set the amount in your currency and we handle the crypto conversion at a locked rate.
Your customer opens a hosted page, picks a coin, and pays from their wallet. Funds land directly in your wallet.
No payouts to chase. No platform-held customer balance. Just an invoice, a confirmation, and money already in the wallet you control.
Charge $499.00, not 0.00779 BTC. Your customer pays in whatever is actually in their wallet, and we settle against a live rate that is pinned for the full pay window.
Dependable webhooks. Real test mode. A clean API. The unglamorous things that decide whether you ship on schedule.
Signed with your secret. Retries for ~35 hours with jitter. Fire a real test from the dashboard.
A separate plane with its own keys and balances. Every record is stamped live or test at the row level, and a test key can never touch a mainnet chain or live funds.
Create a payment. Read its status. Verify a webhook. Plain REST and JSON. Integrate in an afternoon, not weeks.
Invoice in 45 fiat currencies. The customer pays in crypto at a locked rate, and we do the conversion math.
14 mainnet chains and 29 enabled coin routes are available today. Customer transfers land in the merchant wallet route selected at checkout.
Funds land in a wallet you already own. EVM forwarders hard-code your treasury into the bytecode at deploy, so even our operator key can only push to that one address. Webhooks are HMAC-signed. The audit log has no DELETE endpoint.
Download a JSON recovery bundle at any time, with no dependency on our servers. It re-derives every payment address you have ever had - across EVM, TRON, and Solana - and, run through the recovery tool, sweeps funds to your wallet against any public RPC with no platform involvement. Re-issued automatically after every treasury rotation. Nothing for us to hodl. That is the point.
/api/v1/payments API key# Create a payment
$ curl -X POST "$BASE_URL/api/v1/payments" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fiat_amount": "49.99",
"fiat_currency": "USD",
"order_id": "ORDER-12345",
"accepted_chains": ["BTC","ETH","SOL"],
"accepted_coins": ["BTC","ETH","USDC","USDT"],
"success_url": "https://yoursite.com/thanks",
"cancel_url": "https://yoursite.com/cart"
}'{
"data": {
"id": "352e4022-e826-4f0c-be3c-a132dfd20224",
"status": "pending",
"fiat_amount": "49.99",
"fiat_currency": "USD",
"order_id": "ORDER-12345",
"checkout_url": "https://checkout.noholdpay.com/352e4022-...",
"expires_at": "2026-05-04T11:34:24Z",
"created_at": "2026-05-04T11:04:24Z",
"chain_options": [
{
"chain_id": "BTC",
"coin_symbol": "BTC",
"crypto_amount": "74521",
"display_amount": "0.00074521",
"exchange_rate": "67050.00",
"address": "bc1q...derived-fresh",
"payment_uri": "bitcoin:bc1q...?amount=0.00074521"
},
{ "chain_id": "ETH", "coin_symbol": "USDC", "...": "..." },
{ "chain_id": "SOL", "coin_symbol": "USDT", "...": "..." }
]
}
}We never touch the payment, so we can't deduct from it. Fees are drawn from a prepaid USD credit you control. Unused credit never expires.
Test mode availableNo custodial payout account
Connect a wallet you already control. We start watching the chain. You already have the money.