- Intermediate vault accounts: Assigned per end-client for deposits. Use the Fireblocks API to generate as many as needed.
- Omnibus deposits: The central vault where end-client funds are swept and stored.
- Withdrawal pool: Vault accounts containing funds allocated for end-client withdrawals. More than one may be required due to blockchain limitations.
Understanding Asset Types
Handling your omnibus account correctly requires a clear understanding of the differences between UTXO and account-based assets. Due to the nature of UTXO-based blockchains, a transaction includes the source address for each end client, unlike account-based transactions which require an intermediary vault account per client.UTXO Based
Structure
- In the Omnibus Deposits vault account, you can assign each end client a deposit address (derived from the permanent wallet address of the UTXO asset).
-
When adding an address for an end client in the Omnibus Deposits vault account, use the Create a New Deposit Address of an Asset in a Vault Account endpoint and use the
descriptionfield increateAddressRequestto associate the end client’s ID. ThecustomerRefIdparameter is the ID for AML providers to associate the owner of funds with transactions. Both the name of the vault account and the AMLcustomerRefIdfields are propagated to every transaction.
Deposit
Funds are deposited using the following process:- The retail platform shares the deposit address with the end client.
- The end client makes a deposit.
- The incoming deposit triggers a webhook notification.
- Your client-facing software automatically notifies the end client that the deposit was received.
- The deposit appears on the Transaction History page.
Example
Account Based
This section covers account-based assets without a tag or memo. For tag/memo-based assets, see Tag / Memo Based.Structure
- The workspace should contain one or more intermediate vault accounts per end client, plus a single Omnibus Deposits vault account.
-
When adding a vault account, use the Create a New Vault Account endpoint and use the
nameparameter to associate the end client’s ID as a prefix or suffix. ThecustomerRefIdparameter is the ID for AML providers to associate the owner of funds with transactions. Both the name of the vault account and the AMLcustomerRefIdfields are propagated to every transaction. - Due to the nature of account-based blockchains, transactions can only be transferred from one account-based address to another sequentially, unlike UTXO where multiple addresses are included in a single transaction.
Deposit
Funds are deposited using the following process:- The end client receives a deposit address.
- The end client makes a deposit.
- The incoming deposit triggers a webhook notification.
- Your client-facing software automatically notifies the end client that the deposit was received.
- The deposit is swept to the Omnibus Deposits vault account. See Sweeping within an Omnibus Vault structure for the sweeping logic.
Example
The example below creates:- 5 intermediate vault accounts for 5 end users.
- 1 treasury vault.
- 3 withdrawal vaults to distribute settlement load.
internalCustRefIds and hiddenOnUI. It runs three times: once for end-user vaults, once for the treasury vault, and once for withdrawal vaults.
Tag / Memo Based
Tag and memo-based assets share a single wallet address per omnibus vault, with a unique tag or memo identifying each end client. The tag/memo name varies by blockchain.Structure
- In the Omnibus Deposits vault account, you can assign each end client a tag or memo.
-
When adding an address for an end client in the Omnibus Deposits vault account, use the Create a New Deposit Address of an Asset in a Vault Account endpoint and use the
descriptionfield increateAddressRequestto associate the end client’s ID. ThecustomerRefIdparameter is the ID for AML providers to associate the owner of funds with transactions. Both the name of the vault account and the AMLcustomerRefIdfields are propagated to every transaction.
Deposit
Funds are deposited using the following process:- The end client receives a deposit address and a tag or memo.
- The end client makes a deposit using both the address and the tag.
- The incoming deposit triggers a webhook notification.
- Your client-facing software automatically notifies the end client that the deposit was received, provided they included the tag or memo.
- All funds are held in the same vault account; different customer balances are tracked in your internal ledger.