# Reserves

### ReserveSafe contract

Tab Protocol stores BTC reserves into a dedicated ReserveSafe contract. \
No one has permission to unlock BTC from the Safe except Governance (for migration) or VaultManager contract, which is only authorized to perform withdrawal by vault owner.

### ReserveRegistry contract

The ShiftCTRL community can propose the addition of new reserves (such as other forms of wrapped or bridged BTC) or the disabling of a reserve already registered through the protocol's governance module.&#x20;

At inception, [cbBTC](https://www.coinbase.com/en-gb/cbbtc) (Base Mainnet: [0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf](https://basescan.org/address/0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf)) is pre-registered in the ReserveRegistry contract and can be used to create a vault for minting Tabs.&#x20;

{% hint style="info" %}
**Note:** The ReserveRegistry contract supports reserve tokens with varying decimal values. \
For example, while cbBTC operates with 8 decimals, vaults at the protocol level can support up to 18 decimals. The system will call the `ReserveSafe.getNativeTransferAmount` function to retrieve the correct reserve amount based on the reserve type's decimal value.
{% endhint %}

{% hint style="info" %}
**Note:**&#x20;

Each Tab type is associated with default configuration values below regardless of Reserve Type in use:

* Minimum reserve ratio: 180%
* Liquidation ratio: 120%

These values can be adjusted by calling the `GovernanceAction.updateTabParams` function.
{% endhint %}
