RBTC Flyover - Overview
Flyover is Rootstock's fast bridge for BTC ↔ rBTC. Instead of waiting ~17 hours for PowPeg, a Liquidity Provider (LP) advances funds after a few confirmations. The user gets their rBTC or BTC in 20–60 minutes, depending on the amount.
PowPeg:
User sends BTC → waits ~17 hours → receives rBTC
Flyover:
User sends BTC → LP advances rBTC in 20–60 min → LP gets refunded later via PowPeg
PowPeg vs Flyover
| PowPeg | Flyover | |
|---|---|---|
| Core mechanism | Federated 2-Way Peg (HSMs + PoW) | LP advances funds, settles via PowPeg |
| Peg-in speed | ~17 hours (100 Bitcoin confirmations) | 20–60 min |
| Peg-out speed | ~34 hours (4,000 Rootstock confirmations) | 20–60 min |
| Fees | Network fees only | 0.15% LP fee + network fees * |
| Minimum peg-in | 0.005 BTC | 0.00500001 BTC |
| Minimum peg-out | 0.004 rBTC | 0.004 rBTC |
| Maximum | None | 15 BTC / 15 rBTC * |
| Trust model | PowPeg federation | LP intermediation, settles through PowPeg |
Flyover's speed depends on the amount: smaller amounts need fewer Bitcoin confirmations and settle faster; larger amounts need more.
- The LP fee is set by each LP. 0.15% is the current default but may vary.
- Maximum transfer limits are set by the LP and will increase over time.
How Flyover Works
Peg-In: BTC to rBTC
flowchart LR
subgraph off["Off-Chain"]
A["User requests quote"] --> B["LP returns quote"]
B --> C["User accepts quote"]
C --> D["LP returns deposit address"]
end
subgraph btc["Bitcoin"]
E["User sends BTC<br>to deposit address"]
E --> F["Wait for<br>confirmations"]
end
subgraph rsk["Rootstock"]
G["LP calls callForUser<br>→ User receives rBTC"]
G --> H["LP registers peg-in<br>→ Bridge refunds LP"]
end
off --> btc --> rsk
style off fill:#f9f9f9,stroke:#999
style btc fill:#f7931a22,stroke:#f7931a
style rsk fill:#00b41e22,stroke:#00b41e
1. Get a quote The user requests a quote through the PowPeg App. The quote shows the amount of rBTC the user will receive, fees, required Bitcoin confirmations, and a time estimate.
2. Accept the quote The user must carefully review the quote details — including the amount, fees, confirmations required, and time estimate — and explicitly accept it before proceeding. Once the user accepts, the LP generates a unique Bitcoin deposit address tied to this specific quote. The address is derived from the quote hash — every transaction gets its own address.
3. Deposit BTC The user sends BTC to the deposit address. The LP monitors Bitcoin and waits for the required number of confirmations.
4. LP delivers rBTC Once confirmed, the LP calls the Liquidity Bridge Contract (LBC) on Rootstock to send rBTC to the user's address.
5. LP claims refund (background) The LP registers the peg-in with the Rootstock Bridge, providing a Merkle proof of the Bitcoin transaction. The Bridge verifies the proof and refunds the LP the original amount plus the fee. This is invisible to the user.
Sequence Diagram
sequenceDiagram
actor User
participant App as PowPeg App
participant LBC as Liquidity Bridge Contract
participant LP as Liquidity Provider
participant BTC as Bitcoin Network
participant Bridge as Rootstock Bridge
User->>App: Bridge BTC to rBTC
App->>LP: Request quote
LP-->>App: Quote + fees + time estimate
App-->>User: Show quote
User->>App: Accept quote
App->>LP: Accept quote
LP-->>App: Unique deposit address
App-->>User: Show deposit address
User->>BTC: Send BTC to deposit address
Note over LP: Monitors Bitcoin, waits for confirmations
LP->>LBC: callForUser (advance rBTC)
LBC-->>User: rBTC received
Note over LP: Registers peg-in with Bridge (background)
LP->>Bridge: registerPegIn (Merkle proof of BTC tx)
Bridge-->>LP: Refund (amount + fee)