Security-first Ethereum L2 (Arbitrum Orbit stack) where every user is KYC'd and every transaction is sent from a smart-contract KintoWallet (native account abstraction). Permissions live in `KintoID`, gas is sponsored via `SponsorPaymaster`, and EOAs cannot transact directly.
- 01compliant DeFi for institutions and accredited users
- 02permissioned RWA / regulated-asset apps
- 03account-abstraction-only UX with sponsored gas
- 04products that require on-chain KYC + sanctions checks
- 05dApps replacing Dynamic/Privy KYC flows with chain-level gating
- pnpm add viem wagmi
| Variable | Scope | Description |
|---|---|---|
| NEXT_PUBLIC_KINTO_RPC_URL | Client | Kinto mainnet HTTP RPC URL (chainId 7887). EOA transactions are rejected at the state-transition layer. |
| NEXT_PUBLIC_KINTO_APP_KEY | Client | App registration key from the Kinto developer portal — required for SponsorPaymaster gas sponsorship. |
Use Kinto for a compliance-by-default L2 app. Every user transacts via a `KintoWallet` (smart contract) whose first signer must hold a `KintoID` — verify eligibility on-chain with `KintoID.isKYC(address)` and `KintoID.hasTrait(address, traitId)` before any sensitive action (e.g. `ACCREDITED_INVESTOR`, jurisdiction traits). Wallets are deployed via `KintoWalletFactory.createAccount(...)`; the L2 node rejects transactions from raw EOAs and rejects `CREATE`/`CREATE2` from non-whitelisted contracts, so the dev workflow requires registering your contracts through the Kinto developer portal. Sponsor gas via `SponsorPaymaster` so end-users never need ETH. Read auth state with viem against the deployed `KintoID` and `KintoWallet` ABIs and gate UI on KYC + sanctions traits, not just wallet connection.
- ⚑EOAs cannot send transactions on Kinto — every action must go through a `KintoWallet`. Standard wagmi/viem wallet flows fail unless you route through the AA SDK.
- ⚑Contract deployments are NOT permissionless — new contracts must be whitelisted via the developer portal before they can be deployed; treat Kinto more like a permissioned L2 in CI.
- ⚑KYC is mandatory, jurisdiction-aware, and revocable — a user's `KintoID` traits can be updated/revoked; don't cache eligibility client-side past a short TTL.
- ⚑Users in OFAC-sanctioned jurisdictions cannot onboard at all — design the funnel to fail closed at KYC, not at transaction time.
- ⚑`SponsorPaymaster` has per-app rate limits and stake requirements — exhausted sponsorship causes user transactions to revert; monitor sponsorship balance and surface fallback UX.
- ⚑Kinto is an Arbitrum Orbit chain settling to Ethereum — bridging in/out goes through the canonical Kinto bridge with the standard ~7-day fraud-proof window for L1 withdrawals.