Relay withdrawals for others and earn PLS tips — or get yours relayed without linking your wallets.
How it works
Load your proof JSON below. Your withdrawal address has never touched the shield — to keep it that way, a relayer submits the transaction on your behalf. You escrow a PLS tip on-chain. The moment a relayer submits your proof, they receive the tip automatically. No trust required. If no one relays by your deadline, you reclaim the tip in full.
⚠ Privacy tradeoff — read before continuing
Calling registerRequest() is an on-chain transaction. It permanently records your wallet address alongside the nullifier hash and shield contract on the public blockchain. Anyone can see that your wallet initiated a private withdrawal.
✗Visible on-chain: your wallet address, which shield contract, tip size (hints at denomination), deadline
✓Never on-chain: your recipient address, the exact denomination, the ZK proof itself — these remain off-chain
If your depositor wallet being linked to a withdrawal is sensitive — use Manual Relay instead. Manual relay: share your proof JSON directly with a trusted relayer. Nothing goes on-chain until they submit the withdrawal — zero depositor fingerprint.
1 Load your proof JSON
📂 Drop your .json proof file here, or click to browse
2 Confirm proof details
3 Set relay terms
Tip amount (PLS)
Auto-suggested from your denomination. Relayers won't submit if tip doesn't cover their gas + effort.
Deadline
If unrelayed by deadline, you reclaim the tip via the Reclaim Tip tab.
Specific relayer (optional — leave blank to accept any)
4 Register on-chain
Not connected
Tip to escrow— PLS
⚠ After registering, share your proof JSON with a relayer. The tip is locked until a relay succeeds or the deadline passes.
🔍 On-chain record: This transaction permanently links your connected wallet to this nullifier hash on the public blockchain. Your recipient address and proof remain off-chain.
Load a proof JSON a user has shared with you. The page checks on-chain whether a tip is registered. If it is, you can submit the withdrawal and collect the tip in the same transaction. You cannot redirect funds — the recipient is locked in the ZK proof and enforced by the contract.
1 Load proof JSON
📂 Drop the user's .json proof file here, or click to browse
2 Proof & registered tip
3 Connect & relay
Your wallet pays gas. The contract sends the withdrawal to the recipient and your tip to you — atomically.
If your deadline has passed and no relayer submitted your withdrawal, you can reclaim your escrowed PLS tip here. Load your proof JSON or paste the nullifier hash directly.