Skip to main content

What a relayer does

A Parly relayer is an independently operated runtime that helps process supported private payment work. Relayers can support:
  • ingress duties for funded deposit work
  • payout duties for supported private payout routes
  • pending-state reconciliation when an outcome is uncertain
  • registry heartbeat updates for public app discovery
The runtime only decrypts work addressed to its relayer public key. It does not receive user seed phrases, private keys, or full private ledger history.

Before you register

Start with the public relayer source:
You will need:
  • a relayer execution wallet
  • a Tempo RPC endpoint
  • a relayer sealed-box keypair
  • Waku connectivity
  • a database for relayer state
  • secure secret storage
  • the pending reconciler running beside the relayer runtime

Register for app discovery

After your relayer is configured, open: https://parly.fi/relayer Registration asks for:
  • the relayer execution address
  • the Base64 relayer public key generated by the relayer setup
  • a wallet signature from the execution address
  • acknowledgement of ingress duties, payout duties, or both
Registration is automatic if validation passes and a registry slot is available.

What listing means

Listing makes your relayer discoverable by the public Parly App so users can encrypt supported work to your relayer public key. Listing does not create exclusive rights, treasury authority, or protocol ownership.

Keep the relayer healthy

A production relayer operator should:
  • keep the relayer online
  • keep the pending reconciler online
  • keep registry heartbeat updates healthy
  • monitor gas, route costs, and execution profitability
  • keep USDC.e and USDT0 accounting separate
  • rotate keys carefully if a key is compromised
  • avoid broadcasting work that fails local validation

Safety gates

The relayer runtime is designed to fail closed. Live transaction submission, payout execution, outbound relay broadcast, fee-payer behavior, and campaign behavior are controlled by explicit runtime flags. Do not enable a flag unless you understand the route and the operator responsibility it activates.

Where to go next