Bittensor
Overview
Bittensor (TAO) is the native asset of the Bittensor blockchain. It utilizes:
- Nominated Proof-of-stake (NPoS) model
- EdDSA signature algorithm
Bittensor is a blockchain platform that facilitates interoperability between different blockchains through its native cryptocurrency, TAO.
Explorerhttps://bittensor.com/scan/
Wallets Types
BitGo enables holding tao in the following wallet types:
Multisig Cold | Multisig Hot | MPC Cold | MPC Hot | |
---|---|---|---|---|
Custody | ❌ | ❌ | ✅ | ❌ |
Self-Custody | ❌ | ❌ | ✅ | ✅ |
Ticker Symbols
Mainnet | Testnet |
---|---|
TAO | TTAO |
Units
The smallest unit for the Bittensor chain is RAO
- 1 RAO = 0.000000001 TAO
- 10^9 RAO = 1.0000000000 TAO
You can pass balances in string or integer format. However, BitGo recommends using string format to ensure values don't exceed the programmable number limit.
Native Token
TAO is the native token of the Bittensor network in a similar way that BTC is the native token of Bitcoin or Ether is the native token of the Ethereum blockchain.
Fees
Bittensor fees consists of three parts:
- Base fee: a fixed fee that is applied to every transaction and set by the runtime.
- Length fee: a fee that gets multiplied by the length of the transaction, in bytes.
- Weight fee: a fee for each, varying runtime function. Runtime implementers need to implement a conversion mechanism which determines the corresponding amount for the calculated weight.
The final fee can be summarized as:
fee = base_fee + length_of_transaction_in_bytes * length_fee + weight_fee
Additionally, a minimum deposit of 0.0000005 TAO is required to initialize a wallet.
Fee Multiplier
Bittensor can add an additional fee to transactions if the network becomes too busy and starts to decelerate the system. This fee can create an incentive to avoid the production of low priority or insignificant transactions.
The final fee is calculated as:
final_fee = fee * fee_multiplier
Create wallets
1 2 3 4 5 6 7 8
LABEL="My Test Wallet" PASSPHRASE="secretpassphrase1a5df8380e0e30" curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d "{ \"label\": \"$LABEL\", \"passphrase\": \"$PASSPHRASE\", \"multisigType\": \"tss\" }" \ http://$BITGO_EXPRESS_HOST:3080/api/v2/ttao/wallet/generate
Receive addresses
TAO has no minimum balance for receive addresses. However, at least 0.0000005 TAO is required in each receive address to consolidate token balances to the base address.
In order to create a receive address:
1 2 3 4 5
WALLET=<WALLET_ID> curl -X POST \ -H "Authorization: Bearer $ACCESS_TOKEN" \ https://app.bitgo-test.com/api/v2/ttao/wallet/$WALLET/address
Estimate Fee
1 2 3 4 5 6 7
export COIN="ttao" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" curl -X GET \ https://app.bitgo-test.com/api/v2/$COIN/tx/fee \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN"
Transact
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="ttao" export WALLET_ID="<YOUR_WALLET_ID>" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export ADDRESS="<DESTINATION_ADDRESS>" export AMOUNT="<AMOUNT_IN_BASE_UNITS>" export WALLET_PASSPHRASE="<YOUR_WALLET_PASSPHRASE>" curl -X POST \ http://$BITGO_EXPRESS_HOST:3080/api/v2/$COIN/wallet/$WALLET_ID/sendcoins \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "address": "'"$ADDRESS"'", "amount": "'"$AMOUNT"'", "walletPassphrase": "'"$WALLET_PASSPHRASE"'" }'
Consolidation
1 2 3 4 5 6 7 8 9 10 11 12 13
export BITGO_EXPRESS_HOST="<YOUR_LOCAL_HOST>" export COIN="<ASSET_ID>" export WALLET_ID="<YOUR_WALLET_ID>" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export WALLET_PASSPHRASE="<WALLET_PASSPHRASE>" curl -X POST \ http://$BITGO_EXPRESS_HOST:3080/api/v2/$COIN/wallet/$WALLET_ID/consolidateAccount \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "walletPassphrase": "'"$WALLET_PASSPHRASE"'" }'