Overview
A token approval (also called an allowance) gives a spender, usually a smart contract, permission to move up to a set amount of an ERC-20 token from one of your vault accounts. dApps, DeFi protocols, and exchanges often need approval before they can interact with your tokens. You can create token approvals in the Fireblocks Console from Allowance manager, the same page where you view and revoke existing approvals. You do not need an external dApp, the API, or a contract call to set one up.
Before you begin
- Supported assets: you can approve ERC-20 tokens on Ethereum Virtual Machine (EVM) networks only. You cannot approve native assets such as Ether (ETH). Token approval is supported on all Fireblocks-supported EVM networks.
- Gas fee: creating an approval is an on-chain transaction. The vault account must hold enough of the network's native asset (for example, ETH on Ethereum) to pay the gas fee.
- Token balance: the vault account does not need to hold the token. An approval sets a spending limit, so you can create it before you fund the vault.
- Permissions: you need permission to initiate transactions, as with any other transaction.
Create a token approval
- In the Console, go to Connections > Web3 > Token Allowances.
- Select Set approval. The Token Approval dialog opens.
- In Vault account, select the vault account that grants the approval.
- In Asset, select the ERC-20 token to approve.
- In Spender, select the address that can spend the token:
- Listed destination: select a whitelisted external wallet or contract that has an address for this asset.
- One-time address: enter the spender's address manually. This option is available only if your workspace allows one-time addresses.
- In Amount, enter the maximum amount of the token the spender can move. The equivalent fiat value appears next to the amount, and you can enter the value in fiat.
- Select Approve.
What happens after you approve
- Fireblocks creates an APPROVE transaction from the selected vault account to the token contract. The gas fee is paid in the network's native asset.
- The transaction follows your workspace's usual transaction rules, including Policy rules, approvals, and signing.
- You can track the transaction in Transactions.
- The approval appears in Allowance manager after the transaction is confirmed on the blockchain.
Limitations
- The amount must be greater than zero. To remove an approval, use Revoke instead. See Revoking token allowances.
- The amount cannot have more decimal places than the token supports.
- The amount cannot exceed the maximum value an ERC-20 approval can hold.
Troubleshooting
| Error message | What to do |
|---|---|
| You do not have permission to initiate transfers. | Ask a workspace Owner or Admin for permission to initiate transactions. |
| Allowances are only supported for ERC-20 tokens on EVM networks. | Select an ERC-20 token on a supported EVM network. |
| We cannot determine the network fee currency for this asset. | Contact Fireblocks Support. |
| Enter an amount greater than zero. | Enter a positive amount. To remove an approval, use Revoke. |
| That amount is larger than an ERC-20 allowance can hold. | Enter a smaller amount. |
| The approval could not be submitted. Check that the vault holds enough for the gas fee. | Add the network's native asset to the vault account, then try again. |
| Something went wrong while creating the approval. | Try again. If the problem persists, contact Fireblocks Support. |
Create approvals using the API
The Fireblocks API does not have a dedicated endpoint for creating token approvals. To create one with the API, create a contract call transaction that calls the token contract's approve(spender, amount) function. Approvals created this way appear in the Allowance manager after they are confirmed on the blockchain.