Gasless relayer
Privacy has a funny failure mode: you shield everything, then pay gas from a public wallet and hand the whole thing back. The gasless relayer closes that gap.
The problem
A shielded transaction still costs gas, and gas has to come from somewhere. If it comes from your own funded address, that address is now tied to the shielded action — and it probably traces back to a KYC’d exchange withdrawal. The privacy is gone at the last step.
How the relayer works
- You build and sign a shielded transaction locally. It never reveals your amounts.
- You hand it to a relayer instead of broadcasting it yourself.
- The relayer pays the gas and submits it on-chain.
- The relayer’s fee is taken from your shielded balance inside the same proof — so you never touch a public gas balance at all.
On by default, everywhere
Live on mainnet and testnet, in the web app and the CLI, and it is the default path rather than an opt-in. Private send, unshield, merge and trade all route through the hosted network relayer at relay.cowlprotocol.com automatically, so your wallet never surfaces as the gas payer. The plan and its confirmation always show the relayer and its fee first — never silent.
cowl unshield 0.1 # gasless by default, via the network relayer
cowl trade 0.3 USDG # same — the relayer submits it
cowl unshield 0.1 --self # opt out: submit it yourself
cowl unshield 0.1 --relay http://…:4663 # or point at a specific relayerIn the app it is a chip on every spend card: the relayer or you, chosen per run. Someone always pays the gas. Gasless just means it is not you.
What can be gasless, and what cannot
The relayer’s fee comes out of the notes being spent, bound into the same proof. That is what makes it trustless, and it is also the rule that decides the coverage: an operation can be gasless when it spends notes that are already inside the pool.
| Operation | Gasless |
|---|---|
| Private send | Yes |
| Unshield | Yes |
| Trade | Yes |
| Note merge | Yes |
| Shield | No — value arriving from outside has no note to pay from yet. Self-paid, by construction. |
Coverage is per token, too: the relayer has to be able to price its fee against the venue. Assets with a route get quoted; anything else falls back to self-paid automatically and says so, so a spend never simply fails.
Fees are gas-based, not a percentage, so what a relayer charges does not scale with what you move. A big private send costs the same fee as a small one.
Run one, earn the fee
Any install can serve as a relayer and earn the fee leg of every spend it submits.
cowl relay serve # your wallet becomes a relayer
cowl relay quote https://relay.cowlprotocol.com # what the network relayer charges per spendThe fee is quoted from live gas prices and folded into the proof next to the relayer’s address, so redirecting, overcharging, or replaying it simply fails verification. A relayed private send is the most private operation the pool has: the chain records the relayer, two opaque commitments, two nullifiers, and nothing else — your wallet appears nowhere.
Trust model
Be precise about what a relayer can and cannot do:
| A relayer can | A relayer cannot |
|---|---|
| Choose to include or drop your transaction | See your amounts or positions |
| See that some shielded tx passed through it | Steal funds — it never holds them |
| Charge a fee | Deanonymize the note owner |