Use Sequence Embedded Wallets and Smart Sessions to automate pull-and-push USDC flows from client wallets to a central treasury, with no per-transfer approvals.
This guide shows how to build an automated stablecoin collection system where your platform pulls USDC from client wallets on a schedule and settles to a downstream destination, without requiring manual approval from clients on every transfer.A common real-world pattern: a payment processor needs to collect USDC from their fintech clients each day and forward it to a card network for settlement. The flow is:
Client wallet (one-time Smart Session grant) → Platform checks balance via Indexer → Platform pulls USDC on schedule → Treasury wallet aggregates funds → Treasury pushes to settlement destination
No per-transfer approval is needed from clients after the initial session grant.
Client wallet: A Sequence Embedded Wallet held by each client. During onboarding, the client grants a one-time Explicit Smart Session that authorizes your platform to pull USDC up to a defined daily cap, locked to your treasury address only.
Treasury wallet: An operator-controlled Sequence wallet. It receives pulled USDC from client wallets and forwards it to the settlement destination (e.g., a card network settlement account or stablecoin bridge).
Each client connects their Sequence Embedded Wallet during onboarding and grants one Explicit Smart Session. This session authorizes your backend to pull USDC up to a daily cap, locked to your treasury address. It cannot be used to send funds anywhere else.Configure this in your frontend provider:
The client reviews the permission scope and signs once. Your backend can pull up to the cap at any time within the 30-day session without prompting them again.
cumulative: true enforces the cap across all transfers during the session period, not per-transfer. A client with a 100,000 USDC cap cannot be exceeded in total until the session expires and they re-authorize.
Before each pull, verify the client has sufficient USDC using the Sequence Indexer API. This avoids failed transactions and lets you pull only what’s available.
Your backend runs a scheduled job that calls transfer on each client’s USDC balance via their active Smart Session. The session rules (address lock and cumulative cap) are enforced onchain by the client’s smart account.
Once USDC has accumulated in the treasury, forward it to the settlement destination using your operator-controlled treasury wallet. If your treasury is itself a Sequence wallet, you can use the same SDK to manage outbound settlement.
Session locking: The to address rule locks transfers to your treasury address only. A client’s session cannot be used to send funds anywhere else, even if your backend is compromised.
Cumulative cap:cumulative: true prevents the backend from pulling more than the authorized total across the session period.
Onchain enforcement: Session rules are enforced at the smart contract level. They cannot be bypassed by your backend or any third party.
Key custody: Client wallets are non-custodial. Private keys are secured in AWS Nitro Enclaves via threshold cryptography. Neither your platform nor Sequence holds user keys.