Skip to content
DocsGas sponsorship with Privy

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:

  1. #The browser asks, the server checks

    Your browser sends the call to Nuntio's /api/sponsor route. The server:

    • verifies your session, and takes your wallet from it, never from the request
    • accepts only allowed calls: pay, request or cancel, 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.

  2. #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

BudgetLimit
Sponsored requests per minute, per person12
Sponsored spending transactions (pay, request, cancel) per person100 in 24 hours on nuntio.finance, 20 on the testnet, from the first one
Sponsored owner actions per team owner150 in 24 hours
Sponsored spending transactions in total5,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.