PrivX Hurricane — Trustless Relayer

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
Relayer Contract: 0xd4951090…be6D ↗
Earn PLS tips
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
Relayer Contract: 0xd4951090…be6D ↗
Reclaim your escrowed tip
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.
1 Identify your request
📂 Drop your proof JSON here, or click to browse
— or paste your nullifier hash manually —
Relayer Contract: 0xd4951090…be6D ↗