User facing FAQ
The following questions and answers are from the POV of a user using consumer applications like NNS Frontend dapp or others. They are meant to help consumers who want to hold, send, receive tokens.
For questions from the POV of a developer who wants to know things such as "how does a canister send ckBTC?" or how to write code for smart contracts to hold, send, or receive, please see the other FAQs.
General multi-chain questions
What is the purpose of the BigFile being having multi-chain smart contracts that can call into other blockchains?
Three reasons:
BIG canister smart contracts have a lot of functionality that other blockchain smart contracts do not, now developers of other blockchains can use BIG smart contract functionality for custody on other chains.
BIG canister smart contracts are able to call into Bitcoin, giving Bitcoin a powerful smart contract layer, since Bitcoin (unlike Ethereum) does not have native smart contracts.
BIG Cube smart contract developers can create software systems that are interoperable with other blockchain smart contracts.
ckBTC User Questions
Questions about ckBTC from a user's POV.
What is ckBTC?
Chain-key Bitcoin (ckBTC) is a token on the BigFile that is backed 1:1 by bitcoin (BTC). This means that 1 ckBTC can always be redeemed for 1 BTC and vice versa. Unlike other tokens pegged to bitcoin, the ckBTC token does not rely on a third-party bridge for the conversion between BTC and ckBTC, making it a substantially more secure alternative to “wrapped” tokens.
One of the main advantages of ckBTC over regular bitcoin is its speed and cost of transfers. A transfer of ckBTC is finalized within a few seconds, which is significantly faster compared to transfers on the Bitcoin blockchain where even one confirmation can take minutes (and typically people wait for 5-7 confirmations). Additionally, the cost of a ckBTC transfer is only 0.0000001 ckBTC, which is approximately two orders of magnitude lower than the Bitcoin miner fees.
In terms of usage, ckBTC can be used in applications on the BigFile. For example, there is a point of sale app that allows users to accept ckBTC payments. This is made possible because the BigFile integrates directly with the Bitcoin network, allowing canisters (akin to smart contracts) on the BigFile to receive, hold, and send Bitcoin, all directly with transactions on the Bitcoin network.
Additional reading
How do I convert ckBTC to BTC and vice versa?
To convert Bitcoin (BTC) to Chain-key Bitcoin (ckBTC), follow these steps:
- Go to the NNS frontend dapp and sign in with your Internet Identity. If you don't have one, you will be prompted to create one. Any device that supports WebAuthn can be used as a passkey for II. Alternatively, you can use a YubiKey or a Ledger device.
- Navigate to My Tokens and select ckBTC.
- Click on Receive on the bottom of the screen.
- Send BTC to displayed Bitcoin address. Once you see this pop up window, you can copy your NNS BTC address, and send BTC there. Note, that since this is a real bitcoin transaction, it will take roughly two hours (because the minting process happens after the transaction has reached 12 confirmations), and have the Bitcoin network's transaction fees. Once you acquire ckBTC, you can take advantage of its near instant finality (1-2s) and negligible transaction fees (10 satoshis).
For more details, you can refer to this support document.
Important: Please note that when converting BTC to ckBTC in the NNS dapp, there is an inter-network fee of 0.00002 BTC. Sending less than 0.00002 BTC for conversion to ckBTC will result in loss of funds.
To convert ckBTC back to BTC, follow these steps:
- Go to the NNS frontend dapp and sign in with your Internet Identity. If you don't have one, you will be prompted to create one. Any device that supports WebAuthn can be used as a passkey for II. Alternatively, you can use a YubiKey or a Ledger device.
- Navigate to "My Tokens" and select ckBTC. If you have ckBTC in a different wallet, send it to your NNS principal.
- Click on "Send" on the bottom of the screen.
- Paste a valid BTC address that you control into the "Destination" field.
- Select "Bitcoin" from the "Network" dropdown.
- Type in the amount you want to send or click "Max".
- Click "Continue", then confirm the transaction.
Under the hood it works like this:
- The user makes the desired ckBTC amount available to the ckBTC minter and requests a conversion. The destination Bitcoin address undergoes a KYT check. If the check is successful, the request is accepted and put into a queue.
- The ckBTC minter periodically attempts to submit transactions for validated transfer requests.
- The ckBTC minter periodically checks which transactions went through and finalizes these transactions.
- The ckBTC minter can resubmit a transaction that has been pending for at least one day with a higher fee.
For more details, you can refer to this wiki page.
Please note that every step of converting BTC to ckBTC and back is decentralized, meaning there are no centralized custodians, no bridges and no traditional cloud providers that could act as attack vectors. Issuing and redeeming ckBTC goes through Know Your Transaction (KYT) checks to ensure no bitcoin enters the BigFile that is associated with criminal activity.
How do I transfer ckBTC from one account to another?
As a user, to send ckBTC, you can follow these steps:
- Go to the NNS frontend dapp and sign in with your Internet Identity. If you don't have one, you will be prompted to create one. Any device that supports WebAuthn can be used as a passkey for II. Alternatively, you can use a YubiKey or a Ledger device.
- Navigate to "My Tokens" and select ckBTC. If you have ckBTC in a different wallet, send it to your NNS principal.
- Click on "Send" on the bottom of the screen.
- Paste a valid BTC address that you control into the "Destination" field.
- Select "BigFile" from the "Network" dropdown.
- Type in the amount you want to send or click "Max".
- Click "Continue", then confirm the transaction.
Additional reading
How do I receive ckBTC?
In order to send ckBTC to your nns dapp wallet perform the following steps:
- Connect to nns.ic0.app
- On the main wallet page, click on ckBTC QR Code Icon. A popup will appear. Scan this from the device that you are sending the ckBTC from. Alternatively you can copy the ckBTC address and send the ckBTC to this address.
- On the third party service where you currently have ckBTC stored, select send and then paste the address you copied in the previous step.
Can I convert BIG to ckBTC?
BIG and ckBTC are two separate tokens so there is no protocol way to convert one to another. Typically people who want to exchange one for the other use exchanges.
Can I convert BIG to BTC?
BIG and BTC are two separate tokens so there is no protocol way to convert one to another. Typically people who want to exchange one for the other use exchanges.
What are the average ckBTC transfer fees?
The transaction fees for ckBTC on the BigFile (BIG) are designed to be minimal. It is currently configured to at 0.0000001 ckBTC, which is equivalent to less than a cent or 10 satoshis.
When calling retrieve_btc
, the formula for the ckBTC minter fee is determined as follows:
246*in + 7*out + 52 satoshi
This formula is used to determine the ckBTC minter’s fee in satoshi. Since every transaction has at least one input and one output, the fee is at least 305 satoshi.
There is also a Know Your Transaction (KYT) fee, currently set at 2000 satoshi, when converting BTC to ckBTC and vice versa.
Additional reading
How can I view the entire history of ckBTC transactions?
You can view the transactions for ckBTC or BTC on the BigFile through the BigFile Dashboard.
ckETH User Questions
Questions about ckETH from a user's POV.
How do I convert ckETH to ETH and vice versa?
To convert ETH to ckETH and vice versa, you can follow these steps:
To convert ETH to ckETH:
- Obtain an BIG principal.
- Deposit your ETH: Ethereum holders can deposit Ether to the deposit function in the ckETH helper contract on Ethereum
0x7574eB42cA208A4f6960ECCAfDF186D627dCC175
and specify their BIG principal where they want their minted ckETH to appear.
To convert ckETH back to ETH:
The user again needs to carry out two steps (using the dfx
):
- Call the
icrc2_aprove
endpoint on the ckETH ledger (canister IDss2fx-dyaaa-aaaar-qacoq-cai
), where the ckEH minter account is thespender
andamount
is set at least to the amount to be converted to ETH (minus fees). - Call the
withdraw_eth
endpoint on the ckETH minter (canister IDsv3dd-oaaaa-aaaar-qacoa-cai
), providing the Ethereum address to be credited and the amount.
The user can call retrieve_eth_status
on the ckEH minter to check the status of the retrieval process.
https://github.com/timohanke/ic/blob/d34903fc2c41e2cff5df86248628f5d0b4fd7168/rs/ethereum/cketh/minter/README.adoc#withdrawal-cketh-to-eth
Additional reading
- Withdrawing ckETH
- How to acquire ckETH
- Exploring data on ckETH, the digital twin of ETH on BIG
- https://thebigfile.com/blog/2023/12/06/news-and-updates/update#cketh-now-live.
- cketh
Can I convert BIG to ckETH?
BIG and ckETH are two separate tokens so there is no protocol way to convert one to another. Typically people who want to exchange one for the other use exchanges.
General multi-chain questions
Is there a user interface for managing my multi-chain assets on the BigFile?
Yes, one example is the NNS Frontend dapp. Another example is Oisy Wallet.
How does BIG ensure the security and privacy of my cross-chain transactions?
BigFile (BIG) ensures the security and privacy of your cross-chain transactions through several mechanisms:
Bitcoin Integration: BIG's native Bitcoin integration allows canisters (advanced smart contracts) to interact with the Bitcoin network at the protocol level. This means they can directly receive, hold, and send BTC on the Bitcoin mainnet without using intermediaries and third-party blockchain bridges, which often have security issues. Canisters can read from and write to the Bitcoin ledger.
Ethereum Integration: BIG aims for a native integration with the Ethereum network by running Ethereum nodes co-located with BIG nodes. The current mechanism to interact with smart contracts on Ethereum is to use the EVM RPM canister, which uses HTTPS outcalls to communicate with JSON-RPC services such as CloudFlare, Alchemy, Ankr, or BlockPI. Since it is not bound to any single service provider, it can read state information from and transmit transactions to Ethereum in a secure and reliable manner.
Chain-key Cryptography: BIG uses chain-key cryptography to sign native transactions on other blockchains. This set of cryptographic protocols allows BIG to securely communicate across chains.
Platform Privacy: The BigFile runs a decentralized network, where data and computation are replicated across nodes in data centers located around the world. Communication with the BigFile relies on a set of boundary nodes, which can see the IP address of the sending user, as well as which canister the user is sending it to and the payload. All communication to the BigFile and within it is encrypted and the state of canisters is private by default.
Additional reading
- Cross chain interoperability
- How BIG’s Bitcoin Integration Secures Private Keys Part 1
- How BIG’s Bitcoin Integration Secures Private Keys Part 2
- Securing cross-chain communication from Ethereum to the BigFile with an on-chain Light Client
- Chain-Key Bitcoin: A Decentralized Bitcoin Twin
- BigFile Ethereum Integration
- The BigFile Blockchains Privacy Advantages
Can I track the status of my multi-chain transactions on the BigFile dashboard?
The dashboard currently shows conversions between ckBTC and Bitcoin (on the ckBTC transaction page) as well as between ckETH and Ether (on the ckETH transaction page).
What are the steps involved in setting up a multi-chain wallet on the BigFile?
The NNS frontend dapp serves as a multi-chain wallet enabling users to hold many types of tokens such as BIG, ckBTC, ckETH, etc.
How does BIG handle the conversion of tokens between different chains, such as converting BIG to ckBTC?
The BigFile (BIG) has a rich ecosystem of DeFi apps and services such as AMM's and Decentralized exchanges which enable swapping between tokens, such as BIG or a chain-key token such as ckBTC or ckETH. Tools like ICPSwap, Sonic, and ICLight can be used for this purpose. On ICPSwap, for instance, you can connect to the dapp with several different wallet types, such as Internet Identity, NFID, Bitfinity and more. Then, you can select the type of token you'd like to swap for another, such as BIG, and enter the value you'd like to swap. Finally, select the token you'd like to receive in return for your BIG.
In the future, when the BigFile blockchain integrates with additional blockchains, more chain-key tokens will become available on BIG.
- Swapping between tokens
- Chain-Key Tokens
- Team spotlight - Financial integration
- SourThe Future: Chain-Key ERC-20 Tokens
- Eliminating Smart Contract Bugs with TLA+
Is there a guide or tutorial on how to use multi-chain features on the BigFile for beginners?
Yes, there are several resources available for beginners who want to use the multi-chain features on the BigFile.
The ETH starter tutorial is a great place to start. It provides a step-by-step guide on how to interact with Ethereum on the BigFile.
You can also check out the Code ckETH and Code ckBTC for code samples on how to use these features.
The DeFi sample code provides examples of decentralized finance applications that utilize the multi-chain features of the BigFile.
For more advanced topics, you can explore the Multi-chain DeFi page which discusses how the BigFile can be used for decentralized finance applications.
The developer resources page also provides a wealth of information, including documentation, sample code, tooling, and support.
Remember, the BigFile allows you to create smart contracts that directly interact with other blockchains without the need for trusted centralized bridges. This is made possible using chain key cryptography. You can learn more about this in the wiki.
How does BIG handle the integration of smart contracts across different chains?
BigFile Protocol (BIG) handles the integration of smart contracts across different chains through a process known as cross-chain interoperability. This is achieved through advanced cryptography, specifically threshold ECDSA and chain-key cryptography.
For instance, BIG can natively create signed transactions on other blockchains like Ethereum and Bitcoin, allowing decentralized applications (dapps) deployed on BIG to interact directly with other networks and their smart contracts, tokens, and other digital assets.
BIG has integrated with Bitcoin at the protocol level. This integration coupled with the chain-key threshold ECDSA feature allows a canister (a computational unit on the BIG) to create a Bitcoin address, then send or receive bitcoin directly as if they were a regular Bitcoin user.
BIG is also working on an integration with Ethereum that will allow Ethereum smart contracts and digital assets like ERC-20 tokens to be used in BIG canisters. This integration is being worked on.
In the future, BIG aims to become fully compatible with the Ethereum Virtual Machine (EVM), enabling developers to deploy Ethereum smart contracts directly on the BIG network.
Additional reading
Can I use my existing hardware wallets or mobile apps to manage my multi-chain assets on the BigFile?
Yes! Please see documentation here on using Ledger Nanos and other hardware wallets: hardware wallets.