Supply
Supply Bitcoin
Guide
Supplying Bitcoin is the first step to make BTC productive. Instead of sitting idle in a wallet, your Bitcoin can now be used as collateral to unlock liquidity and participate in DeFi opportunities — all while you retain full ownership.
When you supply BTC:
Your Bitcoin is deposited as collateral in the BitFire protocol.
The deposited BTC secures your borrowing position and gives you access to other protocol functions.
You maintain full exposure to Bitcoin’s value, so if BTC rises, the value of your collateral rises as well.
By supplying BTC, you activate your Bitcoin as a productive asset. You can borrow stablecoins, earn yield from lending, or engage in other financial strategies — without selling your BTC or giving up control.
Product Demo
Click “Supply”
Navigate to the BitFire dashboard and select the “Supply” option.

Select Asset and Amount
Choose Bitcoin (BTC) as the asset.
Enter the amount of BTC you want to supply as collateral.

Confirm Transaction
Review the details, including the supplied amount and expected collateral value.
Click “Confirm” to complete the supply. Your BTC is now deposited as collateral, and your borrowing power is activated.
Contract Interface
/**
* @dev Emitted on supply()
* @param reserve The address of the underlying asset of the reserve
* @param user The address initiating the supply
* @param onBehalfOf The beneficiary of the supply, receiving the bTokens
* @param amount The amount supplied
* @param referralCode The referral code used
*/
event Supply(
address indexed reserve,
address user,
address indexed onBehalfOf,
uint256 amount,
uint16 indexed referralCode
);/**
* @notice Supplies an `amount` of underlying asset into the reserve, receiving in return overlying bTokens.
* - E.g. User supplies 100 USDC and gets in return 100 aUSDC
* @param asset The address of the underlying asset to supply
* @param amount The amount to be supplied
* @param onBehalfOf The address that will receive the bTokens, same as msg.sender if the user
* wants to receive them on his own wallet, or a different address if the beneficiary of bTokens
* is a different wallet
* @param referralCode Code used to register the integrator originating the operation, for potential rewards.
* 0 if the action is executed directly by the user, without any middle-man
*/
function supply(
address asset,
uint256 amount,
address onBehalfOf,
uint16 referralCode
) external;
/**
* @notice Supply with transfer approval of asset to be supplied done via permit function
* see: https://eips.ethereum.org/EIPS/eip-2612 and https://eips.ethereum.org/EIPS/eip-713
* @param asset The address of the underlying asset to supply
* @param amount The amount to be supplied
* @param onBehalfOf The address that will receive the bTokens, same as msg.sender if the user
* wants to receive them on his own wallet, or a different address if the beneficiary of bTokens
* is a different wallet
* @param deadline The deadline timestamp that the permit is valid
* @param referralCode Code used to register the integrator originating the operation, for potential rewards.
* 0 if the action is executed directly by the user, without any middle-man
* @param permitV The V parameter of ERC712 permit sig
* @param permitR The R parameter of ERC712 permit sig
* @param permitS The S parameter of ERC712 permit sig
*/
function supplyWithPermit(
address asset,
uint256 amount,
address onBehalfOf,
uint16 referralCode,
uint256 deadline,
uint8 permitV,
bytes32 permitR,
bytes32 permitS
) external;Last updated