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 ColdMultisig HotMPC ColdMPC Hot
CustodyN/AN/A
Self-Custody

Ticker Symbols

MainnetTestnet
iotatiota

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

  • cURL
  • JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 export 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

  • cURL
  • JavaScript
1 2 3 4 5 6 7 8 export 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:]

  • cURL
  • JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 export 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

  • cURL
  • cURL (send to many)
  • JavaScript
  • JavaScript (send to many)
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="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.