BSA Fees
This page summarizes every on-chain fee a BSA depositor or integrator pays, where it is paid (Bitcoin or Ethereum), and who pays it for each protocol flow.
Note The following description assumes a Partner integration for the Lombard BSA protocol. Since some on-chain operations and costs are eased by the Lombard backend, off-chain limitations, quotas or commercial agreements may apply to protocol usage.
| Flow | Fee | Paid on | Paid by |
|---|---|---|---|
| Lock | Bitcoin miner fee for the lock tx, at the fee rate chosen by the Partner | Bitcoin | Partner, from the funding transaction |
| Lock | Gas fee for UTXO information registration on the SAR | Ethereum | Lombard |
| Cooperative unlock | Cooperative unlock fee in native ETH, getCooperativeUnlockFee(utxosCount): a fixed fee plus a fee per UTXO to cover operational costs, including gas for the SAR call | Ethereum | Partner |
| Cooperative unlock | Bitcoin miner fee for the vault → depositor tx | Bitcoin | Lombard, covered by the cooperative unlock fee |
| Unilateral unlock | Gas for unilateralUnlock on the SAR. No Lombard fee | Ethereum | Partner |
| Unilateral unlock | Miner fees for 2 transactions: the unlock tx and the spend from the timelock address. A base miner fee is committed in PSBTs at lock phase | Bitcoin | Partner |
| Rebalance | Miner fee for the rebalance tx | Bitcoin | Lombard |
| AO resolution | Miner fee for the challenge-resolution tx committed at lock phase, plus a CPFP bump if the network is congested | Bitcoin | Partner running the AO |
The Bitcoin miner fee committed at lock phase is a protocol instance parameter registered on the Smart Account Registry at getCurrentFee().
Examples
Some examples of expected fees in the most common cases.
Notation
- D: the deposited BTC amount
- N: the number of tranches (UTXOs) into which the deposited amount is split
- Ef: the fee to execute an Ethereum transaction (a constant simplification of the gas fee on Ethereum)
- Uf: the constant fee to unlock a tranche with Lombard cooperation
- Ut: the per-tranche fee to unlock a tranche with Lombard cooperation
- M: the miner fee committed at lock phase from
getCurrentFee() - Bf: the miner fee needed to send a Bitcoin transaction (a constant simplification of the miner fee at a certain fee rate)
- Lf: the unlock fee charged by Lombard upon unlocks from the Security Consortium
General BSA protocol instance
This example covers a typical BSA protocol instance. The depositor locks some Bitcoin in a BSA vault, uses it as collateral in their DeFi activity, and exits the vault with a call to the cooperative unlock() function.
- Lock → Bf, i.e. the miner fee for the funding transaction to the vault sent on Bitcoin
- Unlock → Uf + Ut · N + Ef, i.e. an unlock fee per UTXO plus the Ethereum gas fee to execute the
unlock()call on Ethereum
Rebalanced BSA protocol instance
In this example a depositor’s position was partially liquidated, so Lombard pulled a list of tranches of length K from the vault to cover the supply movement.
- Lock → Bf, i.e. the miner fee for the funding transaction to the vault sent on Bitcoin
- Unlock → Uf + Ut · (N − K) + Ef + Lf, i.e. an unlock fee per remaining UTXO after liquidation, plus the Ethereum gas fee to execute the
unlock()call on Ethereum, plus the fee to retrieve BTC from the Security Consortium for the partially liquidated amount
If the rebalanced amount does not match the exact value of the tranches rebalanced, the depositor is left partially collateralised in the Security Consortium. Redeeming the remaining funds then requires an additional Ethereum transaction costing Ef.
Protocol instance with unilateral exit
In this example, Lombard minted BTC.b after the tranches were locked according to the BSA protocol rules, but for any reason (e.g. Lombard fee too high, Lombard unavailable, …) the depositor wants to exit without Lombard cooperation.
- Lock → Bf, i.e. the miner fee for the funding transaction to the vault sent on Bitcoin
- Unlock → Ef + M + Bf, i.e. the Ethereum gas fee needed to call
unilateralUnlock, plus the Bitcoin miner fee committed at lock time in PSBTs for the vault → Unlock Timelock Address (UTA) transaction, plus the Bitcoin miner fee needed to pull funds from the UTA after the timelock expires