Iota
Overview
IOTA is the native asset of the Iota blockchain. It utilizes:
- Object (UTXO like) model
- EdDSA signature algorithm
Iota is a Layer 1 IOTA blockchain designed for full decentralization, scalability, and enhanced security. It leverages the Move programming language to enhance smart contract safety and performance. Iota aims to provide a high-throughput, low-latency blockchain for decentralized applications (dApps), DeFi, NFTs, and institutional use cases.
Explorer
https://explorer.iota.org/Wallets Types
BitGo enables holding Iota in the following wallet types:
| Multisig Cold | Multisig Hot | MPC Cold | MPC Hot | |
|---|---|---|---|---|
| Custody | ❌ | N/A | ✅ | N/A |
| Self-Custody | ❌ | ❌ | ✅ | ✅ |
Ticker Symbols
| Mainnet | Testnet |
|---|---|
| iota | tiota |
Faucet
You can use a faucet to obtain free testnet Iota for development and testing purposes.
Faucet: https://docs.iota.org/developer/getting-started/get-coins
Units
Iota is divisible by 10-9 and the base unit is called NANO :
- 1 Iota = 1000000000 NANO
- 1 NANO = 0.0000000001 IOTA
Iota balances can be in either integer or string format. However, BitGo recommends using string format to ensure values don't exceed the programmable number limit.
Tokens
The Iota blockchain natively support tokens. Bitgo currently does not support Iota tokens.
Fees
Every IOTA transaction-whether involving tokens or native coin, and whether a withdrawal or consolidation—must pay a gas fee. This fee is determined by both the execution & IO costs and storage costs. Learn more about Iota gas pricing
Create Wallet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tiota" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export LABEL="<DESIRED_WALLET_NAME>" export PASSPHRASE="<YOUR_BITGO_LOGIN_PASSPHRASE>" export ENTERPRISE_ID="<YOUR_ENTERPRISE_ID>" curl -X POST \ http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/generate \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "label": "'"$LABEL"'", "passphrase": "'"$PASSPHRASE"'", "enterprise": "'"$ENTERPRISE_ID"'", "disableTransactionNotifications": true, "disableKRSEmail": true }'
Create Address
1 2 3 4 5 6 7 8export COIN="tiota" export WALLET_ID="<YOUR_WALLET_ID>" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" curl -X POST \ https://app.bitgo-test.com/api/v2/$COIN/wallet/$WALLET_ID/address \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN"
Note: Iota does not require a minimum balance for receiving addresses]
Consolidate Balance
[Select 1 of the following statements depending on the asset type:]
[Iota is an object-based asset that requires consolidating to the base address in order to use the maximum spendable amount. The following code samples consolidate using the Consolidate account (simple) endpoint:]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tiota" export WALLET_ID="<YOUR_WALLET_ID>" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export ADDRESS_1="<DESTINATION_ADDRESS_1>" export ADDRESS_2="<DESTINATION_ADDRESS_2>" export WALLET_PASSPHRASE="<YOUR_WALLET_PASSPHRASE>" curl -X POST \ http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/$WALLET_ID/consolidateAccount \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "consolidateAddresses": [ { "address": "'"$ADDRESS_1"'" }, { "address": "'"$ADDRESS_2"'" } ], "walletPassphrase": "'"$WALLET_PASSPHRASE"'" }'
Transact
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tiota" 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/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"'" }'
Stake
Bitgo doesn't support Iota staking yet.