Skip to main content
The Blink sandbox is a fully separate environment that runs on testnet. It has its own API, hosted flow, and merchant registry, and settles deposits on Base Sepolia and Sepolia instead of mainnet. Use it when you want to develop without real funds — for example during a hackathon or early prototyping.
Mainnet remains the recommended way to verify your integration. The sandbox runs on test networks with test liquidity, so it cannot prove production readiness. Before going live, complete the Testing flow with a small real deposit and work through the Production Checklist.

Sandbox endpoints

SurfaceProductionSandbox
APIhttps://api.blink.cashhttps://api-sandbox.blink.cash
Hosted flowhttps://pay.blink.cashhttps://pay-sandbox.blink.cash
Sandbox and production share nothing: merchants, keys, and transfers in one environment do not exist in the other.

Enable sandbox mode in the SDK

Pass environment: 'sandbox' when constructing the SDK. This points the hosted flow at https://pay-sandbox.blink.cash. An explicit webviewBaseUrl always takes precedence over environment.
import { Deposit } from '@swype-org/deposit';

const deposit = new Deposit({
  signer: '/api/sign-payment',
  environment: 'sandbox',
});

Register a sandbox merchant

Sandbox merchants are registered with the same flow as production, but against the sandbox API. Generate a key pair following Key Generation — use a dedicated key pair for sandbox, never your production key — and submit it to:
curl -X POST "https://api-sandbox.blink.cash/v1/merchants/applications" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "dev@yourapp.com",
    "domain": "yourapp.com",
    "publicKey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----\n",
    "description": "Testing our Blink integration on the sandbox before going live."
  }'
Sandbox applications are approved automatically — the returned merchantId is active immediately, so you can wire it into your signer and start depositing right away.

Supported testnets

ChainChain IDSupported tokens
Base Sepolia84532USDC, ETH
Sepolia11155111USDC, ETH
Support differs by deposit method:
  • One-tap deposits (connected wallet): Base Sepolia and Sepolia only. Cross-chain routing between the two works — for example, depositing Sepolia USDC to a Base Sepolia destination.
  • Manual transfers (send from an exchange or wallet): same-chain deposits only, on Base Sepolia and Sepolia. Cross-chain manual transfers are not supported on testnet.
There is no testnet USDT. Tether does not maintain official testnet deployments, so USDC stands in for all stablecoin flows in the sandbox — the integration surface is identical, and switching to mainnet USDT is a config change.
Sandbox deposits are significantly slower than mainnet. Testnet routing depends on test-network block times and solver liquidity, so expect completion times well beyond what you will see in production.

Fund a test wallet

Differences from production

ProductionSandbox
Networks60+ mainnetsBase Sepolia, Sepolia
FundsRealTestnet (faucet)
Merchant approvalReviewed by BlinkAutomatic
One-tap depositsAll supported source chains, cross-chainBase Sepolia and Sepolia, cross-chain
Manual transfersCross-chain and same-chainSame-chain only
SpeedSecondsSignificantly slower
USDTSupportedNot available — use USDC