> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pfbridge.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Bridge your first tokens on soak

**Soak**

| | URL |
| - | - |
| App | [staging.pfbridge.xyz](https://staging.pfbridge.xyz) |
| API | `https://api-staging.pfbridge.xyz` |

Soak runs on **Ethereum Sepolia** and **Stellar Testnet** with test tokens only.

**Mainnet**

| | URL |
| - | - |
| App | [app.pfbridge.xyz](https://app.pfbridge.xyz) |
| API | `https://api.pfbridge.xyz` |

> [!NOTE]
>
> Mainnet isn't live yet. Use **Soak** to try ProofBridge today.

## Before you start

* **Wallets:** an EVM wallet on Sepolia and/or a Stellar wallet on
  Testnet. You need the wallet of the chain you're depositing from. See
  [Connect a wallet](https://docs.pfbridge.xyz/v3/guides/connect-wallet.md).
* **Test funds:** Sepolia ETH for gas and XLM on Stellar Testnet. The
  in-app **Faucet** covers the bridge tokens ([Get test tokens](https://docs.pfbridge.xyz/v3/guides/faucet.md)).

## Step 1: Register your settlement key (once per wallet)

Every trading wallet needs a settlement key registered before it can
complete a trade. On the **BLS Keys** page:

**1. Derive**

Sign the derivation message. Your key is computed from this signature,
so you can regenerate it on any device by signing again. There is
nothing to back up.

**2. Authorize**

Sign the registration. It carries a proof of possession, so nobody can
register a key they don't hold.

**3. Confirm**

The relayer submits the registration to the registries on **both**
chains and pays the gas. The page shows the key as registered once
both confirm.

Screenshot coming soon

The BLS Keys page with a registered key

> [!WARNING]
>
> Keys belong to **wallets**, not accounts. If you trade from two wallets
> (one per chain), each wallet registers its own key.

## Step 2: Open an order

On the **Bridge** page, pick the chains and token, then choose an ad.
Enter the amount; the app shows what you pay, the
[fee](https://docs.pfbridge.xyz/v3/concepts/fees.md) and what you receive. Set the receive address on
the destination chain, then **Hold to Bridge**.

Your wallet then runs the deposit:

1. **Approve in Wallet:** a one-time token approval (token routes only)
2. **Submit On-Chain:** the deposit into the OrderPortal escrow
3. **Finalize Deposit:** the app tells the relayer it landed

Screenshot coming soon

Choosing an amount: what you pay, the fee, what you receive

If you close the wallet popup by mistake, the order waits for you on the
**Orders** page: **Complete Order** serves the same transaction without reserving
more of the maker's liquidity. Unfunded orders are released after \~30
minutes.

## Step 3: Co-sign

When both deposits are confirmed, the trade page shows **Your Turn**.
Click **Co-sign Settlement**: your settlement key signs the trade in the app, with no
transaction and no gas. The maker signs their half independently, or
their agent does.

Screenshot coming soon

The co-sign step on the trade page

## Step 4: Watch it settle

Nothing else to do. The steps advance as the signatures are combined, the
proofs are built and the payouts are submitted:

```
Sign with BLS Key → Aggregated → Submit On-chain → Completed
```

Your tokens arrive at your receive address on the destination chain. The
trade page's timeline links every transaction.

> [!NOTE]
>
> If the trade doesn't settle by its deadline, it doesn't get stuck: it can
> be cancelled and your deposit refunded. See
> [Cancels and refunds](https://docs.pfbridge.xyz/v3/concepts/cancels-and-refunds.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.