Settlement
A single cron runs daily at 00:00 UTC and pushes every seller's
accumulated USDC (minus the take rate) to their wallet on-chain. No
holding period beyond the day. No off-chain refund mechanism.
#The cron
| Field | Value |
|-------------------|--------------------------------------------------------------------|
| Schedule | Once per day at 00:00 UTC |
| Source wallet | Marketplace recipient (per chain — see Chains) |
| Destination | Your seller_wallet as registered |
| Asset | USDC (native on each chain — Circle-issued) |
| Settlement chain | Same chain the buyer paid on (cross-chain bridge in V2) |
| Net amount | gross − (gross × take_rate) where take_rate is 0.03 or 0.04 |
#Gas
tools402 absorbs the gas cost of every settlement transfer. You receive the full net amount in your wallet without paying for the on-chain transfer. Estimated cost to the marketplace : ~$0.005 per Base transfer, projected ~$750/month at 5 000 active sellers.
#Dust threshold
If your daily net is under $1 USDC, the settlement is deferred to the
next day. The amount carries forward until the cumulative balance
crosses $1. Then the full carry-over is sent in one transfer.
Why : a $0.001 settlement transfer costs the marketplace ~$0.005 in gas to send. Sending dust would burn more in gas than the dust is worth. Aggregation amortises gas across multiple days.
The carry-over balance is queryable :
curl 'https://api.tools402.dev/v1/_seller/<your-wallet>/balance'
# → { "pending_atomic": 750, "pending_usdc": "0.00075", "next_settlement_in": "8h 12m" }#In-flight payments
Between the cron runs at 00:00 UTC, buyer payments accumulate on the
marketplace recipient wallet (not on yours). They become spendable on the
next settlement.
If you delete your endpoint or get suspended between payments and settlement, your accumulated balance still ships at the next 00:00 UTC. No revenue is lost. Suspension only prevents new buyer calls from landing — it does not freeze the queue.
#What happens if your wallet is wrong
The settlement script transfers to the address stored in the sellers
table. If that wallet is wrong (private key lost, typo, etc.), the USDC
lands at an address you don't control.
There is no recovery path. The transfer is on-chain, final, no off-chain
mechanism. Triple-check your wallet during onboarding. The .tools402-seller.pk
file is your only proof of ownership.
#Reading the on-chain history
Every settlement is a standard USDC transfer on the chosen chain. You can audit your historical settlements on the relevant block explorer :
- Base : basescan.org — filter incoming transfers on your wallet
- Polygon : polygonscan.com
- Solana : solscan.io
Or via the marketplace audit endpoint :
curl 'https://api.tools402.dev/v1/_seller/<your-wallet>/settlements'
# → [{ "tx_hash": "0x…", "amount_atomic": 12830, "settled_at": 1779200000 }, …]