DocsHow it works
Gas sponsorship with Privy
How Nuntio pays network fees through Privy without ever being able to spend, and the limits on it.
Nobody using Nuntio needs MON. Nuntio pays the network fee for people's payments, for team owners' actions and for agents, through Privy's gas sponsorship. The party paying the fee never gains the ability to spend.
#How sponsorship keeps your wallet the sender
Privy sponsors a transaction by upgrading the sender's own wallet with EIP-7702 and submitting it as an ERC-4337 user operation through a bundler. On chain, the contract sees your wallet as msg.sender. The bundler appears only as the transaction's origin, and nothing in Nuntio's contracts authorizes on that. So your policy applies exactly as if you had paid the fee yourself.
This has been observed on chain for a Privy server wallet on testnet, for an agent paying on testnet, for an agent paying on mainnet (its Paid.spender is the agent's wallet, not the bundler), and for a person's own embedded wallet creating and accepting a team on mainnet. See Evidence.
#A person's payment, in two phases
Privy will not sponsor a transaction requested straight from a browser, because sponsorship spends the app's prepaid credits and the secret for that cannot live in a web page. So the browser asks and the server decides, in two phases:
#The browser asks, the server checks
Your browser sends the call to Nuntio's
/api/sponsorroute. The server:- verifies your session, and takes your wallet from it, never from the request
- accepts only allowed calls:
pay,requestorcancel, with no native value and a bounded size, on the account or queue you are using (Nuntio's main account, the testnet Sandbox, or a team the factory made) - spends one unit of your per-minute budget
- simulates the exact call from your wallet, so a payment the account would refuse costs a read, not a sponsored transaction
Then it answers with the exact Privy request it would send, and a ticket: an HMAC over you, your wallet and that request. Nothing is sent yet.
#Your browser signs, the server relays
Your browser signs that exact request with your wallet's own key, without opening another window. It sends it back with the ticket. The server checks the ticket matches you, your wallet and the request, runs every check again, spends one of your daily sponsored sends, and forwards the request unchanged with
sponsor: true.The request expires two minutes after it was built, and Privy itself refuses an expired one. A request that was altered, built for someone else, or past its expiry is refused before anything is sent.
The server can only send what you signed, and it cannot name a different wallet.
#Team owners
A team owner's actions use the same two phases from the owner's own wallet: creating and accepting the team, granting a member, approving their services, pausing, resuming or revoking them, and deciding and settling requests. No server key can act for a team.
#Agents
The worker sends each agent payment from that agent's own Privy server wallet with sponsor: true, when sponsored sends are on for the worker. The agent's wallet needs no MON.
#Nuntio's main account
Owner actions on Nuntio's own main account are signed with the protocol admin key, not sponsored. When the app sends them, the server can only encode the owner functions and paySettled with that key, never pay. See Security model.
#Limits
| Budget | Limit |
|---|---|
| Sponsored requests per minute, per person | 12 |
Sponsored spending transactions (pay, request, cancel) per person | 100 in 24 hours on nuntio.finance, 20 on the testnet, from the first one |
| Sponsored owner actions per team owner | 150 in 24 hours |
| Sponsored spending transactions in total | 5,000 in 24 hours per server instance |
Only a transaction that passed the simulation uses a daily send. A payment your policy refuses never reaches Privy and does not count.
#When sponsorship is not available
Privy's gas credits are prepaid. If they run out, or sponsorship is switched off, a sponsored write is refused before it is sent, and the app says that nothing left your account. Your policy was never asked, so asking your owner will not help. Try again later.
The public health check, nuntio.finance/api/health, reports sponsorship as degraded once a send on that server has met empty credits or a chain without sponsorship, with the kind of failure and its time, until a later send goes through. It reports what sends met, not the credit balance itself.
#What it costs
A sponsored payment uses more gas than a direct one, because it travels as a user operation. The first agent payment on mainnet used 484,024 gas at 102 gwei, which is 0.0494 MON, about $0.0013 at a MON price of $0.02617 (Chainlink's MON/USD feed on Monad, read on 12 October 2026). Nuntio paid it.