Overview
NanoGPT supports multiple deposit methods (crypto, stablecoins, and cards). This page documents the public endpoints you can use to:- Create a deposit payment intent
- Check deposit limits
- Track deposit status (polling or SSE)
Supported Payment Methods
Limits vary by method and can change. UseGET /api/transaction/limits/{ticker} for the authoritative min/max.
Crypto (invoice / address)
| Ticker | Name | Provider |
|---|---|---|
BTC | Bitcoin | BTCPay |
BTC-LN | Bitcoin Lightning | BTCPay |
LTC | Litecoin | BTCPay |
LTC-MWEB | Litecoin MWEB | BTCPay |
XMR | Monero | BTCPay |
DOGE | Dogecoin | BTCPay |
DASH | Dash | BTCPay |
ZEC | Zcash | BTCPay |
BCH | Bitcoin Cash | Prompt.Cash |
BAN | Banano | Nanswap (legacy) |
KAS | Kaspa | Nanswap |
TON | Toncoin | Nanswap |
NEAR | NEAR Protocol | Nanswap |
EGLD | MultiversX | Nanswap |
VVV | VVV | Nanswap |
ZANO | Zano | Zano proxy |
FUSD | Freedom Dollar | Zano proxy |
Stablecoins and multi-chain (Daimo Pay)
These methods settle as USDC and can be paid from multiple chains/wallets.| Ticker | Name |
|---|---|
USDC | USD Coin |
USDT | Tether |
ETH | Ethereum |
SOL | Solana |
Fiat (card)
| Ticker | Name | Provider |
|---|---|---|
USD | US Dollar | Stripe |
EUR | Euro | Stripe |
GBP | British Pound | Stripe |
Nano (direct deposit)
Nano deposits use a direct-send flow to your assigned Nano deposit address (no invoice creation). See: Check Balance and Receive Nano.Authentication
All/api/transaction/* endpoints require API key authentication using one of these methods:
Endpoint Summary
Pick the endpoint based on the payment method:- Crypto invoice / swap deposits:
POST /api/transaction/create/{ticker} - Daimo Pay (multi-chain):
POST /api/transaction/create/daimo/{ticker} - Card (Stripe):
POST /api/transaction/create/usd - Limits:
GET /api/transaction/limits/{ticker} - Status polling:
GET /api/transaction/status/{ticker}/{txId} - Status SSE:
GET /api/transaction/status/events?ticker={ticker}&txId={txId} - Nano (XNO): send to
nanoDepositAddress(from Check Balance); optionally call Receive Nano
Create Crypto Deposit
Create an invoice / pay-in address for supported crypto tickers
Ticker symbol. Examples:
btc, btc-ln, ltc, zec, bch, kas, vvv, zano, fusdAmount of cryptocurrency to deposit. Must be between minimum and maximum limits.
Response Fields
Unique transaction identifier for tracking
Deposit address for sending crypto
Requested deposit amount
Payment status. Common values include:
New, Pending, Processing, Paid, Completed, Expired, FailedURI for wallet apps (e.g.,
bitcoin:address)ISO timestamp of creation
ISO timestamp when address expires
Check Payment Limits
Get minimum and maximum deposit amounts for a payment method
Payment method ticker symbol (for example:
btc, btc-ln, zec, usdc, sol, usd)Create Daimo Payment
Create a multi-chain payment (USDC/USDT/ETH/SOL) via Daimo Pay
Daimo payment ticker. Common values:
usdc, usdt, eth, solAmount to pay. This is typically treated as a USD/USDC amount (for example,
10 for about $10).Create Card Deposit (Stripe)
Create a Stripe Checkout session for card deposits
Amount in the selected fiat currency (for example,
10).Status Tracking
Most deposit methods can be tracked by polling a status endpoint:txId value to use.
Example:
Real-time status (SSE)
Instead of polling, you can subscribe to Server-Sent Events:x-poll-after header on status responses to indicate a recommended retry interval (seconds).
Transaction Lifecycle
Status values can vary slightly by payment method, but a typical lifecycle looks like:| Status | Meaning |
|---|---|
New / Pending | Deposit created, awaiting payment |
Processing | Payment detected and being confirmed/processed |
Paid | Payment confirmed, crediting pending |
Completed | Balance credited |
Expired | Payment window expired (some providers can still credit late payments) |
Failed | Provider error or processing failure |
BTCdeposits can take longer to reachCompleteddue to on-chain settlement/confirmations.- Some providers may accept payment after an invoice expires; in those cases the deposit can still complete.
Payment Providers
NanoGPT uses different providers per ticker:- BTCPay: BTC, BTC-LN, LTC, LTC-MWEB, XMR, DOGE, DASH, ZEC
- Prompt.Cash: BCH
- Nanswap: BAN, KAS, TON, NEAR, EGLD, VVV
- Zano proxy: ZANO, FUSD
- Daimo Pay: USDC, USDT, ETH, SOL (multi-chain payments settling as USDC)
- Stripe: card deposits (USD/EUR/GBP)
- Native Nano: XNO direct deposits to your
nanoDepositAddress
Pricing Endpoints
These endpoints are commonly used by deposit flows and checkout UIs:GET /api/get-nano-price(NANO/USD pricing)GET /api/get-fiat-prices(fiat FX rates)
Bonuses and Discounts
BTC-LN: Lightning deposits may include a bonus on the credited amount (if enabled).XNO: Paying with Nano balance may include a usage discount (if enabled).USDCvia Daimo: USDC stablecoin deposits typically credit close to $1 per 1 USDC.
Error Handling
HTTP Status Codes
| Code | Description |
|---|---|
| 200 | Success |
| 400 | Invalid amount, unsupported ticker, or below/above limits |
| 401 | Authentication failure |
| 429 | Rate limited |
| 500 | Provider unavailable or internal error |
Common Error Messages
Amount Validation Errors
Amount Validation Errors
"No amount specified"- Missing amount in request body"Invalid amount. Must be a positive number."- Amount validation failed"Minimum amount is X"- Below minimum threshold"Maximum amount is X"- Above maximum threshold
Provider Errors
Provider Errors
"Unsupported ticker"- Ticker not supported"This payment method is currently not available"- Provider temporarily unavailable
Rate Limits
- 10 requests per 10 minutes per IP address or API key
- Rate limit applies to all deposit creation endpoints