Overview
This article describes templates for creating Policy rules for Orders that allow you to control your organization's security needs. The examples below include templates for allowing transfers from external bank accounts to providers, between providers and your workspace, and from providers to third parties.
Getting started
Begin by creating a Policy rule as described here, and select Orders for the policy type. Once you’ve created an Order Policy, it will appear in your policies. Select Edit policy, then +Add rule to create new rules similar to the examples below.
You may choose to create multiple rules that apply to the same scope but different funds. For example, you can create one rule that allows specific users in your workspace to create and sign fiat orders below $10,000, and a separate rule that requires approval from multiple users for fiat orders above $10,000.
Order-specific parameters
Scope
- Connected account: The account(s) that must be included in the order for the rule to apply. The connected account executes the order.
- Source - external account: Selecting an external account as a source allows transfers from fiat bank accounts to the selected provider. Transfers from external accounts are initiated and managed outside of your Fireblocks workspace.
Funds
-
Buy/Sell/Any: This determines the direction of the base asset and quote asset.
- Buy: The base asset is the asset you would like to buy in exchange for the quote asset.
- Sell: The base asset is the asset you would like to sell in exchange for the quote asset.
- Any: The rule will apply to buying or selling the base asset in exchange for the quote asset.
- Base asset: The asset you are buying or selling that must be included in the order for the rule to apply. This is always an exact amount you set per transaction. Select the minimum and maximum amounts of the base assets that must be met for the rule to apply.
- Quote asset: The asset you pay with or receive that must be included in the order for the rule to apply. The amount of this asset is set by the provider at the time of the transaction. Select the minimum and maximum amounts of the quote assets that must be met for the rule to apply.
Examples
The following examples describe parameters for the Scope and Funds of a Policy rule. Set the Action to Allow for all examples, and select user(s) to approve and sign the transaction according to your workspace needs.
Onramp - DvP
This example rule allows DvP orders from fiat currencies to digital assets. In this scenario, payment can be made using an external bank account to any connected provider account in your workspace, and the assets can be transferred to a specific destination in your workspace.
Scope
- Connected account: Select any connected account, or select a specific connected account.
- Source: Select any external account from the External list
- Destination: Select the vault account(s) you would like to allow orders to. You may also select the whitelisted address(es) or exchange account(s), although that is less common.
Funds
- Base asset: Select at least one fiat asset such as USD, MXN, or EUR.
- Quote asset: Select Any asset or specific assets such as USDC or USDT.
Offramp - DvP
This example rule allows DvP orders from digital assets to fiat currencies. In this scenario, a transfer can be initiated from your workspace, and the assets or fiat currency can be transferred to a whitelisted wallet or external destination.
Scope
- Connected account: Select any connected account, or select a specific connected account.
- Source: Select the vault account(s) you would like to allow orders from.
- Destination: Select the whitelisted address(es) you would like to allow orders to.
Funds
- Base asset: Select Any asset or specific assets such as USDC or USDT.
- Quote asset: Select at least one fiat asset such as USD, MXN, or EUR.
Onramp - prefunded
This example rule allows orders from fiat currencies to a connected provider account. In this scenario, fiat payment can be made using an external bank account, which will remain in your provider account until another action is taken.
Scope
- Connected account: Select any connected account, or select a specific connected account.
- Source: Select any external account from the External list.
- Destination: Select an account under the corresponding connected provider account
Funds
- Base asset: Select at least one fiat asset such as USD, MXN, or EUR.
- Quote asset: Select Any asset or specific assets such as USDC or USDT.
Digital asset to digital asset - DvP
This rule allows orders between digital assets. In this scenario, assets are sent to a provider account and used to purchase and transfer a different digital asset to a selected destination.
Scope
- Connected account: Select any connected account, or select a specific connected account.
- Source: Select the vault account(s) you would like to allow orders from.
- Destination: Select the vault account(s) or whitelisted address(es) you would like to allow orders to.
Funds
- Base asset: Select the asset that will be sent from the source account, such as BTC or USDC.
- Quote asset: Select the asset that will be sent to the destination accoun,t such as ETH or USDT.
Digital asset to digital asset - DeFi DvP
Create the following three Policy rules: Approve, Typed message & Contract call.
Approve
Scope
- Source: Select the vault account(s) you would like to approve allowance from.
- Destination: Select the Permit2 contract on all relevant blockchains. You can also select All Swap destinations instead of individual contracts.
Funds
- Asset: Select the asset you would like to approve allowances for.
Typed message
Scope
- Source: Select the vault account(s) you would like to allow swaps from.
Funds
- Asset: Select the native asset of the blockchain this rule applies to (e.g., ETH for Ethereum). You cannot select arbitrary tokens for Typed message rules.
Contract call
Scope
- Source: Select the vault account(s) you would like to swap from.
- Destination: Select the UniversalRouter contract on the relevant blockchains. You can also select All Swap destinations instead of individual contracts. This eliminates the need to whitelist the contract addresses in your workspace.
Funds
- Asset: Select the asset you would like to swap from.
Note
If you’ve used Uniswap in your Fireblocks workspace, you likely have Policy rules with Uniswap addresses as whitelisted destinations. You may want to replace those rules using a predefined list of destinations. Learn how transaction types are used during swaps.
Convert - prefunded
This rule allows orders between digital assets and fiat currencies. In this scenario, assets held in a provider account can be used to purchase a different digital asset or fiat currency. The assets can remain in the provider account, or you can choose to allow them to be transferred to specific destinations.
Scope
- Connected account: Select any connected account, or select a specific connected account.
- Source: Select any connected account, or select a specific connected account.
- Destination: Select any connected account, or select a specific connected account.
Funds
- Base asset: Select the asset that will be sent from the source account, such as BTC or USDC.
- Quote asset: Select the asset that will be sent to the destination accoun,t such as ETH or USDT.