# LBTC Design

LBTC is deployed as a standard token on supported blockchains (i.e. ERC-20 on Ethereum, BEP-20 on BSC, etc.) with a minimal level of customization.

## On EVM chains

### Interfaces

LBTC uses standard OpenZeppelin implementations for:

* **ERC-20:** token standard widely adopted across EVM networks.
* **ERC-20 Permit:** enables off-chain signed messages to authorize spending (gasless transactions). Necessary for many DeFi protocols, e.g. DeXs
* **Two-step Upgradable:** allows LBTC to be upgraded following best-practices (two-step transactions with timelock), following a standard proxy and implementation pattern.
* **ERC-20 Pausable:** used for automated incident response to pause all critical functions.

### Functionality

* **Minting:** Mints new LBTC into circulation after authorization from both the Security Consortium and Bascule.
  * Transactions can be minted individually or in batches.
  * Minting can be performed with an optional fee charged in LBTC (used to cover network gas costs, e.g. for auto-mint).
* **Redemptions:** Burns LBTC with a request to withdraw Bitcoin to a provided bitcoin address.
* **Chainlink CCIP:** Used for bridging between [supported-blockchains](https://lombard.gitbook.io/lombard/technical-documentation/supported-blockchains "mention"). Minting allowed after authorization from both the Security Consortium and Chainlink. to mint.
* **Consortium**: Multi-sig contract to check all authorizations, must be signed by ⅔ of members

### Roles

* **Minters**: used for adapters with delegated minting rights (i.e. CCIP).
* **Claimers**: restricted set to call the minting with fee functions, to prevent frontrunning attacks (inconvenience).
* **Operator**: change the maximum authorized mint fee, based on network conditions and exchange rate.
* **Pauser**: to (un)pause critical security operations.
* **Owner:** change role membership and contract configuratio&#x6E;**.**
