Skip to content

Merchant Onboarding

Onboarding takes a merchant from “I want to accept stablecoins” to working API keys in under five minutes.

  1. Sign in — email-OTP via the merchant dashboard.
  2. Attach a wallet — SIWE (Sign-In With Ethereum) binds an EOA to the account. This wallet becomes the default settlement destination.
  3. Create a project — each project has its own keys, webhook secret, and settlement preferences.
  4. Issue API keys — keys are scoped per project: sk_test_* (sandbox) and sk_live_* (production).
  5. Configure webhooks — point at your endpoint and store the webhook secret.
CredentialLifetimeScopeWhere it lives
OTP code10 minutesOne-time loginEmail
Session JWT24 hoursDashboard actionsBrowser, httpOnly cookie
sk_live_* / sk_test_*Long-livedProjectYour server, never the client
pmc_* publishableLong-livedProject, restrictedSafe to ship in client bundles

Server keys (sk_*) and publishable keys (pmc_*) are issued in pairs per project.

After OTP login, you’ll be prompted to sign a SIWE message to bind a wallet to the account:

example.com wants you to sign in with your Ethereum account:
0xabc...123
Sign in to StablecoinX as Merchant XYZ
URI: https://dashboard.stablecoinx.com
Version: 1
Chain ID: 1
Nonce: <server-generated>
Issued At: 2026-05-26T17:00:00Z

The bound wallet becomes the default settlement destination. You can override it per project or per session later.

Configurable per project:

  • Business name and logo (rendered in checkout, hosted on our CDN).
  • Default settlement chain and asset.
  • Webhook URL and secret.
  • Refund policy displayed on the hosted redirect page.
Key prefixUseAllowed
sk_live_*Server-side, productionFull project surface
sk_test_*Server-side, sandboxFull sandbox surface
pmc_*Client-sideCreate sessions only; origin-allowlisted

Rotate keys from the dashboard at any time. Old and new keys are both valid for a configurable grace window (default: 24h).