deposit.now documentation
Open x402 funding rail
Introduction
deposit.now is an open x402 funding rail: call POST /api/deposit with a target address and net amount, pay amount + 1% via x402, and the platform forwards net USDC after settlement. It does not create wallets and does not replace Coinbase CDP Fund/Send inside Agentic or Server Wallets.
- Network: Base mainnet (eip155:8453) in production
- Fee: flat 1% of net · response status is
payment_received(forward is async) - Machine contracts: llms.txt, openapi.json
Who needs what
deposit.now is an agent / API rail. You do not connect a browser wallet on this site to use the product. Credentials differ by role:
| Who | Needs | Does not need |
|---|---|---|
| Paying agent | Any x402 client (e.g. @x402/fetch + viem), a wallet/signer, and USDC on Base | deposit.now API key, site account, browser "Connect wallet", or Coinbase AgentKit (optional only) |
| Target wallet | An EVM address you already have (EOA, agent wallet, CDP wallet, etc.) | To be created by deposit.now — we do not mint sub-wallets |
| deposit.now platform | CDP credentials + storage on the server (for receive + forward + optional receipts) | Your payer private keys — never send those to deposit.now |
| Humans on the website | Docs, OpenAPI, llms.txt | Wallet connect to call the API (agents call it in code) |
Coinbase AgentKit / Agentic Wallet: not required for payers. Use them if you already run on CDP. Any x402-capable wallet works.
CDP Fund / Send:great inside Coinbase's stack. deposit.now is the open HTTP 402 deposit call when you want any target + optional public receipt without a deposit.now API key.
Auth model: payment is auth. Unpaid requests get HTTP 402; paid requests include the x402 payment proof — not Authorization: Bearer ….
Quickstart
- Install an x402 client (e.g. @x402/fetch + viem for JS).
- POST JSON:
{ target, amount, memo? } - Handle 402 — pay gross (amount + 1%) in USDC.
- Retry with payment proof; read receiptId / receiptUrl from the 200 body.
Bare-bones flow
- 1. Agent calls
POST /api/depositwith{ target: "0x…", amount: "50.00", memo?: "…" } - 2. Server returns 402 + x402 payment request for amount + 1% fee.
- 3. Agent pays full gross via x402 to the platform Coinbase Agentic (CDP) wallet.
- 4. Backend confirms settlement → keeps fee → forwards net to
targetvia CDP. - 5. Returns
payment_received+receiptUrl. Check the receipt forforwardStatusand Basescan links — 200 does not mean the target already holds funds.
Endpoints
POST /api/depositBody: target (required EVM address), amount (required net USDC 0.01–100000), memo (optional, max 256 chars).
GET /api/depositService metadata (also x402-protected when paid probes are used).
GET /api/discovery · GET /.well-known/x402Machine-readable discovery manifest.
GET /receipt/:idPublic verifiable receipt page.
Code examples
JavaScript (@x402/fetch)
import { wrapFetchWithPayment } from '@x402/fetch';
import { x402Client } from '@x402/core/client';
import { ExactEvmScheme } from '@x402/evm/exact/client';
import { privateKeyToAccount } from 'viem/accounts';
const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY); // payer agent only
const client = new x402Client();
client.register('eip155:*', new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPayment('https://deposit.now/api/deposit', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
target: '0xChildOrSubWalletAddress',
amount: '50.00',
memo: 'Fund child trading agent',
}),
});
console.log(await res.json());EVM_PRIVATE_KEY is only for the paying agent client — never for the deposit.now server.
curl (probe 402)
curl -i -X POST https://deposit.now/api/deposit \
-H 'Content-Type: application/json' \
-d '{"target":"0x...","amount":"50.00","memo":"Fund child trading agent"}'
# → HTTP 402 + Payment-Required header (pay amount + 1%)Security
- Platform hot wallet via Coinbase CDP / Agentic Wallet only — no raw platform private keys in app code.
- Strict validation: EVM address + amount caps (0.01–100000 USDC).
- Rate limiting on /api/* (stricter on deposit).
- x402 facilitator verifies payment on-chain before success response.
- Forward to target only after settlement; retries + settlement logs on failure.
FAQ
Can I fund any wallet?
You can set target to any EVM address you already have (including another agent’s wallet). deposit.now does not create wallets. Net forward is async after settlement.
Why not just use Coinbase Fund?
If you already run on Coinbase Agentic / Server Wallets, CDP Fund/Send is usually better. deposit.now is for an open x402 deposit call to any target without a deposit.now API key.
Do I need AgentKit or a connect-wallet button?
No. Payers use any x402 client and their own wallet/signer. AgentKit is optional. This site does not require browser wallet connect — agents call the API in code. See .
Does 200 mean the target is funded?
No. payment_received means the x402 payment was accepted. Check receiptUrl for forwardStatus and tx links.
Where is the machine-readable guide?
/llms.txt and /llms-full.txt.