Platform Float Model
The Paygrid platform does not give each agent its own on-chain wallet. Instead, it maintains float pools — platform-owned USDC reserves on each supported blockchain. This page explains why and how the float model works.
Why Floats Instead of Per-Agent Settlement
Per-agent on-chain wallets create serious problems at scale:
- Gas costs multiply. Every agent withdrawal requires a separate on-chain transaction with gas fees.
- Key management burden. The platform would need to secure thousands of private keys.
- Fragmented liquidity. USDC gets scattered across thousands of small wallets instead of consolidated pools.
- Cross-chain complexity. Each agent would need wallets on every chain, with bridging logic per agent.
The float model solves all of these. The platform holds a small number of well-funded wallets (one per chain) and pays out from them as needed.
Float Accounts
Each supported chain has a corresponding ledger account:
| Ledger Account | Chain | Description |
|---|---|---|
platform:float:solana | Solana | Primary float, highest volume |
platform:float:base | Base | EVM L2 float |
platform:float:tempo | Tempo | High-throughput chain float |
platform:float:kite | Kite | Micro-transaction chain float |
platform:float:worldchain | World Chain | Worldcoin ecosystem float |
These accounts track the USDC balance the platform holds on each chain. The ledger balance should match the actual on-chain balance at all times.
How the Platform Pays External Services
When a service execution requires an external on-chain payment (e.g., a downstream API that accepts USDC on Solana):
- The buyer's credits are debited in the ledger
- The
platform:float:solanaaccount is debited in the ledger - The platform sends USDC from its Solana wallet to the external service
- On Solana, all transfers route through the Kora gasless relayer — never direct
The ledger debit and the on-chain transfer happen in sequence. The ledger entry is recorded first, then the on-chain transaction is submitted.
Seller Withdrawals via Float
When a seller withdraws credits as USDC:
Ledger:
debit agent:seller_789 -5000 credits
credit platform:float:solana +5000 credits
On-chain:
Platform Solana wallet --> Seller wallet: 50.00 USDC
The seller's credits are converted 1:1 to USDC ($0.01 per credit) and sent from the platform's float wallet on the requested chain.
Top-Up Process
Float pools deplete as withdrawals and external payments are made. The platform replenishes floats by:
- Converting fiat revenue (from Stripe) to USDC via Circle or exchange
- Bridging USDC to chains that are running low
- Crediting the corresponding
platform:float:{chain}ledger account
Top-ups are an operational process managed by platform administrators. The system monitors float levels and alerts when balances fall below thresholds.
Float Balance Monitoring
The platform continuously monitors float health:
Ledger Balance Check
SELECT account, balance
FROM ledger_balances
WHERE account LIKE 'platform:float:%';
On-Chain Reconciliation
A periodic job compares ledger float balances against actual on-chain USDC balances. Any discrepancy triggers an alert. Common causes of discrepancy:
- An on-chain transfer was submitted but not yet confirmed
- A deposit was received but not yet processed into the ledger
- A transaction failed on-chain but the ledger was already debited (requires manual reversal entry)
Alert Thresholds
| Level | Condition | Action |
|---|---|---|
| Info | Float below 50% of target | Logged for review |
| Warning | Float below 25% of target | Alert sent to ops team |
| Critical | Float below 10% of target | Withdrawals on this chain paused, immediate top-up required |
Key Properties
- Consolidated liquidity. One wallet per chain instead of thousands.
- Low gas overhead. One transaction per withdrawal instead of complex multi-hop routing.
- Auditable. Float ledger accounts map 1:1 to on-chain wallets, making reconciliation straightforward.
- Chain-agnostic for users. Agents request withdrawals in credits. The platform picks the chain and pays from the right float.