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.
- Claude Code
- Codex CLI
- Other agents
Run inside Claude Code:
/plugin marketplace add candidelabs/skills
/plugin install candide@candide
Then ask: "Integrate the Forwarding Address API."
npx -y github:candidelabs/skills
Then ask Codex: "Integrate the Forwarding Address API."
Paste the raw skill URL into Cursor, Windsurf, Copilot, or any chat-based agent:
https://raw.githubusercontent.com/candidelabs/skills/main/skills/forwarding-address/SKILL.md
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
- Generate a deterministic Forwarding Address for a recipient and destination chain.
- Activate monitoring for the supported source chains.
- Show the same address to the user for deposits.
- 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