Skip to main content

Forwarding Address: One Address for Every Chain

Universal deposit addresses for wallets, on-ramp flows, and payment apps.

Users share one address. Senders pay from any supported chain. Funds arrive on the user's preferred destination chain.


Try it: forwarding-address.candidelabs.com

Start Integrating

Install the Candide skills so your AI agent knows how to wire up the Forwarding Address API.

Run inside Claude Code:

/plugin marketplace add candidelabs/skills
/plugin install candide@candide

Then ask: "Integrate the Forwarding Address API."

For manual reference: API Reference | Integration Guide

Why It Matters

Users fund wallets from exchanges, fiat on-ramps, other wallets, and different L2s. The sender's chain often does not match the recipient's preferred chain.

Forwarding Address removes that coordination. A user can receive USDT from Arbitrum into a wallet on Base, fund an L2 wallet from a CEX withdrawal network, or accept payments without asking the sender to bridge first.

How It Works

  1. Generate a deterministic Forwarding Address for a recipient and destination chain.
  2. Activate monitoring for the supported source chains.
  3. Show the same address to the user for deposits.
  4. When funds arrive, they route automatically to the destination wallet.

Funds route through self-custodial smart contracts. Integrators can configure a delayed recovery wallet as a fallback for stuck funds.

Best Fit

  • Wallets that want one deposit address per user.
  • On-ramp and exchange funding flows where supported withdrawal chains vary.
  • Payment apps where sender and recipient may operate on different chains.

Build With Us

We're looking for wallet and payment teams who want to offer seamless cross-chain receiving to their users.

Reach out directly on Telegram: @heymarcopolo


Technical questions? Reach out on Discord or GitHub