Overview
All blockchain networks require a wallet with an address to receive funds. Some blockchain networks support wallets containing multiple addresses, while other networks only support single-address wallets.
Address types use cases
Deposit addresses are extracted and used in a variety of cases, such as:
- Publishing the addresses to counterparties to receive incoming transactions.
- Connecting the addresses to end clients as part of your crypto retail or banking platform.
- Migrating all of your funds into Fireblocks by creating transactions from your previous old vendor to your Fireblocks wallets.
- Whitelisting the Fireblocks wallet addresses at your third-party account (i.e. a crypto exchange) before using the Fireblocks platform for initiating withdrawals from the exchange to Fireblocks.
On Fireblocks, an asset wallet’s permanent address is the first deposit address generated when the wallet is created. For UTXO-based assets, you can generate additional deposit addresses if needed, but account-based assets have only one permanent address.
All addresses are mathematically derived from one base root address for your workspace. You can use a Fireblocks open-source tool to generate all of your addresses from that base root address. You can choose to provide other parties with only one address from the asset’s derivation path, so the rest of your contacts are not exposed to your other addresses.
Please note that you are unable to import third-party wallet addresses into Fireblocks due to security reasons.
Account-based assets
When you create an account-based asset wallet, a single permanent deposit address is automatically generated. For each vault account, Ethereum and all EVM-based networks share the same permanent address except Ethereum Classic, Flare, and Songbird (legacy derivation). For example, an ETH asset wallet, a USDC asset wallet on Avalanche, and a MATIC asset wallet in the same vault account all have the same deposit address.
For non-EVM account-based blockchains, asset wallets on the same blockchain in a vault account are assigned the same deposit address. For example, a SOL asset wallet and a USDC asset wallet on Solana will use the same deposit address.
Address formats on EVM Networks
You can enter addresses on Ethereum and other EVM-based networks in two ways:
- Non-checksummed, with either all lowercase letters
- Checksummed, which includes upper case letters as well.
Checksummed addresses are more secure, as they can be validated with a typo-proof cryptographic function. If you get the error message “Address does not match selected asset type” or “Invalid address”, it may be due to a bad checksum.
Ensure you use the correct checksummed version of addresses. Most addresses in the Fireblocks Console automatically use the checksummed version. You can copy the address directly from your Console. If you're using the Fireblocks API or need to manually convert an address to a checksummed version, you can search for the address on Etherscan and copy the address from the top of the page. You can also replace any upper-case letters with corresponding lower-case letters manually.
Multiple addresses (Non-UTXO)
For some assets, you can use the same permanent address for any incoming transaction and use a tag, memo, or note to distinguish between each counterparty. Learn more about using destination tags.
UTXO-based assets
When you create an UTXO-based asset wallet, the wallet’s permanent Native SegWit and Legacy addresses are automatically generated. You can also generate additional Native SegWit and Legacy deposit addresses for the wallet.
In the UTXO model, transactions are based on inputs that are almost always higher in value than the desired amount to transfer. The difference between the input and output value (the “change”) is sent to the permanent address.
Legacy, SegWit, and Native SegWit addresses
Legacy is the original Bitcoin address format, while SegWit, and its successor Native Segwit, are upgraded address types that introduce more transactions per block, lower fees, and other advantages.
Important: These address types are used by Bitcoin and Litecoin. Not all UTXO blockchains support the following address types.
Legacy
Legacy addresses begin with “1”.
Example: 15exxxxxxxxxxxxxxxxxxxxxxx
A Legacy address is the hash output of the public key that is associated with your private key. When Bitcoin was originally launched, this was the only way to create an address. Today, Legacy-based transactions consume a lot of space in the block and consequently incur a high transaction fee.
When you withdraw funds from your connected exchange account to one of your vault accounts, Fireblocks selects the legacy permanent address as the default destination address. Some exchanges would only approve your withdrawal operation after you whitelist the destination address. Therefore, for these exchanges, in order to perform a transaction, you must first retrieve your permanent legacy address by following these steps:
- In the Console, copy your asset wallet's legacy address (see instructions below).
- In your exchange portal, navigate to the whitelisted addresses or address book page and paste the legacy address from the previous step here.
- Additional approval using a second-factor device may be required for some of the exchanges.
- In your Fireblocks Console, initiate a withdrawal transaction from your exchange account to your vault account for this asset.
When you deposit funds from your vault account into your connected exchange, Fireblocks asks the exchange account to provide its legacy UTXO address, and then selects inputs from your vault account, uses the legacy addresses of the selected inputs, and performs an on-chain transaction.
Finding a wallet’s Legacy address
To find a wallet’s Legacy address in the Fireblocks Console:
- Go to My Funds > Accounts > My Vault.
- Open the vault account containing the appropriate asset wallet.
- Select See Deposit Addresses for the asset wallet.
To find a wallet’s Legacy address using the Fireblocks API, call the Retrieve the address of a vault account asset endpoint and look at the legacyAddress parameter.
SegWit
Important: The Pay-To-Script-Hash (P2SH) SegWit address type is not currently supported on Fireblocks.
Segregated Witness, also known as SegWit, was an upgrade from the Legacy address type of the Bitcoin blockchain network. The SegWit transaction block, which is four times larger than Legacy, comprises two parts: the base transaction block, consisting of the input and output data, and the extended block, consisting of the signature ID.
The SegWit address format begins with a “3” and provides several benefits over Legacy:
- It blocks malicious players from altering a yet-unconfirmed transaction’s signature ID, which can have various adverse effects, such as:
- Preventing the implementation of second-layer solutions on top of the blockchain.
- Causing issues when spending or accepting unconfirmed funds.
- It shrinks down the base transaction data since the signature ID is now moved to the extended block. This provides the following advantages:
- Each block is 4 times larger and can consist of more transactions.
- Each transaction is processed at a faster rate, and for a lower fee.
Native SegWit
The Native SegWit address, also known as Bech32, is an upgrade to the original SegWit address format. It begins with a “bc1” (or “lc1” for Litecoin).
Your vault account’s permanent address is available both in the Legacy and Native SegWit formats, on both existing and new wallets.
Native SegWit is not compatible with all exchanges, but like SegWit, it has several main advantages over Legacy:
- It blocks malicious players from altering a yet-unconfirmed transaction’s signature ID.
- Its blocks are 4 times larger than a Legacy block and can consist of more transactions.
- Its transactions are processed at a faster rate, and for a lower fee.
Additionally, Native SegWit has some advantages over the original SegWit format as well:
- Having larger blocks than SegWit, Native Segwit allows for more transactions to be processed at the same time, and therefore makes the blockchain more scalable for many additional users.
- It can detect transaction errors more efficiently as it does not use mixed-case characters, and includes an error-correction code that can detect almost all address typos.
Finding a wallet’s Native SegWit address
To find a wallet’s Native SegWit address in the Fireblocks Console:
- Go to My Funds > Accounts > My Vault.
- Open the vault account containing the appropriate asset wallet.
- Select See Deposit Addresses for the asset wallet.
In the API, in case the Native SegWit address format is available when generating a new Vault wallet address and when listing existing Vault wallet addresses, it is then returned in the address field.
Address formats
Some assets have multiple address formats. Over time, some blockchain networks have added newer formats while maintaining some support for the older ones. It is important to confirm the address formats used by your counterparties. Fireblocks supports the address types below:
- Legacy: Bitcoin (BTC), Litecoin (LTC), Bitcoin Cash (BCH), eCash (XEC)
- Native SegWit: Bitcoin (BTC), Litecoin (LTC)
- Cash address: Bitcoin Cash (BCH), eCash (XEC)
- Base address: Cardano (ADA)
- Enterprise address: Cardano (ADA)
- No-checksum address: Hedera (HBAR)
- Tezos Address: tz1 (XTZ)
Bitcoin and Litecoin
Bitcoin (BTC) and Litecoin (LTC) use two types of addresses: Legacy and Native SegWit. See the Legacy, SegWit, and Native SegWit addresses section for more information on these address types.
Bitcoin Cash and eCash
Legacy addresses
The Legacy address format works well with Bitcoin Cash protocols (BCH and XEC), and when needed, it can easily be converted to the more commonly used Cash Address (Cash Addr) format via web-based Cash Address to Legacy address conversion tools.
Cash Addresses
Cash addresses (CashAddr) work with Bitcoin Cash protocols (BCH and XEC). The address format is designed to help distinguish between BCH and BTC, and as a result, prevent users from sending funds to the wrong address.
Best practices
Fireblocks recommends using Cash addresses for BCH and XEC transactions whenever possible, to increase efficiency and reduce fees. However, you can use an asset’s Legacy address for any transaction if necessary.
Cardano
Cardano (ADA) has multiple address types.
Base addresses
Base addresses are the most common address type and can be used for transfers and staking.
Enterprise addresses
Enterprise addresses only allow transfers. They carry no staking rights and are often used by entities that hold ADA on behalf of other users.
Fireblocks supports base and enterprise addresses, and allows generating additional deposit addresses for each asset wallet. Learn more about all Cardano address types in the official Cardano documentation.
Hedera
Hedera (HBAR) has two address components: a no-checksum address and a five-letter checksum. Fireblocks only supports the no-checksum address component. To whitelist or transfer HBAR to a checksum address, you can safely delete the five-letter checksum and the dash that precedes without affecting transactions.
Tezos
Tezos (XTZ) has multiple address types, such as ed25519 (tz1), secp256k1 (tz2), p256 (tz3), contract (kt1) or blinded (btz1). Fireblocks uses the ed25519 encryption, which only generates wallets using tz1 addresses. This is the Tezos address format we support for all purposes.