Docs / Relayers and gas
Protocol
Relayers and gas
Using the pool without holding ETH for gas.
Why gas is a privacy problem
A fresh address cannot send a transaction until it holds ETH for gas, and funding it out of your everyday wallet links the two. Relayers remove that step.
How relaying works
You build the proof in your browser with the relayer's fee written into it, then hand the proof to a relayer. The relayer submits the transaction and pays the gas; the pool pays the relayer its fee out of the spent note. Only the relayer named in the proof can submit it, and it cannot alter where the money goes or how much, because the recipient, the relayer and the fee are all bound into the proof.
Anyone can relay
Relaying is permissionless. The relayer software is open source (keeper/ in the repository), and anyone can run one and set its own fee, in ETH for now. A spend without a relayer fee can be submitted by anyone, including your own wallet, so if every relayer is down you only lose the gas convenience, never access to your notes.