Skip to main content

Sandbox Evaluation

Use a sandbox tenant to evaluate SWAPS before production launch.

Setup

  1. Create a tenant through the hosted SWAPS signup. Choose Free for a sandbox or Launch for partner-scale limits.
  2. Keep the returned server key on your backend.
  3. Use the publishable key and widget HMAC secret for browser flows.
  4. Use test wallets and testnet assets where possible.

The public signup API requires a browser-generated, single-use Cloudflare Turnstile token. Use GET /api/public/forms/config plus the signup action if you are implementing your own browser signup form; do not put a placeholder token in a script or server-to-server request.

Minimal Evaluation Dataset

Create at least two wallets with overlapping inventory and wants:

  • Wallet A owns card 1 and wants card 2.
  • Wallet B owns card 2 and wants card 1.
  • Optional: add Wallet C to validate coordinated opportunities across more than two participants.

Bulk load the inventory:

curl -X POST https://www.swapsapi.com/api/v2/partners/inventory/bulk \
-H "Authorization: Bearer <SK_KEY>" \
-H "Content-Type: application/json" \
-d '{"mode":"merge","users":[{"walletAddress":"0x1111111111111111111111111111111111111111","items":[{"id":"0x3333333333333333333333333333333333333333:1","name":"Charizard PSA 10","collection":"Pokemon Base Set"}]},{"walletAddress":"0x2222222222222222222222222222222222222222","items":[{"id":"0x3333333333333333333333333333333333333333:5","name":"Mew Holo","collection":"Pokemon Promo"}]}]}'

Import wants:

curl -X POST https://www.swapsapi.com/api/v2/partners/wants/bulk \
-H "Authorization: Bearer <SK_KEY>" \
-H "Content-Type: application/json" \
-d '{"users":[{"walletAddress":"0x1111111111111111111111111111111111111111","wantedNftIds":["0x3333333333333333333333333333333333333333:5"]},{"walletAddress":"0x2222222222222222222222222222222222222222","wantedNftIds":["0x3333333333333333333333333333333333333333:1"]}]}'

Evaluation Checks

  • GET /api/v2/partners/readiness should show indexed wallets, indexed NFTs, and any available opportunities.
  • GET /api/v2/swaps/{walletAddress} should return user-facing give/get swaps.
  • GET /api/v2/explore/{walletAddress} should return availability-checked For You sections.
  • POST /api/v2/swaps/{swapId}/accept should prepare a wallet transaction.
  • POST /api/v2/blockchain/trades/broadcast should record the broadcast hash after the wallet sends it.
  • Webhooks should arrive with signed, sanitized payloads.