Overview
Each blockchain supported by Fireblocks allows different transaction types. This article describes the available options for each blockchain as defined by the TAP.
Transfer
Transfer transactions send funds from one account to another. By creating a new transfer, you can initiate transfers from any vault, fiat, or exchange account using the Fireblocks Console. With the Fireblocks API, you can create a new transaction with the operation field set to transfer.
You can use the Fireblocks Console or API to initiate transfers from an outside source such as a third-party exchange or fiat account connected to your workspace. Transfers from counterparties to destinations in your workspace are recognized with some conditions. Learn more about recognizing incoming transactions.
Transfers may be described according to direction or location:
Direction
-
- Incoming: The transaction destination is any vault account.
- Outgoing: The transaction source is any vault account.
Location
-
- Internal: Both the transaction source and destination are vault accounts.
- External: Neither the transaction source nor destination are vault accounts (e.g., exchange-to-exchange transfers or counterparty-to-internal whitelisted wallet transfers).
Supported blockchains
Transfers are supported for the base asset for all blockchains and all assets supported by Fireblocks.
Multi-input and multi-output transfers
UTXO blockchains, such as Bitcoin, support using multiple source addresses in a single transaction. These blockchains also support sending a single transaction to multiple destinations.
Multi-input transactions send funds from multiple deposit addresses in one vault account to one or more deposit addresses.
Multi-output transactions send funds from one or more deposit addresses in the same vault account to more than one deposit address.
Example
Contract Call
This type of transaction in Fireblocks calls a smart contract function. You can initiate contract calls via dApps or the Smart Contract API.
A contract call triggers a specific function in a smart contract. Depending on the code of the smart contract, one or more transactions may be initiated to execute the desired actions. Fireblocks tracks and updates the status of all included transactions and displays the details in the Transaction History of the Fireblocks Console, typically as individual lines with the same transaction hash. All transactions to or from a vault account are always logged independently.
The networkRecord array parameter includes all actions within the contract call.
Supported blockchains
You can perform contract calls on all EVM blockchains that Fireblocks supports.
Example
Approve
Approve transactions are essentially contract calls calling an approve function that permits another address to spend ERC-20 tokens on behalf of the signer. To execute certain operations that involve the movement of ERC-20 tokens, you must first sign an Approve transaction that gives the dApp or smart contract permission to move those funds.
When creating Approve transactions, the transaction’s asset should be the asset you want to approve and the transaction’s destination should be the spender you want to be allowed to move the asset.
Learn more about limiting approval limits globally in your workspace.
Supported blockchains
- ERC-20 tokens for all EVM blockchains supported by Fireblocks
Example
Stake
Staking transactions delegate funds for earning staking rewards on proof-of-stake protocols. Staked funds are deposited to the staking contract or validator overseeing your staking positions. These funds become eligible to receive rewards after the network's activation period. When you unstake your assets, you no longer generate staking rewards, but you're able to use those assets for other transactions.
Stake, unstake, and withdraw are different transaction types within the staking process and appear as such on your Transaction History.
Supported assets
- ETH
- MATIC
- SOL
Example
Enabling assets
This transaction activates a specific asset wallet in a vault account, allowing it to receive token deposits for blockchains that require an on-chain operation. Enable asset transactions are initiated when adding an asset wallet to a vault account in your workspace. They cannot be created separately using the Fireblocks Console or API.
Only Owners, Admins, Non-Signing Admins, Signers, and Editors can initiate these transactions. Since Non-Signing Admins and Editors don’t have signing permissions, you must assign a designated signer for their transactions.
Supported blockchains
This mechanism is only relevant for the following blockchains:
- Algorand
- DigitalBits
- Solana
- Stellar
- Ripple
- Near
Mint
Mint transactions create tokenized assets in a vault account in your workspace. In workspaces with the feature enabled, you can initiate minting transactions from the Fireblocks Console or API.
Supported blockchains
- All EVM-compatible blockchains supported by Fireblocks
- Ripple
- Stellar
- Tezos
Example
Burn
Burn transactions reduce the tokenized asset supply in a vault account in your workspace. In workspaces with the feature enabled, you can initiate burning transactions from the Fireblocks Console or API.
Supported blockchains
- All EVM-compatible blockchains supported by Fireblocks
- Ripple
- Stellar
- Tezos
Example
Typed Message
Typed messages are off-chain messages that are signed by your wallet. However, they don’t always relate to the approval of funds. For example, permit approvals allow you to grant permissions for dApps to move your funds while ETH personal messages–as well as Bitcoin and Tron signed messages–allow you to prove ownership of an address by signing a message.
Typed messages alone don't constitute a transaction but often accompany other types of transactions, such as contract calls. In addition, typed messages don’t include a destination. They’re typically sent by dApps, and the approval notification in the Fireblocks mobile app displays a readable message.
They can also be initiated via the Fireblocks API. Learn more about typed message signing in the developer portal.
Supported blockchains
- All EVM blockchains supported by Fireblocks
- ETH personal messages
- EIP-712 format
- EIP-191 format
- Bitcoin signed message
- Tron signed message (TIP-191)
Examples
Raw
Raw transactions are messages that do not follow a predefined format in Fireblocks. You can use this method to sign any message with your private key. You can use the Fireblocks API to sign these transactions.
You must contact Fireblocks Support to enable this feature. This feature is risky because many Fireblocks safety features do not govern these transactions.
Supported blockchains
This transaction is supported for all blockchains, including blockchains not natively supported in your Fireblocks workspace.
Example
Supply and Redeem
As of April 1st, 2023, these transaction types are no longer supported. Supply or redeem transactions created before this date are identified accordingly in your transaction history.
- Supply transactions deposit assets to a Compound liquidity pool.
- Redeem transactions withdraw assets from a Compound liquidity pool.