Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.nano-gpt.com/llms.txt

Use this file to discover all available pages before exploring further.

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)
Deposits are credited automatically after payment confirmation.

Supported Payment Methods

Limits vary by method and can change. Use GET /api/transaction/limits/{ticker} for the authoritative min/max.

Crypto (invoice / address)

TickerNameProvider
BTCBitcoinBTCPay
BTC-LNBitcoin LightningBTCPay
LTCLitecoinBTCPay
LTC-MWEBLitecoin MWEBBTCPay
XMRMoneroBTCPay
DOGEDogecoinBTCPay
DASHDashBTCPay
ZECZcashBTCPay
BCHBitcoin CashPrompt.Cash
BANBananoNanswap (legacy)
KASKaspaNanswap
TONToncoinNanswap
NEARNEAR ProtocolNanswap
EGLDMultiversXNanswap
VVVVVVNanswap
ZANOZanoZano proxy
FUSDFreedom DollarZano proxy

Stablecoins and multi-chain (Daimo Pay)

These methods settle as USDC and can be paid from multiple chains/wallets.
TickerName
USDCUSD Coin
USDTTether
ETHEthereum
SOLSolana

Fiat (card)

TickerNameProvider
USDUS DollarStripe
EUREuroStripe
GBPBritish PoundStripe

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:
# Method 1: Authorization header
curl -H "Authorization: Bearer YOUR_API_KEY"

# Method 2: x-api-key header  
curl -H "x-api-key: YOUR_API_KEY"

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
string
required
Ticker symbol. Examples: btc, btc-ln, ltc, zec, bch, kas, vvv, zano, fusd
amount
number
required
Amount of cryptocurrency to deposit. Must be between minimum and maximum limits.
curl -X POST https://nano-gpt.com/api/transaction/create/btc \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 0.001}'
{
  "txId": "abc123",
  "address": "bc1q...",
  "amount": 0.001,
  "status": "New",
  "paymentLink": "bitcoin:bc1q...?amount=0.001",
  "createdAt": "2026-01-19T12:00:00.000Z",
  "expiresAt": "2026-01-19T13:00:00.000Z"
}

Response Fields

txId
string
Unique transaction identifier for tracking
address
string
Deposit address for sending crypto
amount
number
Requested deposit amount
status
string
Payment status. Common values include: New, Pending, Processing, Paid, Completed, Expired, Failed
URI for wallet apps (e.g., bitcoin:address)
createdAt
string
ISO timestamp of creation
expiresAt
string
ISO timestamp when address expires

Check Payment Limits

Get minimum and maximum deposit amounts for a payment method
ticker
string
required
Payment method ticker symbol (for example: btc, btc-ln, zec, usdc, sol, usd)
curl https://nano-gpt.com/api/transaction/limits/kas \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "minimum": 10.5,
  "maximum": 5250,
  "fiatEquivalentMinimum": 1,
  "fiatEquivalentMaximum": 500,
  "timestamp": 1705669200
}

Create Daimo Payment

Create a multi-chain payment (USDC/USDT/ETH/SOL) via Daimo Pay
ticker
string
required
Daimo payment ticker. Common values: usdc, usdt, eth, sol
amount
number
required
Amount to pay. This is typically treated as a USD/USDC amount (for example, 10 for about $10).
curl -X POST https://nano-gpt.com/api/transaction/create/daimo/usdc \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 10}'
{
  "paymentId": "encrypted_payment_id"
}

Create Card Deposit (Stripe)

Create a Stripe Checkout session for card deposits
amount
number
required
Amount in the selected fiat currency (for example, 10).
curl -X POST https://nano-gpt.com/api/transaction/create/usd \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 10}'
{
  "paymentLink": "https://checkout.stripe.com/c/pay/cs_test_..."
}

Status Tracking

Most deposit methods can be tracked by polling a status endpoint:
GET /api/transaction/status/{ticker}/{txId}
Some methods use provider-specific IDs (for example Stripe session IDs). The create response usually returns the correct txId value to use. Example:
curl "https://nano-gpt.com/api/transaction/status/btc/abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Real-time status (SSE)

Instead of polling, you can subscribe to Server-Sent Events:
GET /api/transaction/status/events?ticker={ticker}&txId={txId}
Example:
curl -N "https://nano-gpt.com/api/transaction/status/events?ticker=btc&txId=abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"
The server may also return an 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:
StatusMeaning
New / PendingDeposit created, awaiting payment
ProcessingPayment detected and being confirmed/processed
PaidPayment confirmed, crediting pending
CompletedBalance credited
ExpiredPayment window expired (some providers can still credit late payments)
FailedProvider error or processing failure
Notes:
  • BTC deposits can take longer to reach Completed due 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)
Example:
curl "https://nano-gpt.com/api/get-nano-price"
curl "https://nano-gpt.com/api/get-fiat-prices"
Example responses:
// GET /api/get-nano-price
{
  "pair": "NANOUSD",
  "latestPrice": 1.23
}
// GET /api/get-fiat-prices
{
  "usdTo": {
    "USD": 1,
    "EUR": 0.92,
    "GBP": 0.79
  },
  "currencies": {
    "USD": "United States Dollar",
    "EUR": "Euro",
    "GBP": "British Pound"
  }
}

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).
  • USDC via Daimo: USDC stablecoin deposits typically credit close to $1 per 1 USDC.

Error Handling

HTTP Status Codes

CodeDescription
200Success
400Invalid amount, unsupported ticker, or below/above limits
401Authentication failure
429Rate limited
500Provider unavailable or internal error

Common Error Messages

  • "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
  • "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

Payment Flow

1

Create Invoice

Call /api/transaction/create/{ticker} with desired amount
2

Get Address

Extract address from response
3

Send Payment

User sends crypto to the provided address
4

Auto-Credit

Account balance automatically updated when payment confirms