Self-custody guide
Overview
Within the BigFile ecosystem, BigFile tokens (BIG tokens) are a native utility token. BIG tokens play a key role in both the governance and economics of the BigFile.
This self-custody guide scenario assumes:
You are a new BIG token holder.
You want to understand what you can do with your BIG tokens.
You want to know how to convert, transfer, or lock your BIG tokens using the SDK command-line interface
dfx
.
If you aren’t yet a token holder, you’ll need to purchase BIG tokens from an exchange or receive a token grant before you can take custody. For an overview of how to get BIG tokens and custody options, see how you can get BIG tokens and choosing self-custody for digital assets.
If you are using another application—such as the File Management System (FMS) application or the user interface provided by a hardware wallet—to interact with your BIG tokens, you should refer to the documentation for that application.
This self-custody guide focuses solely on interacting with BIG tokens using the SDK command-line interface dfx
.
How you can use BIG tokens
The following diagram provides a simplified overview of the three most common ways you can use tokens.
As this diagram suggests, how you use BIG tokens depends primarily on your goals in acquiring them.
If you are a developer or entrepreneur, BIG tokens can be converted to cycles. Cycles can then be used to build and deploy applications to deliver products and services to the market.
If you are a member of the community interested in participating in governance and influencing the direction of the BigFile, you can lock up BIG tokens in a stake—called a neuron—so that you can submit and vote on proposals.
Prerequisites
To get started, verify the following:
You have an internet connection and access to a shell terminal on your local Intel-based macOS or Linux computer.
You know how to open a new terminal shell on your local computer and how to run basic command-line programs in the terminal.
You hold BIG tokens in a self-custody wallet.
You have downloaded and installed the SDK by running the following command in a terminal on your local computer:
sh -ci "$(curl -fsSL https://thebigfile.com/install.sh)"
You have created a backup copy of the public/private key for the identity you are using for self-custody.
For example, if you are using the default developer identity created using the SDK
dfx
command-line interface, you should have a backup of the~/.config/dfx/identity/default/identity.pem
file stored in a secure location.You have a secure environment in which to perform operations involving BIG tokens.
As a security best practice, any operations that involve the transfer of BIG tokens would require both an air-gapped computer with minimal hardware and software and a computer connected to the network. In practice, this requires moving files between two computers and taking other precautions to minimize risks.
For simplicity, this page describes how to complete key tasks using a single computer connected to the network.
Connect to a ledger and get your account identifier
All BIG token transactions are recorded in a ledger canister running on the BigFile. These instructions assume that you are using the default
developer identity that dfx
has created for you.
This identity is represented by a principal data type and a textual representation of the principal often referred to as your principal identifier. This representation of your identity is similar to a Bitcoin or Ethereum address.
However, the principal associated with your developer identity is typically not the same as your account identifier in the ledger. The principal identifier and the account identifier are related; both provide a textual representation of your identity, but they use different formats.
To connect to the ledger and get account information:
Step 1: Create an empty
dfx.json
file in your current directory by running the following command:
echo '{}' > dfx.json
Step 2: Check the current status of the BigFile network and your ability to connect to it by running the following command:
dfx ping ic
You should see output similar to the following:
{
"ic_api_version": "0.18.0" "impl_hash": "d639545e0f38e075ad240fd4ec45d4eeeb11e1f67a52cdd449cd664d825e7fec" "impl_version": "8dc1a28b4fb9605558c03121811c9af9701a6142" "replica_health_status": "healthy" "root_key": [48, 129, 130, 48, 29, 6, 13, 43, 6, 1, 4, 1, 130, 220, 124, 5, 3, 1, 2, 1, 6, 12, 43, 6, 1, 4, 1, 130, 220, 124, 5, 3, 2, 1, 3, 97, 0, 129, 76, 14, 110, 199, 31, 171, 88, 59, 8, 189, 129, 55, 60, 37, 92, 60, 55, 27, 46, 132, 134, 60, 152, 164, 241, 224, 139, 116, 35, 93, 20, 251, 93, 156, 12, 213, 70, 217, 104, 95, 145, 58, 12, 11, 44, 197, 52, 21, 131, 191, 75, 67, 146, 228, 103, 219, 150, 214, 91, 155, 180, 203, 113, 113, 18, 248, 71, 46, 13, 90, 77, 20, 80, 95, 253, 116, 132, 176, 18, 145, 9, 28, 95, 135, 185, 136, 131, 70, 63, 152, 9, 26, 11, 170, 174]
}
Step 3: (Optional) Confirm the developer identity you are currently using by running the following command:
dfx identity whoami
In most cases, you should see that you are currently using your default
developer identity. For example:
default
Step 4: (Optional) View the textual representation of the principal for your current identity by running the following command:
dfx identity get-principal
This command displays output similar to the following:
tsqwz-udeik-5migd-ehrev-pvoqv-szx2g-akh5s-fkyqc-zy6q7-snav6-uqe
Step 5: Get the account identifier for your developer identity by running the following command:
dfx ledger account-id
This command displays the ledger account identifier associated with your developer identity. For example, you should see output similar to the following:
03e3d86f29a069c6f2c5c48e01bc084e4ea18ad02b0eec8fccadf4487183c223
Step 6: Check your account balance by running the following command:
dfx ledger --network ic balance
This command displays the BIG token balance from the ledger account. For example, you should see output similar to the following:
10.00000000 BIG
Convert BIG tokens to cycles
If you want to use your BIG tokens in your ledger account to power application development, you first must convert them to cycles.
To convert BIG tokens to cycles:
With those BIG tokens ready, you can now convert them into cycles using the following command:
dfx cycles convert AMOUNT --network ic
This workflow utilizes the cycles ledger feature. If you'd like to use the cycles wallet instead, view the cycles wallet documentation.
Please note that the cycles wallet will be removed from dfx in a future release.
Then, check the cycles balance with the command:
dfx cycles balance --network ic
This should print something looking like this:
6.951 TC (trillion cycles).
Transfer BIG tokens to another account
If you want to transfer BIG tokens to another account in the ledger, you need to know the account identifier for the destination account.
To transfer BIG tokens to another account:
Step 1: Check that you are using an identity with control over the ledger account by running the following command:
dfx identity whoami
Step 2: Check the current balance in the ledger account associated with your identity by running the following command:
dfx ledger --network ic balance
Step 3: Transfer BIG tokens to another account by running a command similar to the following:
dfx ledger --network ic transfer <destination-ledger-account-id> --icp <BIG-amount> --memo <numeric-memo>
For example:
dfx ledger --network ic transfer ae6e1a76da5725bbbf0c5c035aaf0525b791e0f0f7cce27d8e27826389871406 --icp 5 --memo 12345
This example illustrates how to transfer BIG tokens to the specified account using a whole number with the --icp
command-line option.
- You can also specify fractional units of BIG tokens—called e8s—using the
--e8s
option, either on its own or in conjunction with the--icp
option. - Alternatively, you can use the
--amount
to specify the number of BIG tokens to transfer with fractional units up to 8 decimal places, for example, as5.00000025
.
The destination address can be an address in the ledger canister running on the BigFile network, an account you have added using the Network Nervous System application, or the address for a wallet you have on an exchange.
If you transfer the BIG tokens to an account in the Network Nervous System application, you might need to refresh the browser to see the transaction reflected.
For more information about using the dfx ledger
command-line options, see dfx ledger.
Lock BIG tokens by staking them in a neuron
If you want to lock up BIG tokens to participate in governance and earn rewards, you must use the File Management System (FMS) application or dfx canister call
commands.
Because locking up BIG tokens to create staked neurons is a more complex process when using the SDK command-line interface than it is when using the File Management System (FMS) application, the steps aren’t included in this guide.
For information about the Network Nervous System, see understanding the BigFile’s Network Nervous System, neurons, and BIG utility tokens.
For additional details about setting the locked period and dissolve delay for a neuron, see the BigFile Network Nervous System application and wallet.