TransX402 Docs
Onboarding

Sandbox

Panduan lengkap testing di environment sandbox TransX402 — fund wallet, lakukan pembayaran test, dan validasi integrasi Anda.

Apa itu Sandbox?

Sandbox adalah environment testing untuk menguji integrasi TransX402 tanpa uang sungguhan. Secara default sandbox mengarah ke CAMP Testnet — chain testnet publik (https://testnet-rpc.onchainfolio.com/rpc) dengan IDRX test dan Permit2. Facilitator mensponsori gas settle; merchant mengisi wallet dengan IDRX dan ETH test lewat faucet treasury (/sandbox/fund).

Opsional: Anvil lokal dengan SANDBOX_FUNDING_MODE=anvil dan docker compose --profile anvil up (bukan default).

Sandbox vs Production

AspekSandbox (CAMP Testnet)Production
API key prefixipk_sandbox_ipk_live_
ChainCAMP TestnetBase mainnet
IDRXIDRX test di CAMPIDRX nyata
Gas (settle)Disponsori fasilitatorDisponsori fasilitator
FundingFaucet treasuryDeposit nyata
DashboardMenampilkan transaksi sandboxMenampilkan transaksi nyata
WebhookDikirim ke webhook URL merchantSama
Fasilitator (hosted)api.transx402.comapi.transx402.com

Cara Memulai

1. Dapatkan API Key Sandbox

Saat Anda mendaftar di dashboard.transx402.com, API key sandbox otomatis dibuat. Anda juga bisa membuat key sandbox tambahan di halaman API Keys:

ipk_sandbox_abc123def456...

2. Fund Wallet Test

Sebelum melakukan pembayaran test, isi wallet dengan IDRX test (dan opsional ETH untuk gas Path 4 di browser). Ada dua cara:

Via API

IDRX:

curl -X POST https://api.transx402.com/sandbox/fund \
  -H "X-API-Key: ipk_sandbox_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "address": "0xAlamatWalletAnda...",
    "amount": "1000000"
  }'

ETH (token opsional — kosongkan untuk IDRX):

curl -X POST https://api.transx402.com/sandbox/fund \
  -H "X-API-Key: ipk_sandbox_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "address": "0xAlamatWalletAnda...",
    "amount": "0.01",
    "token": "ETH"
  }'

Response:

{
  "txHash": "0x...",
  "address": "0xAlamatWalletAnda...",
  "amount": "0.01",
  "token": "ETH",
  "balance": "10000000000000000"
}

Via Dashboard

Buka halaman Sandbox di dashboard. Gunakan kartu Fund IDRX dan Fund ETH (dana dikirim ke wallet merchant terdaftar), lalu klik tombol fund pada masing-masing kartu.

Di CAMP Testnet (treasury), faucet dapat mentransfer IDRX test dan ETH native. Pembayaran browser pertama mungkin meminta Spending Cap MetaMask (approve Permit2); pembayaran berikutnya cukup tanda tangan.

3. Gunakan Wallet Test Bawaan

Sandbox menyediakan wallet test yang sudah di-fund. Dapatkan daftar wallet:

curl https://api.transx402.com/sandbox/wallets \
  -H "X-API-Key: ipk_sandbox_abc123..."

Response:

{
  "wallets": [
    {
      "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
      "ethBalance": "10000.0",
      "idrxBalance": "10000000000",
      "privateKey": "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"
    }
  ]
}

Ini adalah akun deterministik Anvil dengan 10.000 ETH dan IDRX test yang banyak. Private key aman untuk digunakan di sandbox karena hanya berlaku di chain Anvil.

Testing Pembayaran

Alur Testing Dasar

  1. Pasang integrasi — Gunakan API key sandbox di library JS atau plugin WordPress
  2. Fund wallet — Isi wallet test dengan IDRX (dan ETH jika perlu) via /sandbox/fund atau halaman Sandbox di dashboard
  3. Akses konten — Buka halaman yang di-paywall
  4. Bayar — Klik "Pay with IDRX", hubungkan wallet, dan tanda tangani
  5. Verifikasi — Cek pembayaran di dashboard atau via API /payments

Testing dengan Library JS

import { createBrowserClient } from '@transx402/client/browser';
 
// Pilih tepat satu: environment ATAU facilitatorUrl. Parameter chain hanya dari GET /config.
const client = createBrowserClient({
  apiKey: 'ipk_sandbox_abc123...',
  environment: 'camp', // 'local' | 'camp' | 'base'
});
 
const response = await client.fetch('https://mysite.com/api/premium-content');
environmentFacilitatorCatatan
localhttp://localhost:3402API Docker / lokal
camphttps://api.transx402.comSandbox CAMP testnet
basehttps://api.transx402.comButuh ipk_live_...

camp dan base memakai fasilitator hosted yang sama; API key Anda memilih konfigurasi chain sandbox vs production dari GET /config.

Browser wallet memakai Path 4: approve Permit2 sekali (user bayar gas), lalu pembayaran hanya signature. Agent memakai Path 3 (createAgentClient) dengan sponsored approve via signTransaction.

CDN / WordPress tetap bisa memakai TransX402.create({ apiKey, environment }) dari browser bundle.

Testing dengan cURL

# 1. Cek health
curl https://api.transx402.com/health
 
# 2. Lihat token yang didukung
curl https://api.transx402.com/tokens
 
# 3. Fund wallet test
curl -X POST https://api.transx402.com/sandbox/fund \
  -H "X-API-Key: ipk_sandbox_abc123..." \
  -H "Content-Type: application/json" \
  -d '{"address": "0xWalletTest", "amount": "500000"}'
 
# 4. Cek pembayaran
curl https://api.transx402.com/payments \
  -H "X-API-Key: ipk_sandbox_abc123..."

Reset Sandbox

Jika Anda perlu memulai dari awal (misalnya setelah testing yang intensif), Anda bisa mereset state sandbox:

curl -X POST https://api.transx402.com/sandbox/reset \
  -H "X-API-Key: ipk_sandbox_abc123..."

Ini akan re-fork chain Anvil dari block Base mainnet terbaru. Semua transaksi sandbox sebelumnya akan hilang, tetapi kontrak IDRX dan Permit2 tetap tersedia.

Perbedaan dengan Production

Kode integrasi Anda persis sama untuk sandbox dan production. Yang berbeda hanya:

// Sandbox / CAMP
const client = TransX402.create({
  apiKey: 'ipk_sandbox_abc123...',
  environment: 'camp', // 'local' | 'camp' | 'base'
});
 
// Production
const client = TransX402.create({
  apiKey: 'ipk_live_xyz789...',
  environment: 'base',
});

Pilih environment atau facilitatorUrl (jangan keduanya). Parameter chain hanya dari GET /config.

Development Lokal dengan Anvil (opsional)

Anvil bukan sandbox default. Pakai hanya jika butuh fork Base offline:

# Di .env:
# SANDBOX_FUNDING_MODE=anvil
# SANDBOX_RPC_URL=...
 
docker compose --profile anvil up -d

Anvil di port 8546. /sandbox/wallets dan /sandbox/reset hanya untuk mode Anvil.

Tips Testing

  1. Selalu test di sandbox dulu sebelum beralih ke production
  2. Gunakan webhook untuk memverifikasi notifikasi pembayaran dikirim dengan benar
  3. Test skenario error — coba bayar dengan saldo kurang, deadline expired, dll.
  4. Cek dashboard — pastikan pembayaran muncul di halaman Payments
  5. Test pada berbagai wallet — MetaMask, Coinbase Wallet, dll.