Prerequisites
Before you start, make sure you have:- A compatible wallet. MetaMask (or any EIP-1193-compatible browser extension) for Sepolia, or a Stellar wallet (Freighter, xBull, Albedo) for Stellar Testnet.
- Testnet gas. You need Sepolia ETH (for EVM) or Stellar Testnet XLM (for Soroban) to cover transaction fees. Get Sepolia ETH from a public faucet, or Stellar Testnet XLM from friendbot.
- Testnet bridge tokens. After you connect your wallet, open the in-app Faucet to claim the ERC-20 / SAC / SEP-41 tokens that ProofBridge currently supports. These are the tokens you’ll actually move between chains — XLM and native ETH aren’t bridgeable on their own.
- A modern browser. The ProofBridge web app works in any browser that supports wallet extensions.
ProofBridge is live on testnets only. Do not send mainnet funds. Use Sepolia ETH or Stellar Testnet XLM.
Step-by-step: your first transfer
Open the ProofBridge app
Navigate to https://app.pfbridge.xyz/ in your browser.You will see the bridge marketplace showing available liquidity ads from Makers. Each ad lists the route, available amount, and exchange rate.
Connect your wallet
Click Connect Wallet in the top right corner.After signing, your wallet address appears in the header and your session is active.
- EVM wallet (MetaMask)
- Stellar wallet
Select MetaMask or your preferred EVM wallet from the list. Your wallet will prompt you to approve the connection.Once connected, you will be asked to sign a Sign-In With Ethereum (SIWE) message. This authenticates your session — it is a signature only, not a transaction, so it costs no gas.Make sure your wallet is set to Ethereum Sepolia (chain ID 11155111).
Select a liquidity ad
Browse the marketplace for an ad that matches the route you want. For example, to move ETH from Sepolia to Stellar, look for an ad offering ETH → wETH (Sepolia to Stellar).Each ad card shows:
- The source and destination chain
- The token pair
- The available liquidity amount
- The exchange rate
Enter your transfer details
On the order form, fill in:
- Amount — how much you want to bridge (must be within the ad’s available liquidity).
- Recipient address — the address on the destination chain where you want to receive tokens. This defaults to your connected wallet address, but you can specify a different address.
Approve and deposit
Click Confirm to submit the order.Your wallet will prompt you to sign or approve one or two transactions:
- Token approval (if required) — grants the OrderPortal contract permission to transfer your tokens. This only appears for non-native tokens. On Sepolia this is a standard ERC-20
approve; on Stellar it is a SEP-41 authorization. - Create order — deposits your tokens into the OrderPortal contract and records the order on-chain.
Wait for ZK proof generation
Once your deposit is confirmed, the relayer automatically:
- Detects your on-chain deposit.
- Notifies the Maker, who locks their liquidity for your order.
- Generates a zero-knowledge proof confirming your deposit is included in the source chain’s Merkle tree.
- Submits the proof to both chains for verification and settlement.
Order created → Locked → Proof submitted → Completed.What to expect at each stage
| Status | What is happening |
|---|---|
| Order created | Your deposit is confirmed on-chain and the order hash is recorded in the Merkle tree. |
| Locked | The Maker has locked their destination-chain liquidity for your order. |
| Proof submitted | The ZK proof has been submitted to both chains for verification. |
| Completed | Both chains have verified the proof and funds have been released to both parties. |
Common questions
How long does a transfer take?
How long does a transfer take?
Most transfers complete within a few minutes. The main variable is block confirmation time on the source chain. Sepolia confirmations typically take under a minute; Stellar ledgers close every ~5 seconds. Proof generation adds a small amount of additional time.
What if no liquidity ad matches my route?
What if no liquidity ad matches my route?
If there are no ads for your desired route or the available amounts are too small, you can check back later as Makers add new ads over time. You can also become a Maker yourself and post liquidity on the route you need.
Can I specify a different recipient address?
Can I specify a different recipient address?
Yes. On the order form, you can enter any valid address on the destination chain as your recipient. This lets you bridge directly to a different wallet or a smart contract address.
What happens if the Maker does not lock liquidity?
What happens if the Maker does not lock liquidity?
If the Maker does not lock their liquidity within the expected window, the relayer flags the order. Your deposited funds remain in the OrderPortal contract and are not at risk. Contact support via the GitHub repository if your order stays stuck.
Do I need to do anything after depositing?
Do I need to do anything after depositing?
No. Once you confirm the deposit transaction, the relayer handles proof generation and submission automatically. You just wait for the Completed status.
Next steps
Bridge tokens guide
A deeper walkthrough of the Bridger flow including tips for larger transfers.
Provide liquidity
Learn how to post a liquidity ad and earn fees as a Maker.
How it works
Understand the ZK proof system and settlement mechanics in detail.
Supported networks
View all available chains and token routes.