Platform onboarding
How to register a 0fra platform tenant and bind your wallet.
TL;DR
# 1) Create an account
POST /api/auth/sign-up/email { name, email, password }
# 2) Bind a wallet + provision API keys (session-only)
POST /v1/onboarding/self
{ name, platform_wallet, chain_id, platform_fee_bps, default_reserve_bps }
→ { platform_id, secret_key, publishable_key }Most teams will do this through the 0fra Dashboard (/signup → email/password → wallet connect). The API exists for automated tenant provisioning if you're white-labelling 0fra inside another product.
Pick a platform-treasury wallet
The platform_wallet you bind is where your platform fee lands on every payment. Choose well: changing it later requires an admin operation.
| Wallet type | Recommendation |
|---|---|
| MetaMask EOA | OK for testnet |
| Hardware wallet | Acceptable for low-volume early users |
| Safe multisig | Recommended for production (2-of-3 min) |
The wallet address must be a valid 0x-prefixed 20-byte string. 0fra only verifies its format today — it does not ask you to sign an attestation. Future versions will add an EIP-191 wallet-ownership step.
Set your platform fee
platform_fee_bps is taken from every payment after the 0fra service fee:
const platformFee = gross * platform_fee_bps / 10_000;
const merchantNet = gross - serviceFee - platformFee;- Min:
0(you don't take a cut) - Max:
5000(50%) — and we cap it on-chain - Typical:
500–2500(5–25%) for marketplaces
You can change platform_fee_bps later via the Dashboard. Existing pending orders retain the rate they were created with.
Reserve defaults
default_reserve_bps is what new merchants will inherit unless overridden when you create them. A sensible starting point is 500 (5%).
Activation lifecycle
sign up → wallet bound → keys issued → accept payments
▲
│
webhook endpoint registered (optional)Once the keys are issued, your platform is live — no manual approval. (Mainnet may require an additional soft-launch invite during closed beta.)
Multi-platform under one account?
A single user can own only one platform today. If you operate multiple brands, sign up with separate emails or contact support about org-level account features.