Powered by Turnkey
Leading platforms use Turnkey to deliver onchain payment rails at scale:- Squads improved UX and accounting efficiency for multisig treasury management.
- Flutterwave powers secure stablecoin wallets for customers across Africa.
Key implementation decisions
Example: custodial payment processing
Exchanges and custodial payment processors are common examples requiring highly scalable, highly secure onchain systems.
Implementation steps
This guide assumes you’ve completed the Quickstart and have a Turnkey client initialized. If not, start there first.
1
Create deposit addresses on demand
Turnkey lets you create unlimited wallet accounts at no cost, each with a unique address belonging to the same underlying wallet. Create a deposits wallet with both EVM and SVM accounts:Then generate fresh deposit addresses on demand:This function can be triggered by end-user signup, a deposit request, or any internal flow.
2
Sweep deposits to an omnibus wallet
Now that you have deposit addresses generating on demand, the next step is moving those funds into a central omnibus wallet. This is where the complexity typically starts: sweeping funds from thousands of addresses involves both security and cost considerations.Policy-enforced sweepsCreate policies that restrict deposit wallets to only transfer to the omnibus address. EVM and SVM require separate policies due to their different transaction models:Turnkey’s Policy Engine is default-deny: you only specify the exact conditions to allow. Raw or obfuscated payloads are rejected unless explicitly permitted.Gas sponsorshipNormally you’d need to fund every deposit address with gas before sweeping. Sponsored transactions bypass this entirely:See the gas sponsorship guide for more details.
3
Treasury flows with multi-party approval
The omnibus wallet likely requires human-operator approval for outbound transfers and may need more sophisticated automations like asset rebalancing.Create a user tag (e.g., For token transfers, the policy above parses the ERC-20
ops-team) and apply it to your teammates, then set a policy requiring their approval for transfers to a cold wallet:transfer function signature. For production use, the recommended approach is to upload the contract ABI for supported assets and act on fully parsed transactions.