• Pricing
  • Story
  • Sign in
Get started
Docs/Sandbox

Sandbox

Test Dino cash flows with din_test_ keys, DINO_SANDBOX_MODE, and the USD faucet.

Use the sandbox to build cash integrations without KYB, real funds, or live card issuance. Sandbox teams use simulated provisioning, simulated cards, and test spending keys that start with din_test_.

#What sandbox mode means

DINO_SANDBOX_MODE=true tells a Dino deployment to provision developer-safe resources:

  • a team wallet with test USD balance
  • a default agent account / policy profile
  • a simulated proxy card
  • a default spending key that starts with din_test_
  • access to the USD test-money faucet

Production deployments reject faucet calls, and live keys cannot use the faucet.

#Key prefixes

PrefixUseSandbox behavior
din_test_Dino spending key for cash sandbox callsAccepted by /v1/spend-requests, /v1/checkout/intents, /v1/balance, and /v1/sandbox/faucet
din_live_Dino spending key for live cash or crypto callsRejected by the faucet
dba_Team API key for developer / workspace APIsUse for team-scoped reads and approval actions when a route requires it

For the full credential model, see Credential guide.

#Add test money

Set your API URL and sandbox key:

export DINO_API_URL="https://api.dino.id"
export DINO_SPEND_KEY="din_test_..."

Then call the faucet:

curl -sS -X POST "$DINO_API_URL/v1/sandbox/faucet" \
  -H "Authorization: Bearer $DINO_SPEND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount_cents":100000}'

The faucet adds USD test balance only. It does not mint crypto, bridge assets, or fund a Solana wallet.

#Cash test flow

  1. Check balance:

    curl -sS "$DINO_API_URL/v1/balance" \
      -H "Authorization: Bearer $DINO_SPEND_KEY"
    
  2. Create a governed spend request:

    curl -sS -X POST "$DINO_API_URL/v1/spend-requests" \
      -H "Authorization: Bearer $DINO_SPEND_KEY" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: $(uuidgen)" \
      -d '{
        "amount_cents":1299,
        "currency":"usd",
        "merchant_name":"OpenAI",
        "reason":"Sandbox integration test"
      }'
    
  3. If the response is needs_approval, approve or decline it in the dashboard, then reconcile from webhooks or GET /v1/spend-requests/:id.

  4. For just-in-time card credentials, follow Purchase Intents API after funding the sandbox wallet.

#Crypto testing

Crypto payout testing uses devnet / testnet wallets and external chain faucets, not the Dino USD faucet. Start with Crypto devnet guide, then use Crypto Payouts API — Solana USDC for the live REST shape.

#Runnable examples

  • Agent spend quickstart — cash balance + spend request
  • Agent integration starter — checkout and tool-runner boundary
  • Crypto devnet guide — external faucets and Solana setup
App Review ProcessCredential guide