Swapping on Rootstock without holding RBTC: how intents change who pays for gas
On Rootstock every swap needs RBTC for gas, and on a small trade that gas is a noticeable share of the trade. Intents move the transaction, and its gas, from the trader to a filler. Here is what that changes, what it does not, and how a USD₮0 holder can swap without ever touching RBTC.
Most people meet gas the same way: they bridge a stablecoin to a new chain, open a swap page, and find out they cannot do anything yet because they hold none of the chain's own coin. On Rootstock that coin is RBTC, and the problem has two parts. You need some RBTC before your first transaction, and every transaction after that costs some of it.
This article explains a different way to trade that we have just put live on Rootstock as a beta: intents. The prices still come from the same pools and the same liquidity. What changes is who sends the transaction, and with it, who pays for gas and when.
What a normal swap asks of you
A swap on a decentralized exchange is a transaction you build and send yourself. In practice that means:
- Hold RBTC. Without it, the network will not accept your transaction.
- Approve the token you are selling, usually as a separate transaction, so the exchange may move it.
- Send the swap, paying gas for it.
On Rootstock, a single-pool swap uses roughly 90,000 to 130,000 units of gas, and an approval about 45,000 more. At the network's current gas price (about 0.024 gwei) and an RBTC price around $82,000, that is roughly $0.20 to $0.30 for the swap and about $0.10 for the first approval.
That sounds small, and for a large trade it is. On a $20 trade it is 1 to 2 percent before the pool has taken its own fee. The swap screen also hides the cost that comes first: getting RBTC at all. Someone arriving with only stablecoins has to acquire a coin they do not want, just to be allowed to trade the ones they do.
What an intent is
An intent replaces "here is the transaction I want to send" with "here is the outcome I accept."
When you trade with an intent, you do not build a swap. You sign a short message that says, in effect: I give up to 20 USD₮0, and I want at least 265 RIF back, before this time. Signing a message sends nothing to the chain, so it costs no gas.
That signed order goes to an order book. Fillers watch the book, and any filler who can deliver what you asked for, or more, may complete the trade. The filler sends the transaction, pays its gas, and the settlement contract checks the result on-chain: either you receive at least what you signed for, or nothing happens and your tokens stay where they are. The filler never holds your funds. Its only two options are to complete the trade on your terms or to fail.
Three properties follow from that design:
- You never set a route. The filler picks whatever gets you the amount you signed for, whether that is one pool, three pools, or its own inventory.
- You never send the transaction, so you never need RBTC to pay for it.
- Your worst case is fixed when you sign. The minimum you receive is part of the signed message. A filler cannot fill you below it, and the order simply expires if nobody can meet it.
Who pays for gas, then?
Gas does not disappear. Rootstock still charges for every transaction, and the filler pays it. The filler is reimbursed from the trade itself: the price it quotes you already accounts for its gas, so instead of paying RBTC separately, you receive slightly less of the token you are buying.
For a trader that changes three things:
1. Gas is paid in the token you trade, not in RBTC. You never need to hold RBTC, top it up, or keep a little aside for the next transaction. The cost is in the quote you see before you sign, as one number.
2. A filler can be cheaper than doing it yourself. A filler that holds a small stock of the tokens people trade most can complete a small trade straight from that stock, with no pool swap at all. That takes about 90,000 gas, against 130,000 or more for a routed swap, and it skips the pool fee entirely. Part of that saving can be passed back in the price. In our case the filler returns half of the pool fee it did not pay, so on a pool that charges 0.3 percent, a trade filled from stock prices about 0.15 percent better than the pool itself before gas.
3. For some tokens, approvals disappear. Tokens that support signed approvals need no approval transaction at all (more on that below).
The gas itself still has to be paid. On very small trades the filler's gas remains a visible share of the quote, just as it would be if you sent the transaction yourself. Intents reduce the gas problem on Rootstock rather than remove it: the cost moves to a party that can batch, choose cheaper paths and hold inventory, and holding RBTC stops being a precondition for trading.
Fully gas-free, if you hold USD₮0
There is one case where a trader pays no gas and needs no RBTC at any step: paying with USD₮0.
USD₮0 supports a standard called ERC-2612 permits. Normally, letting a contract move your tokens takes an approval transaction. With a permit, the approval is a signed message instead, and anyone can submit it to the chain on your behalf.
So a USD₮0 trade becomes two signatures and no transactions:
- Sign the permit, allowing the settlement contract to take exactly the USD₮0 your order needs, until the order expires.
- Sign the order, stating what you want in return.
The filler submits both. It runs the permit inside the same transaction that fills your order, or, when it fills from its own stock, just before it. Either way it pays the gas, and the cost is in the quote you saw.
This closes the loop for someone arriving on Rootstock with nothing but stablecoins. USD₮0 can be bridged to Rootstock from Ethereum, Arbitrum and other chains, and arrives without any RBTC. From there the trader can buy RIF, USDRIF or BTC in the same way, without first acquiring a gas coin. And because the filler can deliver plain RBTC instead of its wrapped version, the first trade can be the one that buys the RBTC they will need for everything else on the chain.
Tokens without permit support, such as RIF, still need an approval transaction, and that one is paid in RBTC. During the beta the app caps each approval at the size of the order it is for, so selling such a token takes a fresh approval each time. The trade itself is still a signature.
What happens to a trade, step by step
Take a trader who wants RIF for 20 USD₮0 and holds no RBTC:
- The app asks fillers for a quote. A filler answers with the amount of RIF it will deliver, gas already included.
- The trader signs the permit and the order. Nothing is sent to the chain yet.
- The order appears in the order book. A filler checks it against live prices, sends one transaction that runs the permit and fills the order, and pays the gas.
- The settlement contract confirms the trader received at least the signed amount of RIF, and only then lets the filler keep the USD₮0.
If prices move against the filler before it can act, it simply does not fill. The order waits, and expires at the time the trader signed.
Limit orders work the same way
Because an intent is just a signed statement of what you accept, it does not have to be filled immediately. A limit order is an intent with a price that is not available yet: sell my RIF, but only for at least $0.079 each, any time this week. Fillers re-check resting orders as prices move, and fill one when the market reaches it with enough room to cover their gas.
That room matters for small orders. A filler only fills once the market beats your limit by its gas cost and a small safety margin, so a limit order needs to be sized with that in mind. A $10 limit order has to move further past its price than a $500 one before it is worth filling.
Beta status
The system is live on Rootstock as a pre-audit beta. The contracts have not been externally audited yet. Per-order approval caps limit what a bug could reach, and until the audit is done, trade only what you can afford to lose.
The pools stay where they are. Every price a filler quotes comes from liquidity that already exists on Rootstock: Uniswap and Sushi pools and, for RIF and USDRIF, Money on Chain's own conversion rates. Intents add a layer between the trader and that liquidity, where someone else carries the transaction, competes on the price, and absorbs the friction of a chain whose gas coin most new arrivals do not hold.
Traders should be able to arrive on Rootstock with dollars and trade immediately. The RBTC can come later, when they actually want it.