Core Concepts
Smart Wallets
Every Zet-managed wallet is an ERC-4337 compliant smart contract wallet that lives on-chain.Why smart accounts?
Deterministic addresses
When you create a wallet via the Zet API, the address is derived deterministically from the same factory contract, salt, and owner. This means:- The wallet address is identical on Base, BSC, and all supported EVM chains
- No separate deployment step per chain — lazy deployment happens on first use
- You can show users a single address for all chains
Gas sponsorship
Zet sponsors gas for all transactions executed through Zet-managed wallets. Your users never need to hold native tokens (ETH, BNB) for gas.Custodial vs Non-Custodial
Zet supports both integration models:Custodial (Zet-managed wallets)
UsewalletId in your API calls. Zet handles everything:
- Zet creates and manages the wallet
- Transactions are signed and broadcast automatically
- Gas is sponsored — zero native token balance needed
- Best for: fintech apps, neobanks, custodial exchanges
Non-Custodial (bring your own wallet)
UsesourceAddress / destinationAddress in your API calls. Zet returns transaction data for the user to sign:
- User controls their own wallet and keys
- Zet returns unsigned transaction data (
approvalData,transactionData) - User must sign and broadcast transactions themselves
- Gas paid by the user
- Best for: DeFi apps, self-custody wallets, advanced users
Transaction lifecycle
Every transaction follows the same lifecycle:1
Quote
Request a price quote. Includes fees, rates, and estimated output. Valid for ~5 minutes.
2
Initiate / Execute
Submit the quote ID to start the transaction. For ramps, this returns deposit details. For swaps/transfers, execution begins immediately (custodial) or returns transaction data (non-custodial).
3
Pending
The transaction is in progress. For on-ramps, waiting for user’s bank transfer. For swaps, the route is being executed on-chain.
4
Completed / Failed
Terminal state. On completion, crypto is delivered and webhook fires. On failure, an
errorMessage explains what went wrong.Use webhooks for production to receive real-time status updates. Polling (
GET /onramp/{id}) is available but webhooks are more efficient and reliable.Fee structure
Zet charges transparent, predictable fees. All fees are included in the quote response — what you see is what you get.On-ramp (Buy crypto with NGN)
Off-ramp (Sell crypto for NGN)
Swap
Cross-chain transfer
Platform fees in NGN are converted to the source token at the current market rate and deducted from the transaction.
Routing
Swaps and cross-chain transfers are routed through Zet’s multi-chain liquidity aggregator that finds the optimal path across:- DEXs: Multiple decentralized exchanges
- Bridges: Multiple bridge protocols
- Best price across all available paths
- Slippage tolerance (default: 0.3%)
- Gas costs on source and destination chains
- Bridge reliability and speed
Idempotency
Use thereference field when initiating transactions to ensure idempotency. If you retry a request with the same reference, Zet returns the existing transaction instead of creating a duplicate.
