openapi: 3.0.0
info:
title: Fireblocks API
version: "1.7.3"
contact:
email: support@fireblocks.com
servers:
- url: "https://api.fireblocks.io/v1"
x-readme:
explorer-enabled: false
samples-languages:
- javascript
- python
- curl
security:
- bearerTokenAuth: []
- ApiKeyAuth: []
paths:
# VAULT
"/vault/accounts":
get:
summary: List vault accounts
description: Gets all vault accounts in your workspace.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vault_accounts = fireblocks.get_vault_accounts()
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAccounts = await fireblocks.getVaultAccounts();
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: namePrefix
required: false
schema:
type: string
- in: query
name: nameSuffix
required: false
schema:
type: string
- in: query
name: minAmountThreshold
required: false
schema:
type: number
- in: query
name: assetId
required: false
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: A list of vault accounts
headers: &req-id-header
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/VaultAccount"
default:
$ref: "#/components/responses/Error"
post:
summary: Create a new vault account
description: Creates a new vault account with the requested name.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAccount = fireblocks.create_vault_account(name, hiddenOnUI, customer_ref_id, auto_fueling)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAccount = await fireblocks.createVaultAccount(name, hiddenOnUI, customerRefId, autoFueling);
name: Fireblocks SDK Javascript example
requestBody:
required: true
content:
application/json:
schema:
properties:
name:
description: Account Name
type: string
hiddenOnUI:
description: >-
Optional - if true, the created account and all related transactions will not be shown on Fireblocks console
type: boolean
customerRefId:
description: >-
Optional - Sets a customer reference ID
type: string
autoFuel:
description: Optional - Sets the autoFuel property of the vault account
type: boolean
responses:
"200":
description: A Vault Account object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/VaultAccount"
default:
$ref: "#/components/responses/Error"
"/vault/accounts_paged":
get:
summary: List vault accounts (Paginated)
description: Gets all vault accounts in your workspace. This endpoint returns a limited amount of results with a quick response time.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vault_accounts = fireblocks.get_vault_accounts_with_page_info(filters)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAccounts = await fireblocks.getVaultAccountsWithPageInfo(filters);
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: namePrefix
required: false
schema:
type: string
- in: query
name: nameSuffix
required: false
schema:
type: string
- in: query
name: minAmountThreshold
required: false
description: Specifying minAmountThreshold will filter accounts with balances greater than this value, otherwise, it will return all accounts.
schema:
type: number
- in: query
name: assetId
required: false
schema:
type: string
x-fb-entity: asset
- in: query
name: orderBy
required: false
schema:
type: string
enum: ["ASC", "DESC"]
default: "DESC"
- in: query
name: before
required: false
schema:
type: string
- in: query
name: after
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
type: number
minimum: 1
maximum: 500
default: 200
responses:
"200":
description: A VaultAccountsPagedResponse object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/VaultAccountsPagedResponse"
"/vault/accounts/{vaultAccountId}":
get:
summary: Find a vault account by ID
description: Returns the requested vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vault_account = fireblocks.get_vault_account(vault_account_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAccount = await fireblocks.getVaultAccount(vault_account_id);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to return
type: string
schema:
type: string
format: numeric
x-fb-entity: vault_account
responses:
"200":
description: A Vault Account object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/VaultAccount"
default:
$ref: "#/components/responses/Error"
put:
summary: Rename a vault account
description: Renames the requested vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAccount = fireblocks.update_vault_account(vault_account_id, name)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAccount = await fireblocks.updateVaultAccount(vautlAccountId, name);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to edit
schema:
type: string
format: numeric
x-fb-entity: vault_account
requestBody:
required: true
content:
application/json:
schema:
properties:
name:
description: Account Name
type: string
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/vault/asset_wallets":
get:
summary: List asset wallets (Paginated)
description: |
Gets all asset wallets at all of the vault accounts in your workspace. An asset wallet is an asset at a vault account. This method allows fast traversal of all account balances.
**Note:**
- This API call is subject to [rate limits](https://developers.fireblocks.com/reference/rate-limiting).
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vault_accounts = fireblocks.get_asset_wallets(filters)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAccounts = await fireblocks.getAssetWallets(filters);
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: totalAmountLargerThan
description: When specified, only asset wallets with total balance larger than this amount are returned.
required: false
schema:
type: number
- in: query
name: assetId
required: false
description: When specified, only asset wallets cross vault accounts that have this asset ID are returned.
schema:
type: string
x-fb-entity: asset
- in: query
name: orderBy
required: false
schema:
type: string
enum: ["ASC", "DESC"]
default: "DESC"
- in: query
name: before
required: false
description: Fetches the next paginated response before this element. This element is a cursor and is returned at the response of the previous page.
schema:
type: string
- in: query
name: after
required: false
description: Fetches the next paginated response after this element. This element is a cursor and is returned at the response of the previous page.
schema:
type: string
- in: query
name: limit
required: false
description: The maximum number of asset wallets in a single response. The default is 200 and the maximum is 1000.
schema:
type: number
minimum: 1
maximum: 1000
default: 200
responses:
"200":
description: A PaginatedAssetWalletResponse object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/PaginatedAssetWalletResponse"
"/vault/accounts/{vaultAccountId}/hide":
post:
summary: Hide a vault account in the console
description: Hides the requested vault account from the web console view.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.hide_vault_account(vault_account_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.hideVaultAccount(vaultAccountId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: The vault account to hide
schema:
type: string
minimum: 1
format: numeric
x-fb-entity: vault_account
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/unhide":
post:
summary: Unhide a vault account in the console
description: Makes a hidden vault account visible in web console view.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.unhide_vault_account(vault_account_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.unhideVaultAccount(vaultAccountId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: The vault account to unhide
schema:
type: string
minimum: 1
format: numeric
x-fb-entity: vault_account
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/{assetId}/activate":
post:
summary: Activate a wallet in a vault account.
description: Initiates activation for a wallet in a vault account. Activation is required for tokens that need an on-chain transaction for creation (XLM tokens, SOL tokens etc).
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.activate_vault_asset(vault_account_id, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.activateVaultAsset(vautlAccountId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to return, or 'default' for the default vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: OK
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateVaultAssetResponse"
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/set_customer_ref_id":
post:
summary: Set an AML/KYT customer reference ID for a vault account
description: Assigns an AML/KYT customer reference ID for the vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.set_vault_account_customer_ref_id(vault_account_id, customer_ref_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.setCustomerRefIdForVaultAccount(vaultAccountId, customerRefId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: The vault account ID
schema:
type: string
minimum: 1
format: numeric
x-fb-entity: vault_account
requestBody:
required: true
content:
application/json:
schema:
properties:
customerRefId:
description: Customer reference ID
type: string
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/set_auto_fuel":
post:
summary: Turn autofueling on or off
description: Sets the autofueling property of the vault account to enabled or disabled.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: result = fireblocks.set_auto_feul(vault_account_id, auto_fuel)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.setAutoFuel(vaultAccountId, autoFuel;
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: The vault account ID
schema:
type: string
minimum: 1
format: numeric
x-fb-entity: vault_account
requestBody:
required: true
content:
application/json:
schema:
properties:
autoFuel:
description: Auto Fuel
type: boolean
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/{assetId}":
get:
summary: Get the asset balance for a vault account
description: Returns a wallet for a specific asset of a vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.get_vault_account_asset(vault_account_id, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.getVaultAccountAsset(vaultAccountId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to return
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: A VaultAsset object
content:
"*/*":
schema:
$ref: "#/components/schemas/VaultAsset"
default:
$ref: "#/components/responses/Error"
post:
summary: Create a new wallet
description: Creates a wallet for a specific asset in a vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.create_vault_asset(vault_account_id, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.createVaultAsset(vaultAccountId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to return, or 'default' for the default vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
requestBody:
required: false
content:
application/json:
schema:
properties:
eosAccountName:
description: Optional - when creating an EOS wallet, the account name. If not provided, a random name will be generated
type: string
responses:
"200":
description: OK
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateVaultAssetResponse"
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/{assetId}/balance":
post:
summary: Refresh asset balance data
description: Updates the balance of a specific asset in a vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.refresh_vault_asset_balance(vault_account_id, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.refreshVaultAssetBalance(vaultAccountId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to return
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
requestBody:
required: false
content:
"*/*":
schema:
type: object
responses:
"200":
description: A VaultAsset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/VaultAsset"
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/{assetId}/addresses":
get:
summary: Get asset addresses
description: |-
Lists all addresses for specific asset of vault account.
- **This endpoint will be deprecated on Mar 31, 2024.**
- If your application logic or scripts rely on the deprecated endpoint, you should update to account for `GET/V1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated` before Mar 31, 2024.
- All workspaces created after Mar 31, 2024. will have it disabled. If it is disabled for your workspace and you attempt to use it, you will receive the following error message: 'This endpoint is unavailable.'
- Please use the `GET/V1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated endpoint` to return all the wallet addresses associated with the specified vault account and asset in a paginated list.
- This API call is subject to rate limits.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: depositAddresses = fireblocks.get_deposit_addresses(vault_account_id, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const depositAddresses = await fireblocks.getDepositAddresses(vaultAccountId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to return
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: A list of deposit addresses
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/VaultWalletAddress"
default:
$ref: "#/components/responses/Error"
post:
summary: Create new asset deposit address
description: Creates a new deposit address for an asset of a vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: address = fireblocks.generate_new_address(vault_account_id, asset_id, description, customer_ref_id)
name: Fireblocks SDK Python example
- language: javascript
code: const address = await fireblocks.generateNewAddress(vaultAccountId, assetId, description, customerRefId);
name: Fireblocks SDK Javascript example
requestBody:
required: false
content:
application/json:
schema:
properties:
description:
description: (Optional) Attach a description to the new address
type: string
customerRefId:
description: >-
Optional - Sets a customer reference ID
type: string
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account to return
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: The created address
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateAddressResponse"
default:
$ref: "#/components/responses/Error"
operationId: createVaultAccountAssetAddress
"/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated":
get:
summary: List addresses (Paginated)
description: |-
Returns a paginated response of the addresses for a given vault account and asset.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: addresses = vault_accounts = fireblocks.get_paginated_addresses("0","ETH_TEST3")
name: Fireblocks SDK Python example
- language: javascript
code: const addresses = await fireblocks.getPaginatedAddresses("0","ETH_TEST3");
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
schema:
type: string
- in: path
name: assetId
required: true
schema:
type: string
- in: query
name: limit
required: false
schema:
type: number
- in: query
name: before
required: false
schema:
type: string
- in: query
name: after
required: false
schema:
type: string
responses:
"200":
description: A list of wallet's addresses
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: '#/components/schemas/AddressesResponse'
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount":
get:
summary: Get the maximum spendable amount in a single transaction.
description: Get the maximum amount of a particular asset that can be spent in a single transaction from a specified vault account (UTXO assets only, with a limitation on number of inputs embedded). Send several transactions if you want to spend more than the maximum spendable amount.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: address = fireblocks.set_address_description(vault_account_id, asset_id, address, tag, description)
name: Fireblocks SDK Python example
- language: javascript
code: const address = await fireblocks.setAddressDescription(vaultAccountId, assetId, address, tag, description);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account, or 'default' for the default vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
- in: query
name: manualSignging
required: false
description: False by default. The maximum number of inputs depends if the transaction will be signed by an automated co-signer server or on a mobile device.
schema:
type: boolean
responses:
"200":
description: OK
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}":
put:
summary: Update address description
description: Updates the description of an existing address of an asset in a vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: address = fireblocks.set_address_description(vault_account_id, asset_id, address, tag, description)
name: Fireblocks SDK Python example
- language: javascript
code: const address = await fireblocks.setAddressDescription(vaultAccountId, assetId, address, tag, description);
name: Fireblocks SDK Javascript example
requestBody:
required: false
content:
application/json:
schema:
properties:
description:
description: The address description
type: string
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
- in: path
name: addressId
required: true
description: >-
The address for which to add a description. For XRP, use
:, for all other assets, use only the address
schema:
type: string
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
? "/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id"
: post:
summary: Assign AML customer reference ID
description: Sets an AML/KYT customer reference ID for a specific address.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.set_customer_ref_id_for_address(vault_account_id, asset_id, address_id, customer_ref_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.setCustomerRefIdForAddress(vaultAccountId, assetId, addressId, customerRefId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
- in: path
name: addressId
required: true
description: >-
The address for which to add a description. For XRP, use :, for all other assets, use only the address
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
properties:
customerRefId:
description: Customer reference ID
type: string
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
? "/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy"
: post:
summary: Convert a segwit address to legacy format
description: Converts an existing segwit address to the legacy format.
tags:
- Vaults
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
- in: path
name: addressId
required: true
description: >-
The segwit address to translate
schema:
type: string
responses:
"200":
description: The created address
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateAddressResponse"
default:
$ref: "#/components/responses/Error"
"/vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs":
get:
summary: Get UTXO unspent inputs information
description: Returns unspent inputs information of an asset in a vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: vaultAsset = fireblocks.get_unspent_inputs(vault_account_id, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const vaultAsset = await fireblocks.getUnspentInputs(vaultAccountId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: List of Unspent information per input
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/UnspentInputsResponse"
default:
$ref: "#/components/responses/Error"
"/vault/public_key_info/":
get:
summary: Get the public key information
description: Gets the public key information based on derivation path and signing algorithm.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: pubKey = fireblocks.get_public_key_info(algorithm, derivation_path, compressed)
name: Fireblocks SDK Python example
- language: javascript
code: |
const PublicKeyInfoArgs = {
algorithm: 'MPC_ECDSA_SECP256K1',
derivationPath: [44,0,0,0,0]
}
const pubKey = await fireblocks.getPublicKeyInfo(PublicKeyInfoArgs);
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: derivationPath
description: |
An array of integers representing the full BIP44 derivation path of the requested public key.
The first element must always be 44.
required: true
example: [44, 60, 0, 0, 0]
schema:
type: array
maxItems: 5
minItems: 5
items:
type: integer
- in: query
name: algorithm
required: true
schema:
type: string
enum:
- MPC_ECDSA_SECP256K1
- MPC_ECDSA_SECP256R1
- MPC_EDDSA_ED25519
- in: query
name: compressed
schema:
type: boolean
responses:
"200":
description: Public key information
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/PublicKeyInformation"
default:
$ref: "#/components/responses/Error"
? "/vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info"
: get:
summary: Get the public key for a vault account
description: Gets the public key information for the vault account.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: pubKey = fireblocks.get_public_key_info_for_vault_account(asset_id, vault_account_id, change, address_index, compressed)
name: Fireblocks SDK Python example
- language: javascript
code: |
const PublicKeyInfoArgs = {
assetId: 'ETH',
vaultAccountId: 0,
change: 0,
addressIndex: 0,
compressed: true
}
const pubKey = await fireblocks.getPublicKeyInfoForVaultAccount(PublicKeyInfoArgs);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: vaultAccountId
required: true
description: >-
The ID of the vault account
schema:
type: string
format: numeric
x-fb-entity: vault_account
- in: path
name: assetId
required: true
description: >-
The ID of the asset.
schema:
type: string
x-fb-entity: asset
- in: path
name: change
required: true
description: >-
Whether the address should be derived internal (change) or not.
schema:
type: number
- in: path
name: addressIndex
required: true
description: >-
The index of the address for the derivation path.
schema:
type: number
- in: query
name: compressed
required: false
schema:
type: boolean
responses:
"200":
description: Public Key Information
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/PublicKeyInformation"
default:
$ref: "#/components/responses/Error"
"/vault/assets":
get:
summary: Get asset balance for chosen assets
description: Gets the assets amount summary for all accounts or filtered accounts.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: assets_balance = fireblocks.get_vault_assets_balance(accout_name_prefix, account_name_suffix)
name: Fireblocks SDK Python example
- language: javascript
code: const assetsBalance = await fireblocks.getVaultAssetsBalance(accountNamePrefix, accountNameSuffix);
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: accountNamePrefix
required: false
schema:
type: string
- in: query
name: accountNameSuffix
required: false
schema:
type: string
responses:
"200":
description: Amount by asset
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/VaultAsset"
default:
$ref: "#/components/responses/Error"
"/vault/assets/{assetId}":
get:
summary: Get vault balance by asset
description: Gets the vault balance summary for an asset.
tags:
- Vaults
x-readme:
code-samples:
- language: python
code: assets_balance = fireblocks.get_vault_balance_by_asset(asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const assetsBalance = await fireblocks.getVaultBalanceByAsset(assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: assetId
required: true
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: Vault amount by asset
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/VaultAsset"
default:
$ref: "#/components/responses/Error"
# STAKING
/staking/chains:
get:
operationId: getChains
summary: List staking supported chains
description: |-
Return an alphabetical list of supported chains.
x-readme:
code-samples:
- language: python
code: chains = fireblocks.get_staking_chains()
name: Fireblocks SDK Python example
- language: javascript
code: const chains = await fireblocks.getStakingChains();
name: Fireblocks SDK Javascript example
responses:
"200":
content:
application/json:
schema:
type: array
items:
type: string
example:
- ETH
- SOL
- MATIC
description: ""
tags:
- Staking
/staking/chains/{chainDescriptor}/chainInfo:
get:
operationId: getChainInfo
summary: Get chain-specific staking summary
description: |-
Return chain-specific, staking-related information summary (e.g. epoch
details, lockup durations, estimated rewards, etc.).
x-readme:
code-samples:
- language: python
code: chain_info = fireblocks.get_staking_chain_info(chain_descriptor)
name: Fireblocks SDK Python example
- language: javascript
code: const chainInfo = await fireblocks.getStakingChainInfo(StakingChain.ETHEREUM);
name: Fireblocks SDK Javascript example
parameters:
- name: chainDescriptor
required: true
in: path
description: The protocol identifier (e.g. "ETH"/"SOL"/"MATIC") to use
schema:
type: string
enum:
- ETH
- SOL
- ETH_TEST3
- SOL_TEST
- ETH_TEST6
- MATIC
responses:
"200":
description: Chain specific info summary was returned successfully
content:
application/json:
schema:
$ref: "#/components/schemas/ChainInfoResponseDto"
tags:
- Staking
/staking/chains/{chainDescriptor}/stake:
post:
operationId: stake
summary: Initiate Stake Operation
description: Perform a chain-specific Stake.
x-readme:
code-samples:
- language: python
code: stake_request = fireblocks.execute_staking_stake(chain_descriptor, request_body)
name: Fireblocks SDK Python example
- language: javascript
code: const stakeRequest = await fireblocks.executeStakingStake(chainDescriptor, requestBody);
name: Fireblocks SDK Javascript example
parameters:
- name: chainDescriptor
required: true
in: path
description: The protocol identifier (e.g. "ETH"/"SOL"/"MATIC") to use
schema:
type: string
enum:
- ETH
- SOL
- ETH_TEST3
- SOL_TEST
- ETH_TEST6
- MATIC
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/StakeRequestDto"
example:
vaultAccountId: "22"
providerId: kiln
stakeAmount: "32"
chainDescriptor: ETH
txNote: stake request id CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1 of 32ETH created on 02.04.23
feeLevel: MEDIUM
responses:
"201":
description: Stake action has been executed successfully on vault and is associated with 201 status code.
content:
application/json:
schema:
$ref: "#/components/schemas/StakeResponseDto"
example:
id: afedfd2e4-e3c9-4b70-90d6-eb0f74bfd4sd8
tags:
- Staking
/staking/chains/{chainDescriptor}/unstake:
post:
operationId: unstake
summary: Execute an Unstake operation
description: Perform a chain-specific Unstake.
x-readme:
code-samples:
- language: python
code: unstake_request = fireblocks.execute_staking_unstake(chain_descriptor, request_body)
name: Fireblocks SDK Python example
- language: javascript
code: const unstakeRequest = await fireblocks.executeStakingUnstake(chainDescriptor, requestBody);
name: Fireblocks SDK Javascript example
parameters:
- name: chainDescriptor
required: true
in: path
description: The protocol identifier (e.g. "SOL"/"MATIC") to use
schema:
type: string
enum:
- SOL
- SOL_TEST
- MATIC
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UnstakeRequestDto"
example:
id: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
txNote: "unstake request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #SOL"
feeLevel: MEDIUM
responses:
"201":
description: Unstake action has been executed successfully on vault and is associated with 201 status code.
content:
application/json:
schema:
$ref: "#/components/schemas/UnstakeResponseDto"
example: {}
tags:
- Staking
/staking/chains/{chainDescriptor}/withdraw:
post:
operationId: withdraw
summary: Execute a Withdraw operation
description: Perform a chain-specific Withdraw.
x-readme:
code-samples:
- language: python
code: withdraw_request = fireblocks.execute_staking_withdraw(chain_descriptor, request_body)
name: Fireblocks SDK Python example
- language: javascript
code: const withdrawRequest = await fireblocks.executeStakingWithdraw(chainDescriptor, requestBody);
name: Fireblocks SDK Javascript example
parameters:
- name: chainDescriptor
required: true
in: path
description: The protocol identifier (e.g. "ETH"/"SOL"/"MATIC") to use
schema:
type: string
enum:
- ETH
- SOL
- ETH_TEST3
- SOL_TEST
- ETH_TEST6
- MATIC
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/WithdrawRequestDto"
example:
id: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
txNote: "withdraw request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #ETH"
feeLevel: MEDIUM
responses:
"201":
description: Withdraw action has been executed successfully on vault and is associated with 201 status code.
content:
application/json:
schema:
$ref: "#/components/schemas/WithdrawResponseDto"
example: {}
tags:
- Staking
/staking/chains/{chainDescriptor}/claimRewards:
post:
operationId: claimRewards
summary: Execute a Claim Rewards operation
description: Perform a chain-specific Claim Rewards.
x-readme:
code-samples:
- language: python
code: claim_rewards_request = fireblocks.execute_staking_claim_rewards(chain_descriptor, request_body)
name: Fireblocks SDK Python example
- language: javascript
code: const claimRewardsRequest = await fireblocks.executeStakingClaimRewards(chainDescriptor, requestBody);
name: Fireblocks SDK Javascript example
parameters:
- name: chainDescriptor
required: true
in: path
description: The protocol identifier (e.g. "MATIC") to use
schema:
type: string
enum:
- MATIC
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/ClaimRewardsRequestDto"
example:
id: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
txNote: claim rewards request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d
feeLevel: MEDIUM
responses:
"201":
description: Claim Rewards action has been executed successfully on vault and is associated with 201 status code.
content:
application/json:
schema:
$ref: "#/components/schemas/ClaimRewardsResponseDto"
example: {}
tags:
- Staking
/staking/positions:
get:
operationId: getAllDelegations
summary: List staking positions details
description: |-
Return detailed information on all staking positions, including the
staked amount, rewards, status and more.
x-readme:
code-samples:
- language: python
code: |
positions = fireblocks.get_staking_positions()
eth_positions = fireblocks.get_staking_positions(chainDescriptor="ETH")
name: Fireblocks SDK Python example
- language: javascript
code: |
const positions = await fireblocks.getStakingPositions();
const ethPositions = await fireblocks.getStakingPositions(StakingChain.ETHEREUM);
name: Fireblocks SDK Javascript example
parameters:
- name: chainDescriptor
required: false
in: query
description: Use "ETH" / "SOL"/ "MATIC" in order to obtain information related to the specific blockchain network or retrieve information about all chains that have data available by providing no argument.
schema:
type: string
responses:
"200":
description: An array of position data was returned successfully
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/DelegationDto"
tags:
- Staking
/staking/positions/summary:
get:
operationId: getSummary
summary: Get staking summary details
description: |-
Return a summary of all vaults, categorized by their status (active,
inactive), the total amounts staked and total rewards per-chain.
x-readme:
code-samples:
- language: python
code: |
positions_summary = fireblocks.get_staking_positions_summary()
name: Fireblocks SDK Python example
- language: javascript
code: |
const positionsSummary = await fireblocks.getPositionsSummary();
name: Fireblocks SDK Javascript example
responses:
"200":
description: A summary for all vaults were returned successfully
content:
application/json:
schema:
$ref: "#/components/schemas/DelegationSummaryDto"
example:
active:
- chainDescriptor: ETH
amount: "64.036604667"
- chainDescriptor: SOL
amount: "0.077345939"
inactive:
- chainDescriptor: ETH
amount: "0"
- chainDescriptor: SOL
amount: "0"
rewardsAmount:
- chainDescriptor: ETH
amount: "0.036604667"
- chainDescriptor: SOL
amount: "0.001345939"
totalStaked:
- chainDescriptor: ETH
amount: "64.036604667"
- chainDescriptor: SOL
amount: "0.077345939"
tags:
- Staking
/staking/positions/summary/vaults:
get:
operationId: getSummaryByVault
summary: Get staking summary details by vault
description: |-
Return a summary for each vault, categorized by their status (active,
inactive), the total amounts staked and total rewards per-chain.
x-readme:
code-samples:
- language: python
code: |
positions_summary_by_vault = fireblocks.get_staking_positions_summary_by_vault()
name: Fireblocks SDK Python example
- language: javascript
code: |
const positionsSummary = await fireblocks.getPositionsSummaryByVault();
name: Fireblocks SDK Javascript example
parameters: []
responses:
"200":
description: A summary for each vault were returned successfully
content:
application/json:
schema:
type: object
additionalProperties:
$ref: "#/components/schemas/DelegationSummaryDto"
example:
"0":
active:
- chainDescriptor: SOL
amount: "0.015202376"
inactive:
- chainDescriptor: SOL
amount: "0"
rewardsAmount:
- chainDescriptor: SOL
amount: "0.000202376"
totalStaked:
- chainDescriptor: SOL
amount: "0.015202376"
"1":
active:
- chainDescriptor: ETH
amount: "64.036604667"
- chainDescriptor: SOL
amount: "0.011191566"
inactive:
- chainDescriptor: ETH
amount: "0"
- chainDescriptor: SOL
amount: "0"
rewardsAmount:
- chainDescriptor: ETH
amount: "0.036604667"
- chainDescriptor: SOL
amount: "0.000191566"
totalStaked:
- chainDescriptor: ETH
amount: "64.036604667"
- chainDescriptor: SOL
amount: "0.011191566"
tags:
- Staking
/staking/positions/{id}:
get:
operationId: getDelegationById
summary: Get staking position details
description: |-
Return detailed information on a staking position, including the staked
amount, rewards, status and more.
x-readme:
code-samples:
- language: python
code: position = fireblocks.get_staking_position(position_id)
name: Fireblocks SDK Python example
- language: javascript
code: const position = await fireblocks.getPosition(positionId);
name: Fireblocks SDK Javascript example
parameters:
- name: id
required: true
in: path
description: The unique identifier of the staking position
schema:
type: string
responses:
"200":
description: Position data was returned successfully
content:
application/json:
schema:
$ref: "#/components/schemas/DelegationDto"
tags:
- Staking
/staking/providers:
get:
operationId: getProviders
summary: List staking providers details
description: |-
Return information on all the available staking providers.
x-readme:
code-samples:
- language: python
code: providers = fireblocks.get_staking_providers()
name: Fireblocks SDK Python example
- language: javascript
code: const providers = await fireblocks.getStakingProviders()
name: Fireblocks SDK Javascript example
parameters: []
responses:
"200":
description: An array of supported providers was returned successfully
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/ProviderDto"
tags:
- Staking
/staking/providers/{providerId}/approveTermsOfService:
post:
operationId: approveTermsOfServiceByProviderId
summary: Approve staking terms of service
description: |-
Approve the terms of service of the staking provider. This must be called before performing a staking action for the first
time with this provider.
x-readme:
code-samples:
- language: python
code: approve_request = fireblocks.approve_staking_provider_terms_of_service(provider_id)
name: Fireblocks SDK Python example
- language: javascript
code: const approveRequest = await fireblocks.approveStakingProviderTermsOfService(providerId);
name: Fireblocks SDK Javascript example
parameters:
- name: providerId
required: true
in: path
description: The unique identifier of the staking provider
schema:
type: string
enum:
- kiln
- figment
responses:
"201":
description: The terms of service have been successfully approved and is associated with 201 status code.
content:
application/json:
schema:
$ref: "#/components/schemas/ProvidersResponseDto"
tags:
- Staking
# EXCHANGE ACCOUNTS
/exchange_accounts:
get:
summary: List exchange accounts
description: >
Returns all exchange accounts.
**Note:** This endpoint will be deprecated soon. Please use the `/exchange_accounts/paged` endpoint instead.
tags:
- Exchange accounts
x-readme:
code-samples:
- language: python
code: exchangeAccounts = fireblocks.get_exchange_accounts()
name: Fireblocks SDK Python example
- language: javascript
code: const exchangeAccounts = await fireblocks.getExchangeAccounts();
name: Fireblocks SDK Javascript example
responses:
"200":
description: An ExchangeAccount object
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/ExchangeAccount"
default:
$ref: "#/components/responses/Error"
/exchange_accounts/paged:
get:
summary: List exchange accounts (paged)
description: Returns a paginated list of exchange accounts.
tags:
- Exchange accounts
x-readme:
code-samples:
- language: javascript
code: const exchangeAccounts = await fireblocks.getExchangeAccounts();
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: before
required: false
schema:
type: string
- in: query
name: after
required: false
schema:
type: string
- in: query
name: limit
description: >-
number of exchanges per page
required: true
schema:
type: number
minimum: 1
maximum: 5
default: 3
responses:
"200":
description: An ExchangeAccount object
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/ExchangeAccountsPaged"
default:
$ref: "#/components/responses/Error"
"/exchange_accounts/{exchangeAccountId}":
get:
summary: Find a specific exchange account
description: Returns an exchange account by ID.
tags:
- Exchange accounts
x-readme:
code-samples:
- language: python
code: exchangeAccount = fireblocks.get_exchange_account(exchangeAccountId)
name: Fireblocks SDK Python example
- language: javascript
code: const exchnageAccount = await fireblocks.get_exchange_account(exchangeAccountId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: exchangeAccountId
required: true
description: The ID of the exchange account to return
schema:
type: string
minimum: 1
responses:
"200":
description: An ExchangeAccount object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ExchangeAccount"
default:
$ref: "#/components/responses/Error"
"/exchange_accounts/{exchangeAccountId}/internal_transfer":
post:
summary: Internal tranfer for exchange accounts
description: Transfers funds between trading accounts under the same exchange account.
tags:
- Exchange accounts
parameters:
- in: path
name: exchangeAccountId
required: true
description: The ID of the exchange account to return
schema:
type: string
minimum: 1
responses:
"201":
description: Transfer succeeded
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
asset:
type: string
amount:
type: string
sourceType:
$ref: "#/components/schemas/TradingAccountType"
destType:
$ref: "#/components/schemas/TradingAccountType"
"/exchange_accounts/{exchangeAccountId}/convert":
post:
summary: Convert exchange account funds from the source asset to the destination asset. Coinbase (USD to USDC, USDC to USD) and Bitso (MXN to USD) are supported conversions.
tags:
- Exchange accounts
x-readme:
code-samples:
- language: python
code: exchangeAccount = fireblocks.convert_exchange_asset(exchange_account_id, src_asset, dest_asset, amount)
name: Fireblocks SDK Python example
- language: javascript
code: const exchnageAccount = await fireblocks.convertExchangeAsset(exchangeAccountId, srcAsset, destAsset, amount);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: exchangeAccountId
required: true
description: The ID of the exchange account. Please make sure the exchange supports conversions. To find the ID of your exchange account, use GET/exchange_accounts.
schema:
type: string
minimum: 1
responses:
"200":
description: Conversion successful
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
srcAsset:
type: string
description: Name of the source asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID)
destAsset:
type: string
description: Name of the destination asset (must be in a currency that is supported for conversions in the selected exchange type that corresponds to your exchange ID)
amount:
type: number
description: The amount to transfer (in the currency of the source asset)
required:
- srcAsset
- destAsset
- amount
"/exchange_accounts/{exchangeAccountId}/{assetId}":
get:
summary: Find an asset for an exchange account
description: Returns an asset for an exchange account.
tags:
- Exchange accounts
x-readme:
code-samples:
- language: python
code: exchangeAsset = fireblocks.get_exchange_account_asset(exchangeAccountId, assetId)
name: Fireblocks SDK Python example
- language: javascript
code: const exchangeAsset = await fireblocks.getExchangeAsset(exchangeAccountId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: exchangeAccountId
required: true
description: The ID of the exchange account to return
schema:
type: string
minimum: 1
- in: path
name: assetId
required: true
description: The ID of the asset to return
schema:
type: string
minimum: 1
responses:
"200":
description: An ExchangeAccountAsset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ExchangeAsset"
default:
$ref: "#/components/responses/Error"
# FIAT ACCOUNTS
/fiat_accounts:
get:
summary: List fiat accounts
description: Returns all fiat accounts.
tags:
- Fiat accounts
x-readme:
code-samples:
- language: python
code: transactions = fireblocks.get_fiat_accounts()
name: Fireblocks SDK Python example
- language: javascript
code: const transactions = await fireblocks.getFiatAccounts();
name: Fireblocks SDK Javascript example
responses:
"200":
description: A fiat account object
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/FiatAccount"
default:
$ref: "#/components/responses/Error"
"/fiat_accounts/{accountId}":
get:
summary: Find a specific fiat account
description: Returns a fiat account by ID.
tags:
- Fiat accounts
x-readme:
code-samples:
- language: python
code: transactions = fireblocks.get_fiat_account_by_id(account_id)
name: Fireblocks SDK Python example
- language: javascript
code: const transactions = await fireblocks.getFiatAccountById(accountId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: accountId
required: true
description: The ID of the fiat account to return
schema:
type: string
minimum: 1
responses:
"200":
description: A fiat account object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/FiatAccount"
default:
$ref: "#/components/responses/Error"
"/fiat_accounts/{accountId}/redeem_to_linked_dda":
post:
summary: Redeem funds to DDA
description: Redeems funds to the linked DDA.
tags:
- Fiat accounts
x-readme:
code-samples:
- language: python
code: transactions = fireblocks.redeem_to_linked_dda(account_id, amount)
name: Fireblocks SDK Python example
- language: javascript
code: const transactions = await fireblocks.redeemToLinkedDDA(accountId, amount);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: accountId
required: true
description: The ID of the fiat account to use
schema:
type: string
minimum: 1
responses:
"201":
description: Transfer succeeded
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
amount:
type: number
"/fiat_accounts/{accountId}/deposit_from_linked_dda":
post:
summary: Deposit funds from DDA
description: Deposits funds from the linked DDA.
tags:
- Fiat accounts
x-readme:
code-samples:
- language: python
code: transactions = fireblocks.deposit_from_linked_dda(account_id, amount)
name: Fireblocks SDK Python example
- language: javascript
code: const transactions = await fireblocks.depositFromLinkedDDA(accountId, amount);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: accountId
required: true
description: The ID of the fiat account to use
schema:
type: string
minimum: 1
responses:
"201":
description: Transfer succeeded
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
amount:
type: number
# NETWORK CONNECTIONS
"/network_connections":
get:
summary: List network connections
description: |
Returns all network connections.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
x-readme:
code-samples:
- language: python
code: network_connections = fireblocks.get_network_connections()
name: Fireblocks SDK Python example
- language: javascript
code: const networkConnections = await fireblocks.getNetworkConnections();
name: Fireblocks SDK Javascript example
responses:
"200":
description: A list of network connections
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/NetworkConnectionResponse"
default:
$ref: "#/components/responses/Error"
post:
summary: Creates a new network connection
description: |
Initiates a new network connection.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
x-readme:
code-samples:
- language: python
code: network_connections = fireblocks.create_network_connection(local_network_id, remote_network_id, routing_policy)
name: Fireblocks SDK Python example
- language: javascript
code: const networkConnections = await fireblocks.createNetworkConnection(localNetworkId, remoteNetworkId, routingPolicy);
name: Fireblocks SDK Javascript example
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/NetworkConnection"
responses:
"201":
description: A Network Connection object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/NetworkConnectionResponse"
default:
$ref: "#/components/responses/Error"
"/network_connections/{connectionId}/set_routing_policy":
patch:
summary: Update network connection routing policy.
description: |
Updates an existing network connection's routing policy.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
parameters:
- in: path
name: connectionId
required: true
description: The ID of the network connection
schema:
type: string
minimum: 1
requestBody:
content:
application/json:
schema:
properties:
routingPolicy:
$ref: "#/components/schemas/NetworkConnectionRoutingPolicy"
required:
- routingPolicy
responses:
"200":
description: Network ID
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
"*/*":
schema:
properties:
success:
type: boolean
required:
- success
default:
$ref: "#/components/responses/Error"
"/network_connections/{connectionId}/is_third_party_routing/{assetType}":
get:
summary: Retrieve third-party network routing validation by asset type.
description: The Fireblocks Network allows for flexibility around incoming deposits. A receiver can receive network deposits to locations other than Fireblocks. This endpoint validates whether future transactions are routed to the displayed recipient or to a 3rd party.
tags:
- Network connections
parameters:
- in: path
name: connectionId
required: true
description: The ID of the network connection
schema:
type: string
minimum: 1
- in: path
name: assetType
required: true
description: The destination asset type
schema:
type: string
enum:
- CRYPTO
- SIGNET
- SEN
- SIGNET_TEST
- SEN_TEST
responses:
"200":
description: result for the validation
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
"*/*":
schema:
properties:
isThirdPartyRouting:
type: boolean
description:
type: string
default:
$ref: "#/components/responses/Error"
"/network_connections/{connectionId}":
get:
summary: Get a network connection
description: |
Gets a network connection by ID.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
x-readme:
code-samples:
- language: python
code: network_connection = fireblocks.get_network_connection_by_id(connectionId)
name: Fireblocks SDK Python example
- language: javascript
code: const network_connection = await fireblocks.getNetworkConnection(connectionId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: connectionId
required: true
description: The ID of the connection
schema:
type: string
minimum: 1
responses:
"200":
description: A network connection
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/NetworkConnectionResponse"
default:
$ref: "#/components/responses/Error"
delete:
summary: Deletes a network connection by ID
description: |
Deletes an existing network connection specified by its connection ID.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
parameters:
- in: path
name: connectionId
required: true
description: The ID of the network connection to delete
schema:
type: string
minimum: 1
responses:
"200":
description: Network ID
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
"*/*":
schema:
properties:
success:
type: boolean
required:
- success
default:
$ref: "#/components/responses/Error"
"/network_ids":
get:
summary: Returns all network IDs, both local IDs and discoverable remote IDs
description: |
Retrieves a list of all local and discoverable remote network IDs.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
responses:
"200":
description: A list of network IDs
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
allOf:
- $ref: "#/components/schemas/NetworkIdResponse"
default:
$ref: "#/components/responses/Error"
post:
summary: Creates a new Network ID
description: |
Creates a new Network ID.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
routingPolicy:
$ref: "#/components/schemas/NetworkIdRoutingPolicy"
required:
- name
responses:
"201":
description: Returns the new network ID in your workspace
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/NetworkIdResponse"
default:
$ref: "#/components/responses/Error"
"/network_ids/{networkId}":
get:
summary: Returns specific network ID.
description: |
Retrieves a network by its ID.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
parameters:
- in: path
name: networkId
required: true
description: The ID of the network
schema:
type: string
minimum: 1
responses:
"200":
description: Network ID
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/NetworkIdResponse"
default:
$ref: "#/components/responses/Error"
delete:
summary: Deletes specific network ID.
description: |
Deletes a network by its ID.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
parameters:
- in: path
name: networkId
required: true
description: The ID of the network
schema:
type: string
minimum: 1
responses:
"200":
description: Network ID
content:
"*/*":
schema:
properties:
success:
type: boolean
required:
- success
default:
$ref: "#/components/responses/Error"
"/network_ids/{networkId}/set_routing_policy":
patch:
summary: Update network id routing policy.
description: |
Updates the routing policy of a specified network ID.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
parameters:
- in: path
name: networkId
required: true
description: The ID of the network
schema:
type: string
minimum: 1
requestBody:
content:
application/json:
schema:
properties:
routingPolicy:
$ref: "#/components/schemas/NetworkIdRoutingPolicy"
required:
- routingPolicy
responses:
"200":
description: Network ID
headers: *req-id-header
content:
"*/*":
schema:
properties:
success:
type: boolean
required:
- success
default:
$ref: "#/components/responses/Error"
"/network_ids/{networkId}/set_discoverability":
patch:
summary: Update network ID's discoverability.
description: |
Update whether or not the network ID is discoverable by others.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
parameters:
- in: path
name: networkId
required: true
description: The ID of the network
schema:
type: string
minimum: 1
requestBody:
required: true
content:
application/json:
schema:
properties:
isDiscoverable:
type: boolean
required:
- isDiscoverable
responses:
"200":
description: Network ID
headers: *req-id-header
content:
"*/*":
schema:
properties:
success:
type: boolean
required:
- success
default:
$ref: "#/components/responses/Error"
"/network_ids/{networkId}/set_name":
patch:
summary: Update network ID's name.
description: |
Updates name of a specified network ID.
**Note:** This API call is subject to Flexible Routing Schemes.
Your routing policy defines how your transactions are routed.
You can choose 1 of the 3 different schemes mentioned below for each asset type:
- **None**; Defines the profile routing to no destination for that asset type. Incoming transactions to asset types routed to `None` will fail.
- **Custom**; Route to an account that you choose. If you remove the account, incoming transactions will fail until you choose another one.
- **Default**; Use the routing specified by the network profile the connection is connected to. This scheme is also referred to as "Profile Routing"
Default Workspace Presets:
- Network Profile Crypto → **Custom**
- Network Profile FIAT → **None**
- Network Connection Crypto → **Default**
- Network Connection FIAT → **Default**
- **Note**: By default, Custom routing scheme uses (`dstId` = `0`, `dstType` = `VAULT`).
tags:
- Network connections
parameters:
- in: path
name: networkId
required: true
description: The ID of the network
schema:
type: string
minimum: 1
requestBody:
required: true
content:
application/json:
schema:
properties:
name:
type: string
required:
- name
responses:
"200":
description: Network ID
headers: *req-id-header
content:
"*/*":
schema:
properties:
success:
type: boolean
required:
- success
default:
$ref: "#/components/responses/Error"
# INTERNAL WALLETS
/internal_wallets:
get:
summary: List internal wallets
tags:
- Internal wallets
description: |
Gets a list of internal wallets.
**Note**: BTC-based assets belonging to whitelisted addresses cannot be retrieved between 00:00 UTC and 00:01 UTC daily due to third-party provider, Blockchair, being unavailable for this 60 second period. Please wait until the next minute to retrieve BTC-based assets.
responses:
"200":
description: A list of internal wallets
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
post:
summary: Create an internal wallet
tags:
- Internal wallets
x-readme:
code-samples:
- language: python
code: internalWallet = fireblocks.create_internal_wallet(name, customer_ref_id)
name: Fireblocks SDK Python example
- language: javascript
code: const internalWallet = await fireblocks.createInternalWallet(name, customerRefId);
name: Fireblocks SDK Javascript example
description: Creates a new internal wallet with the requested name.
responses:
"200":
description: A new wallet object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
description: the wallet's display name
customerRefId:
description: >-
Optional - Sets a customer reference ID
type: string
"/internal_wallets/{walletId}":
get:
summary: Get assets for internal wallet
tags:
- Internal wallets
x-readme:
code-samples:
- language: python
code: internalWallet = fireblocks.get_internal_wallet(walletId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.getInternalWallet(walletId);
name: Fireblocks SDK Javascript example
description: Returns all assets in an internal wallet by ID.
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet to return
schema:
type: string
minimum: 1
responses:
"200":
description: A Wallet object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
delete:
summary: Delete an internal wallet
tags:
- Internal wallets
x-readme:
code-samples:
- language: python
code: result = firebocks.delete_internal_wallet(walletId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.deleteInternalWallet(walletId);
name: Fireblocks SDK Javascript example
description: Deletes an internal wallet by ID.
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet to delete
schema:
type: string
minimum: 1
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/internal_wallets/{walletId}/set_customer_ref_id":
post:
summary: Set an AML/KYT customer reference ID for an internal wallet
tags:
- Internal wallets
x-readme:
code-samples:
- language: python
code: result = firebocks.set_customer_ref_id_for_internal_wallet(wallet_id, customer_ref_id)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.setCustomerRefIdForInternalWallet(walletId, customerRefId);
name: Fireblocks SDK Javascript example
description: Sets an AML/KYT customer reference ID for the specific internal wallet.
parameters:
- in: path
name: walletId
required: true
description: The wallet ID
schema:
type: string
minimum: 1
requestBody:
required: true
content:
application/json:
schema:
properties:
customerRefId:
description: Customer reference ID
type: string
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/internal_wallets/{walletId}/{assetId}":
get:
summary: Get an asset from an internal wallet
tags:
- Internal wallets
x-readme:
code-samples:
- language: python
code: internalWalletAsset = fireblocks.get_internal_wallet_asset(walletId, assetId)
name: Fireblocks SDK Python example
- language: javascript
code: const internalWalletAsset = fireblocks.getInternalWalletAsset(walletId, assetId);
name: Fireblocks SDK Javascript example
description: Returns information for an asset in an internal wallet.
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet
schema:
type: string
minimum: 1
- in: path
name: assetId
required: true
description: The ID of the asset to return
schema:
type: string
minimum: 1
x-fb-entity: asset
responses:
"200":
description: A Wallet Asset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/WalletAsset"
default:
$ref: "#/components/responses/Error"
post:
summary: Add an asset to an internal wallet
tags:
- Internal wallets
x-readme:
code-samples:
- language: python
code: internalWalletAsset = fireblocks.create_internal_wallet_asset(walletId, assetId, address, tag)
name: Fireblocks SDK Python example
- language: javascript
code: const internalWalletAsset = await fireblocks.createInternalWalletAsset(walletContainerId, assetId, address, tag);
name: Fireblocks SDK Javascript example
description: Adds an asset to an existing internal wallet.
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet
schema:
type: string
- in: path
name: assetId
required: true
description: The ID of the asset to add
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: A Wallet Asset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/WalletAsset"
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
address:
type: string
description: The wallet's address or, for EOS wallets, the account name
tag:
type: string
description: for XRP wallets, the destination tag; for EOS, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description
required:
- address
delete:
summary: Delete a whitelisted address from an internal wallet
tags:
- Internal wallets
x-readme:
code-samples:
- language: python
code: result = fireblocks.delete_internal_wallet_asset(walletId, assetId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.deleteInternalWalletAsset(walletId, assetId);
name: Fireblocks SDK Javascript example
description: Deletes a whitelisted address (for an asset) from an internal wallet.
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet
schema:
type: string
minimum: 1
- in: path
name: assetId
required: true
description: The ID of the asset to delete
schema:
type: string
minimum: 1
x-fb-entity: asset
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
# EXTERNAL WALLETS
/external_wallets:
get:
summary: List external wallets
description: Gets a list of external wallets under the workspace.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: externalWallets = fireblocks.get_external_wallets()
name: Fireblocks SDK Python example
- language: javascript
code: const externalWallets = await fireblocks.getExternalWallets();
name: Fireblocks SDK Javascript example
responses:
"200":
description: A list of external wallets
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
post:
summary: Create an external wallet
description: Creates a new external wallet with the requested name.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: externalWallet = fireblocks.create_external_wallet(name, customer_ref_id)
name: Fireblocks SDK Python example
- language: javascript
code: const externalWallet = await fireblocks.createExternalWallet(name, customerRefId);
name: Fireblocks SDK Javascript example
responses:
"200":
description: A Wallet object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
description: the wallet's display name
customerRefId:
description: >-
Optional - Sets a customer reference ID
type: string
"/external_wallets/{walletId}":
get:
summary: Find an external wallet
description: Returns an external wallet by ID.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: externalWallet = fireblocks.get_external_wallet(walletId)
name: Fireblocks SDK Python example
- language: javascript
code: const externalWallet = await fireblocks.getExternalWallet(walletId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet to return
schema:
type: string
minimum: 1
responses:
"200":
description: A Wallet object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
delete:
summary: Delete an external wallet
description: Deletes an external wallet by ID.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: result = firebocks.delete_external_wallet(walletId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.deleteExternalWallet(walletId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet to delete
schema:
type: string
minimum: 1
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/external_wallets/{walletId}/set_customer_ref_id":
post:
summary: Set an AML customer reference ID for an external wallet
description: Sets an AML/KYT customer reference ID for the specific external wallet.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: result = firebocks.set_customer_ref_id_for_external_wallet(wallet_id, customer_ref_id)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.setCustomerRefIdForExternalWallet(walletId, customerRefId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: walletId
required: true
description: The wallet ID
schema:
type: string
minimum: 1
requestBody:
required: true
content:
application/json:
schema:
properties:
customerRefId:
description: Customer reference ID
type: string
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/external_wallets/{walletId}/{assetId}":
get:
summary: Get an asset from an external wallet
description: Returns an external wallet by wallet ID and asset ID.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: externalWalletAsset = fireblocks.get_external_wallet_asset(walletId, assetId)
name: Fireblocks SDK Python example
- language: javascript
code: const externalWalletAsset = fireblocks.getExternalWalletAsset(walletId, assetId)
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet
schema:
type: string
minimum: 1
- in: path
name: assetId
required: true
description: The ID of the asset to return
schema:
type: string
minimum: 1
x-fb-entity: asset
responses:
"200":
description: A Wallet Asset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ExternalWalletAsset"
default:
$ref: "#/components/responses/Error"
post:
summary: Add an asset to an external wallet.
description: Adds an asset to an existing external wallet.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: externalWalletAsset = fireblocks.create_external_wallet_asset(walletId, assetId, address, tag)
name: Fireblocks SDK Python example
- language: javascript
code: const externalWalletAsset = await fireblocks.createExternalWalletAsset(walletContainerId, assetId, address, tag);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet
schema:
type: string
- in: path
name: assetId
required: true
description: The ID of the asset to add
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: A Wallet Asset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ExternalWalletAsset"
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
oneOf:
- properties:
address:
type: string
description: The wallet's address (or xpub) of the wallet
tag:
type: string
description: For XRP wallets, the destination tag; for EOS/XLM, the memo; for the fiat providers (BLINC by BCB Group), the Bank Transfer Description
required:
- address
- properties:
additionalInfo:
type: object
oneOf:
- properties:
accountHolderGivenName:
type: string
accountHolderSurname:
type: string
accountHolderCity:
type: string
accountHolderCountry:
type: string
accountHolderAddress1:
type: string
accountHolderAddress2:
type: string
accountHolderDistrict:
type: string
accountHolderPostalCode:
type: string
iban:
type: string
ibanCity:
type: string
ibanCountry:
type: string
required:
- accountHolderGivenName
- accountHolderCity
- accountHolderCountry
- accountHolderAddress1
- accountHolderPostalCode
- iban
- ibanCity
- ibanCountry
- properties:
accountHolderGivenName:
type: string
accountHolderSurname:
type: string
accountHolderCity:
type: string
accountHolderCountry:
type: string
accountHolderAddress1:
type: string
accountHolderAddress2:
type: string
accountHolderDistrict:
type: string
accountHolderPostalCode:
type: string
abaRoutingNumber:
type: string
abaAccountNumber:
type: string
abaCountry:
type: string
required:
- accountHolderGivenName
- accountHolderCity
- accountHolderCountry
- accountHolderAddress1
- accountHolderPostalCode
- abaRoutingNumber
- abaAccountNumber
- abaCountry
- properties:
speiClabe:
type: string
speiName:
type: string
required:
- speiClabe
required:
- additionalInfo
delete:
summary: Delete an asset from an external wallet
description: Deletes an external wallet asset by ID.
tags:
- External wallets
x-readme:
code-samples:
- language: python
code: result = fireblocks.delete_external_wallet_asset(walletId, assetId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.deleteExternalWalletAsset(walletId, assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: walletId
required: true
description: The ID of the wallet
schema:
type: string
minimum: 1
- in: path
name: assetId
required: true
description: The ID of the asset to delete
schema:
type: string
minimum: 1
x-fb-entity: asset
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
# CONTRACTS
/contracts:
get:
summary: List contracts
description: Gets a list of contracts.
tags:
- Contracts
responses:
"200":
description: A list of contracts
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
post:
summary: Create a contract
description: Creates a new contract.
tags:
- Contracts
responses:
"200":
description: A Wallet object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
name:
type: string
description: the contract's display name
"/contracts/{contractId}":
get:
summary: Find a specific contract
description: Returns a contract by ID.
tags:
- Contracts
parameters:
- in: path
name: contractId
required: true
description: The ID of the contract to return
schema:
type: string
minimum: 1
responses:
"200":
description: A Wallet object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UnmanagedWallet"
default:
$ref: "#/components/responses/Error"
delete:
summary: Delete a contract
description: Deletes a contract by ID.
tags:
- Contracts
parameters:
- in: path
name: contractId
required: true
description: The ID of the contract to delete
schema:
type: string
minimum: 1
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/contracts/{contractId}/{assetId}":
get:
summary: Find a contract asset
description: Returns a contract asset by ID.
tags:
- Contracts
parameters:
- in: path
name: contractId
required: true
description: The ID of the contract
schema:
type: string
minimum: 1
- in: path
name: assetId
required: true
description: The ID of the asset to return
schema:
type: string
minimum: 1
x-fb-entity: asset
responses:
"200":
description: A Wallet Asset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ExternalWalletAsset"
default:
$ref: "#/components/responses/Error"
post:
summary: Add an asset to a contract
description: Adds an asset to an existing contract.
tags:
- Contracts
parameters:
- in: path
name: contractId
required: true
description: The ID of the contract
schema:
type: string
- in: path
name: assetId
required: true
description: The ID of the asset to add
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: A Wallet Asset object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ExternalWalletAsset"
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
properties:
address:
type: string
description: The contract's address (or xpub) of the wallet
tag:
type: string
description: The destination tag, for XRP wallets
required:
- address
delete:
summary: Delete a contract asset
description: Deletes a contract asset by ID.
tags:
- Contracts
parameters:
- in: path
name: contractId
required: true
description: The ID of the contract
schema:
type: string
minimum: 1
- in: path
name: assetId
required: true
description: The ID of the asset to delete
schema:
type: string
minimum: 1
x-fb-entity: asset
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
# SUPPORTED ASSETS
"/supported_assets":
get:
summary: List all assets and assets types supported by Fireblocks
description: Returns all assets and assets types supported by Fireblocks.
tags:
- Blockchains & assets
x-readme:
code-samples:
- language: python
code: supportedAssets = fireblocks.get_supported_assets()
name: Fireblocks SDK Python example
- language: javascript
code: const supportedAssets = await fireblocks.getSupportedAssets();
name: Fireblocks SDK Javascript example
responses:
"200":
description: Supported Assets
headers: *req-id-header
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/AssetTypeResponse"
default:
$ref: "#/components/responses/Error"
"/assets":
post:
operationId: registerNewAsset
summary: Register an asset
description: Register a new asset to a workspace and return the newly created asset's details. Currently supported for EVM based chains only.
tags:
- Blockchains & assets
x-readme:
code-samples:
- language: python
code: supportedAssets = fireblocks.register_new_asset(blockchainId, address, symbol)
name: Fireblocks SDK Python example
- language: javascript
code: const supportedAssets = await fireblocks.registerNewAsset(blockchainId, address, symbol);
name: Fireblocks SDK Javascript example
responses:
"200":
description: A new asset has been created successfully
content:
application/json:
schema:
$ref: "#/components/schemas/AssetResponse"
"400":
description: |
- Listing an asset on the requested blockchain is not supported. Error code: 1004
- The asset address is invalid. Error code: 1003
content:
application/json:
schema:
$ref: "#/components/schemas/AssetBadRequestErrorResponse"
"403":
description: |
- The asset creation quota reached. Error code: 1005
content:
application/json:
schema:
$ref: "#/components/schemas/AssetForbiddenErrorResponse"
"404":
description: |
- Invalid address, could not get asset information. Error code 1003
content:
application/json:
schema:
$ref: "#/components/schemas/AssetNotFoundErrorResponse"
"409":
description: |
- The asset is already supported globally. Error code: 1002
- The asset has already been added to this workspace. Error code: 1001
content:
application/json:
schema:
$ref: "#/components/schemas/AssetConflictErrorResponse"
"500":
description: Failed to create asset
content:
application/json:
schema:
$ref: "#/components/schemas/AssetInternalServerErrorResponse"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RegisterNewAssetRequest"
"/estimate_network_fee":
get:
summary: Estimate the required fee for an asset
description: Gets the estimated required fee for an asset. For UTXO based assets, the response will contain the suggested fee per byte, for ETH/ETC based assets, the suggested gas price, and for XRP/XLM, the transaction fee.
tags:
- Blockchains & assets
x-readme:
code-samples:
- language: python
code: fee_result = fireblocks.get_fee_for_asset(asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const feeResult = await fireblocks.getFeeForAsset(assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: assetId
description: >-
The asset for which to estimate the fee
required: true
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: Estimated fees response
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/EstimatedNetworkFeeResponse"
default:
$ref: "#/components/responses/Error"
"/transactions/validate_address/{assetId}/{address}":
get:
summary: Validate destination address
description: Checks if an address is valid (for XRP, DOT, XLM, and EOS).
tags:
- Blockchains & assets
x-readme:
code-samples:
- language: python
code: const result = await fireblocks.validate_address(assetID, address)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.validateAddress(assetID, address)
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: assetId
required: true
description: The asset of the address
schema:
type: string
x-fb-entity: asset
- in: path
name: address
required: true
description: The address to validate
schema:
type: string
responses:
"200":
description: An Transaction object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ValidateAddressResponse"
default:
$ref: "#/components/responses/Error"
# TRANSACTIONS
/transactions:
get:
summary: List transaction history
description: Lists the transaction history for your workspace.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: transactions = fireblocks.get_transactions(status, after)
name: Fireblocks SDK Python example
- language: javascript
code: >
const transactions = await fireblocks.getTransactions({
status: args.status,
after: from
});
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: before
description: >-
Unix timestamp in milliseconds. Returns only transactions created before the
specified date
required: false
schema:
type: string
- in: query
name: after
description: >-
Unix timestamp in milliseconds. Returns only transactions created after the
specified date
required: false
schema:
type: string
- in: query
name: status
description: >-
You can filter by one of the statuses.
required: false
schema:
type: string
- in: query
name: orderBy
description: >-
The field to order the results by
**Note**: Ordering by a field that is not createdAt may result with transactions that receive updates as you request the next or previous pages of results, resulting with missing those transactions.
required: false
schema:
type: string
enum:
- createdAt
- lastUpdated
- in: query
name: sort
description: The direction to order the results by
required: false
schema:
type: string
enum:
- ASC
- DESC
- in: query
name: limit
description: >-
Limits the number of results. If not provided, a limit of 200 will be used. The maximum allowed limit is 500
required: false
schema:
type: integer
minimum: 1
default: 200
- in: query
name: sourceType
description: The source type of the transaction
required: false
schema:
type: string
enum:
- VAULT_ACCOUNT
- EXCHANGE_ACCOUNT
- INTERNAL_WALLET
- EXTERNAL_WALLET
- FIAT_ACCOUNT
- NETWORK_CONNECTION
- COMPOUND
- UNKNOWN
- GAS_STATION
- END_USER_WALLET
- in: query
name: sourceId
description: The source ID of the transaction
required: false
schema:
type: string
- in: query
name: destType
description: The destination type of the transaction
required: false
schema:
type: string
enum:
- VAULT_ACCOUNT
- EXCHANGE_ACCOUNT
- INTERNAL_WALLET
- EXTERNAL_WALLET
- FIAT_ACCOUNT
- NETWORK_CONNECTION
- COMPOUND
- ONE_TIME_ADDRESS
- END_USER_WALLET
- in: query
name: destId
description: The destination ID of the transaction
required: false
schema:
type: string
- in: query
name: assets
description: A list of assets to filter by, seperated by commas
required: false
schema:
type: string
- in: query
name: txHash
description: Returns only results with a specified txHash
required: false
schema:
type: string
- in: query
name: sourceWalletId
description: Returns only results where the source is a specific end user wallet
required: false
schema:
type: string
- in: query
name: destWalletId
description: Returns only results where the destination is a specific end user wallet
required: false
schema:
type: string
responses:
"200":
description: A list of transactions
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
next-page:
$ref: "#/components/headers/next-page"
prev-page:
$ref: "#/components/headers/prev-page"
content:
"*/*":
schema:
type: array
items:
$ref: "#/components/schemas/TransactionResponse"
default:
$ref: "#/components/responses/Error"
post:
summary: Create a new transaction
description: |
Creates a new transaction. This endpoint can be used for regular Transfers, Contract Calls, Raw & Typed message signing.
- For Transfers, the required parameters are: `assetId`, `source`, `destination` and `amount`.
- For Contract Calls, the required parameters are: `operation.CONTRACT_CALL`, `assetId` (Base Asset), `source`, `destination`, `amount` (usually 0) and `extraParameters` object with `contractCallData` string.
- For RAW and Typed messages signing, the required parameters are: `operation.RAW/TYPED_MESSAGE`, `assetId` or `derivationPath`, `source` or `derivationPath`, `extraParameters` with [rawMessageData object](https://developers.fireblocks.com/reference/raw-signing-objects).
- Typed Message Signing is supported for the following asset IDs: 'ETH', 'BTC' and 'TRX'. [Typed Message Signing Guide](https://developers.fireblocks.com/docs/typed-message-signing-overview).
tags:
- Transactions
parameters:
- in: header
$ref: "#/components/parameters/X-End-User-Wallet-Id"
x-readme:
code-samples:
- language: python
code: >
tx_result = fireblocks.create_transaction(
asset_id="BTC",
amount="50",
source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id),
destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id)
)
name: Fireblocks SDK Python example
- language: javascript
code: >
const payload: TransactionArguments = {
assetId: asset,
source: {
type: sourceType,
id: sourceId || 0
},
destination: {
type: destinationType,
id: String(destinationId)
},
amount: String(amount),
fee: String(fee),
note: "Created by fireblocks SDK"
};
const result = await fireblocks.createTransaction(payload);
name: Fireblocks SDK Javascript example
responses:
"200":
description: A transaction object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateTransactionResponse"
default:
$ref: "#/components/responses/Error"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/TransactionRequest"
"/transactions/estimate_fee":
post:
summary: Estimate transaction fee
description: |
Estimates the transaction fee for a transaction request.
***Note:***
-Supports all Fireblocks assets except ZCash (ZEC).
-For XEM and Chiliz assets, 0 will be returned for all three fee levels, as there is no gas or tip price on these blockchains. You can use the POST /v1/transactions/estimate_fee to see what the exact fee will be for a transaction on this network.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: >
estimated_fee = fireblocks.estimate_fee_for_transaction(
asset_id="BTC",
amount="50",
source=TransferPeerPath(VAULT_ACCOUNT, from_vault_account_id),
destination=DestinationTransferPeerPath(VAULT_ACCOUNT, to_vault_account_id)
)
name: Fireblocks SDK Python example
- language: javascript
code: >
const payload = {
assetId: asset,
source: {
type: sourceType,
id: sourceId || 0
},
destination: {
type: destinationType,
id: destinationId
},
amount
};
const estimatedFee = await fireblocks.estimateFeeForTransaction(payload);
name: Fireblocks SDK Javascript example
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/EstimatedFeeRequest"
responses:
"200":
description: Estimated fees response
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/EstimatedTransactionFeeResponse"
default:
$ref: "#/components/responses/Error"
"/transactions/{txId}":
get:
summary: Find a specific transaction by Fireblocks transaction ID
description: Returns a transaction by ID.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: tx = fireblocks.get_transaction_by_id(txId)
name: Fireblocks SDK Python example
- language: javascript
code: const tx = await fireblocks.getTransactionById(txId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: txId
required: true
example: 00000000-0000-0000-0000-000000000000
description: The ID of the transaction to return
schema:
type: string
minimum: 1
responses:
"200":
description: An Transaction object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/TransactionResponse"
"400":
$ref: "#/components/responses/Error"
default:
$ref: "#/components/responses/Error"
"/transactions/external_tx_id/{externalTxId}/":
get:
summary: Find a specific transaction by external transaction ID
description: Returns transaction by external transaction ID.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: tx = fireblocks.get_transaction_by_external_tx_id(externalTxId)
name: Fireblocks SDK Python example
- language: javascript
code: const tx = await fireblocks.getTransactionByExternalTxId(externalTxId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: externalTxId
example: 00000000-0000-0000-0000-000000000000
required: true
description: The external ID of the transaction to return
schema:
type: string
minimum: 1
responses:
"200":
description: An Transaction object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/TransactionResponse"
default:
$ref: "#/components/responses/Error"
"/transactions/{txId}/set_confirmation_threshold":
post:
summary: Set confirmation threshold by transaction ID
description: Overrides the required number of confirmations for transaction completion by transaction ID.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: set_conf_threshold = fireblocks.set_confirmation_threshold_for_tx_id(body)
name: Fireblocks SDK Python example
- language: javascript
code: const setConfThreshold = await fireblocks.setConfirmationThresholdForTxId(body);
name: Fireblocks SDK Javascript example
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SetConfirmationsThresholdRequest"
parameters:
- in: path
name: txId
required: true
description: The ID of the transaction
schema:
type: string
minimum: 1
responses:
"200":
description: Set successfully
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/SetConfirmationsThresholdResponse"
default:
$ref: "#/components/responses/Error"
"/transactions/{txId}/drop":
post:
summary: Drop ETH transaction by ID
description: Drops a stuck ETH transaction and creates a replacement transaction.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: result = fireblocks.drop_transaction(txId, fee_level)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.dropTransaction(txId, feeLevel);
name: Fireblocks SDK Javascript example
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DropTransactionRequest"
parameters:
- in: header
$ref: "#/components/parameters/X-End-User-Wallet-Id"
- in: path
name: txId
required: true
description: The ID of the transaction
schema:
type: string
minimum: 1
responses:
"200":
description: Created successfully
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/DropTransactionResponse"
default:
$ref: "#/components/responses/Error"
"/transactions/{txId}/cancel":
post:
summary: Cancel a transaction
description: Cancels a transaction by ID.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: result = fireblocks.cancel_transaction_by_id(txId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.cancelTransactionById(txId);
name: Fireblocks SDK Javascript example
parameters:
- in: header
$ref: "#/components/parameters/X-End-User-Wallet-Id"
- in: path
name: txId
required: true
description: The ID of the transaction to cancel
schema:
type: string
minimum: 1
responses:
"200":
description: An Transaction object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/CancelTransactionResponse"
default:
$ref: "#/components/responses/Error"
"/transactions/{txId}/freeze":
post:
summary: Freeze a transaction
description: Freezes a transaction by ID.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: result = fireblocks.freeze_transaction_by_id(txId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.freezeTransactionById(txId);
name: Fireblocks SDK Javascript example
parameters:
- in: header
$ref: "#/components/parameters/X-End-User-Wallet-Id"
- in: path
name: txId
required: true
description: The ID of the transaction to freeze
schema:
type: string
minimum: 1
responses:
"200":
description: freeze response
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/FreezeTransactionResponse"
"/transactions/{txId}/unfreeze":
post:
summary: Unfreeze a transaction
description: Unfreezes a transaction by ID and makes the transaction available again.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: result = fireblocks.unfreeze_transaction_by_id(txId)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.unfreezeTransactionById(txId);
name: Fireblocks SDK Javascript example
parameters:
- in: header
$ref: "#/components/parameters/X-End-User-Wallet-Id"
- in: path
name: txId
required: true
description: The ID of the transaction to unfreeze
schema:
type: string
minimum: 1
responses:
"200":
description: Unfreeze response
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UnfreezeTransactionResponse"
# TXHASH
"/txHash/{txHash}/set_confirmation_threshold":
post:
summary: Set confirmation threshold by transaction hash
description: Overrides the required number of confirmations for transaction completion by transaction hash.
tags:
- Transactions
x-readme:
code-samples:
- language: python
code: set_conf_threshold = fireblocks.set_confirmation_threshold_for_txhash(body)
name: Fireblocks SDK Python example
- language: javascript
code: const setConfThreshold = await fireblocks.setConfirmationThresholdForTxHash(body);
name: Fireblocks SDK Javascript example
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SetConfirmationsThresholdRequest"
parameters:
- in: path
name: txHash
required: true
description: The TxHash
schema:
type: string
minimum: 1
responses:
"200":
description: A list of transactions affected by the change
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/SetConfirmationsThresholdResponse"
default:
$ref: "#/components/responses/Error"
# Payments
#cross-border
"/payments/xb-settlements/configs":
post:
tags:
- Payments - cross-border settlement
summary: Create a new cross-border settlement configuration
description: |
Create a new cross-border settlement configuration. Configurations define the default assets, on-ramps, and off-ramps to use for the cross-border settlement.
A configuration must contain at least two steps - `ON_RAMP` and `VAULT_ACCOUNT`.
All other steps (e.g., `OFF_RAMP`, `FIAT_DESTINATION`, etc.) are optional.
Every step must include the `accountId` to be used, while `inputAssetId` and `outputAssetId` are optional.
If those are not provided, a default value will be used from the Corridor Settings.
If the inputAssetId or the outputAssetId is provided for one of the objects, all assets in the objects must be consistent. For example, if the output asset of ON_RAMP is XLM_USDC_5F3T, then the input asset of the VAULT_ACCOUNT must also be XLM_USDC_5F3T..
You can set a slippage amount for your configuration. Slippage is defined by basis points (bps). This value can be overloaded on execution. If you do not configure a slippage amount, the default slippage of 10000 bps (10%) is used.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementConfigCreationRequestBody"
example:
name: Flow Config Example
corridorId: CO_US
steps:
ON_RAMP:
accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04
VAULT_ACCOUNT:
accountId: "2"
OFF_RAMP:
accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b
conversionSlippageBasisPoints: 75
responses:
"200":
description: Cross-border settlement configuration created successfully
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementConfigCreationResponse"
example:
configId: 074791cc-ef32-4920-8373-95efbeea66c5
corridorId: CO_US
name: Flow Config Example
steps:
ON_RAMP:
accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04
inputAssetId: "COP"
outputAssetId: "USD"
VAULT_ACCOUNT:
accountId: "2"
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
OFF_RAMP:
accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
conversionSlippageBasisPoints: 75
createdAt: 1680625226267
"400":
description: Error creating cross-border request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
get:
tags:
- Payments - cross-border settlement
summary: Get all the cross-border settlement configurations
description: |
Get all the cross-border settlement configurations.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
responses:
"200":
description: Returns all the cross-border settlement configurations
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementGetAllConfigsResponse"
example:
configurations:
- configId: 074791cc-ef32-4920-8373-95efbeea66c5
corridorId: CO_US
name: Flow Config Example
steps:
ON_RAMP:
accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04
inputAssetId: COP
outputAssetId: USD
VAULT_ACCOUNT:
accountId: "2"
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
OFF_RAMP:
accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
conversionSlippageBasisPoints: 75
createdAt: 1680625226267
- configId: a4b0a706-4578-4467-bd5b-a852761dd2aa
corridorId: MX_US
name: MX to US flow
steps:
ON_RAMP:
accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba
inputAssetId: MXN
outputAssetId: USD
VAULT_ACCOUNT:
accountId: "1"
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
OFF_RAMP:
accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
conversionSlippageBasisPoints: 10
createdAt: 1665166171134
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"/payments/xb-settlements/configs/{configId}":
get:
tags:
- Payments - cross-border settlement
summary: Get a specific cross-border settlement configuration
description: |
Get a specific cross-border settlement configuration.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
parameters:
- in: path
name: configId
required: true
description: The cross-border settlement configuration ID.
schema:
type: string
example: 074791cc-ef32-4920-8373-95efbeea66c5
responses:
"200":
description: Returns the requested cross-border settlement configuration
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementGetConfigResponse"
example:
configId: 074791cc-ef32-4920-8373-95efbeea66c5
corridorId: CO_US
name: Flow Config Example
steps:
ON_RAMP:
accountId: 3b7a1451-3453-4c96-a6a5-683cc8971d04
inputAssetId: COP
outputAssetId: USD
VAULT_ACCOUNT:
accountId: "2"
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
OFF_RAMP:
accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
conversionSlippageBasisPoints: 75
createdAt: 1680625226267
"404":
description: No cross-border settlement configuration exists with the provided ID.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
put:
tags:
- Payments - cross-border settlement
summary: Edit a cross-border settlement configuration
description: |
Edit a cross-border settlement configuration.
Editing a configuration does not affect previously executed flows that used the configuration.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
parameters:
- in: path
name: configId
required: true
description: The cross-border settlement configuration ID.
schema:
type: string
example: 074791cc-ef32-4920-8373-95efbeea66c5
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementConfigEditRequestBody"
example:
name: Flow Config Example - Edited
steps:
ON_RAMP:
accountId: e9dec04a-3c57-4052-a89a-288c545f6430
VAULT_ACCOUNT:
accountId: "2"
OFF_RAMP:
accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b
corridorId: CO_US
conversionSlippageBasisPoints: 30
responses:
"200":
description: Cross-border settlement configuration edited successfully
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementConfigEditResponse"
example:
configId: 074791cc-ef32-4920-8373-95efbeea66c5
corridorId: CO_US
name: Flow Config Example - Edited
steps:
ON_RAMP:
accountId: e9dec04a-3c57-4052-a89a-288c545f6430
inputAssetId: COP
outputAssetId: USD
VAULT_ACCOUNT:
accountId: "2"
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
OFF_RAMP:
accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
conversionSlippageBasisPoints: 30
createdAt: 1680625226267
"404":
description: No cross-border settlement configuration exists with the provided ID.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"400":
description: Error creating the cross-border request. Configuration not modified.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
delete:
tags:
- Payments - cross-border settlement
parameters:
- in: path
name: configId
required: true
description: The cross-border settlement configuration ID.
schema:
type: string
example: 074791cc-ef32-4920-8373-95efbeea66c5
summary: Delete a cross-border settlement configuration
description: |
Delete a cross-border settlement configuration.
This does not delete or remove previously executed flows that used this configuration.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
responses:
"200":
description: Cross-border settlement configuration deleted successfully. Returns the deleted configuration.
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementConfigDeletionResponse"
example:
configId: 074791cc-ef32-4920-8373-95efbeea66c5
corridorId: CO_US
name: Flow Config Example - Edited
steps:
ON_RAMP:
accountId: e9dec04a-3c57-4052-a89a-288c545f6430
inputAssetId: COP
outputAssetId: USD
VAULT_ACCOUNT:
accountId: "2"
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
OFF_RAMP:
accountId: f2f74204-93ec-4614-870a-4ea2ad13aa0b
inputAssetId: XLM_USDC_5F3T
outputAssetId: XLM_USDC_5F3T
conversionSlippageBasisPoints: 30
createdAt: 1680625226267
"404":
description: No cross-border settlement configuration exists with the provided ID.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"/payments/xb-settlements/flows":
post:
tags:
- Payments - cross-border settlement
summary: Create a new cross-border settlement flow
description: |
Create a cross-border flow (based on a cross-border configuration) with an amount to transfer.
The assetId is defined by the cross-border configuration.
Creating a flow triggers a calculation of the flow estimations, including FX rates, times, and fees based on the amount provided.
Creating a cross-border flow will not execute the flow.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementCreateFlowRequestBody"
example:
configId: a4b0a706-4578-4467-bd5b-a852761dd2aa
amount: "100"
responses:
"200":
description: Cross-border settlement flow created successfully
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementCreateFlowResponse"
example:
flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3
configId: a4b0a706-4578-4467-bd5b-a852761dd2aa
conversionRate: "0.05481268"
inputAmount:
amount: "100"
assetId: MXN
estimatedOutputAmount:
amount: "5.461268"
assetId: XLM_USDC_5F3T
totalEstimatedFee:
amount: "0.063503"
assetId: XLM_USDC_5F3T
steps:
ON_RAMP:
accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba
inputAmount:
amount: "100"
assetId: MXN
outputAmount:
amount: "5.48126865"
assetId: USD
estimatedFeeAmount:
amount: "0.043503"
assetId: USD
estimatedTime: 10
isSignRequired: false
VAULT_ACCOUNT:
accountId: "1"
inputAmount:
amount: "5.48126865"
assetId: USD
outputAmount:
amount: "5.471268"
assetId: XLM_USDC_5F3T
estimatedFeeAmount:
amount: "0.01"
assetId: XLM_USDC_5F3T
estimatedTime: 63
isSignRequired: true
OFF_RAMP:
accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce
inputAmount:
amount: "5.471268"
assetId: XLM_USDC_5F3T
outputAmount:
amount: "5.461268"
assetId: XLM_USDC_5F3T
estimatedFeeAmount:
amount: "0.01"
assetId: XLM_USDC_5F3T
estimatedTime: 95
isSignRequired: true
totalEstimatedTime: 696
"400":
description: Unable to create cross-border flow, invalid configuration ID.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"/payments/xb-settlements/flows/{flowId}":
get:
tags:
- Payments - cross-border settlement
parameters:
- in: path
name: flowId
required: true
description: The cross-border settlement flow ID.
schema:
type: string
example: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3
summary: Get specific cross-border settlement flow details
description: |
Gets details for a specific cross-border settlement flow
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
responses:
"200":
description: |
Returns cross-border settlement flow details.
For unexecuted flows, a preview object will return, showing the estimated time, amounts, and fees.
Note that this data structure updates as the flow progresses, including the total fees (accumulated), state, and steps.
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementGetFlowResponse"
examples:
not executed:
value:
preview:
flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3
configId: a4b0a706-4578-4467-bd5b-a852761dd2aa
conversionRate: "0.055369"
inputAmount:
amount: "32"
assetId: MXN
estimatedOutputAmount:
amount: "1.741824"
assetId: XLM_USDC_5F3T
totalEstimatedFee:
amount: "0.044063"
assetId: XLM_USDC_5F3T
totalEstimatedTime: 831
steps:
ON_RAMP:
accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba
inputAmount:
amount: "32"
assetId: MXN
outputAmount:
amount: "1.77182407"
assetId: USD
estimatedFeeAmount:
amount: "0.014063"
assetId: USD
estimatedTime: 10
isSignRequired: false
VAULT_ACCOUNT:
accountId: "1"
inputAmount:
amount: "1.77182407"
assetId: XLM_USDC_5F3T
outputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
estimatedFeeAmount:
amount: "0.01"
assetId: XLM_USDC_5F3T
estimatedTime: 111
isSignRequired: true
OFF_RAMP:
accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce
inputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
outputAmount:
amount: "1.751824"
assetId: XLM_USDC_5F3T
estimatedFeeAmount:
amount: "0.01"
assetId: XLM_USDC_5F3T
estimatedTime: 293
isSignRequired: true
in progress:
value:
execution:
flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3
configId: a4b0a706-4578-4467-bd5b-a852761dd2aa
inputAmount:
amount: "32"
assetId: MXN
outputAmount:
amount: "1.471824"
assetId: XLM_USDC_5F3T
totalFee:
amount: "0.004415"
assetId: XLM_USDC_5F3T
initiatedAt: 1684919822759
initiatedBy: a92e87a0-5231-531e-a624-fb29c1283764
state: PROCESSING
selectedConversionSlippage:
basisPoints: 10
reason: FLOW
steps:
ON_RAMP:
id: c1863abf-e7fa-4f3a-908a-bcd6381f7eb4
accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba
status: COMPLETED
inputAmount:
amount: "32"
assetId: MXN
outputAmount:
amount: "1.77182407"
assetId: USD
fee:
amount: "0.014063"
assetId: USD
startedAt: 1684919823052
completedAt: 1684919830456
isSignRequired: false
VAULT_ACCOUNT:
id: 2aa2634d-2bab-44ac-9b4e-36e2e4db5d49
accountId: "1"
status: COMPLETED
inputAmount:
amount: "1.77182407"
assetId: XLM_USDC_5F3T
outputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
fee:
amount: "0.01"
assetId: XLM
startedAt: 1684919831385
completedAt: 1684920680227
isSignRequired: true
OFF_RAMP:
id: b221ed63-a05c-4e78-b2f2-205dcffeabda
accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce
status: PROCESSING
inputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
startedAt: 1684920681088
isSignRequired: true
completed:
value:
execution:
flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3
configId: a4b0a706-4578-4467-bd5b-a852761dd2aa
inputAmount:
amount: "32"
assetId: MXN
outputAmount:
amount: "1.471824"
assetId: XLM_USDC_5F3T
totalFee:
amount: "0.004415"
assetId: XLM_USDC_5F3T
initiatedAt: 1684919822759
initiatedBy: a92e87a0-5231-531e-a624-fb29c1283764
state: COMPLETED
selectedConversionSlippage:
basisPoints: 10
reason: FLOW
steps:
ON_RAMP:
id: b1bec144-c4dd-4ff8-80ed-4204c83dd422
accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba
status: COMPLETED
inputAmount:
amount: "32"
assetId: MXN
outputAmount:
amount: "1.77182407"
assetId: USD
fee:
amount: "0.014063"
assetId: USD
startedAt: 1684919823052
completedAt: 1684919830456
isSignRequired: false
VAULT_ACCOUNT:
id: df7e0103-04cf-4508-9654-aa5e4b90dd50
accountId: "1"
status: COMPLETED
inputAmount:
amount: "1.77182407"
assetId: XLM_USDC_5F3T
outputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
fee:
amount: "0.01"
assetId: XLM
startedAt: 1684919831385
completedAt: 1684920680227
isSignRequired: true
OFF_RAMP:
id: 34c2d597-271a-4c11-937a-3c246f5d39c2
accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce
status: COMPLETED
inputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
outputAmount:
amount: "1.761823"
assetId: XLM_USDC_5F3T
fee:
amount: "0.00001"
assetId: XLM
startedAt: 1684920681088
completedAt: 1684921261453
isSignRequired: true
"404":
description: Invalid flowId.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"/payments/xb-settlements/flows/{flowId}/actions/execute":
post:
tags:
- Payments - cross-border settlement
parameters:
- in: path
name: flowId
required: true
description: The cross-border settlement flow ID.
schema:
type: string
example: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3
summary: Execute cross-border settlement flow
description: |
Send a payment flow with 'flowId' for execution.
If a differet slippage configuraion is needed for this execution than configured in the flow configuration, the request body must define the desired slippage configuration for this execution.
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoint includes APIs available only for customers with the Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about the Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementFlowExecutionRequestBody"
example:
conversionSlippageBasisPoints: 10
responses:
"200":
description: Cross-border settlement flow started to execute successfully
content:
application/json:
schema:
$ref: "#/components/schemas/XBSettlementFlowExecutionResponse"
example:
flowId: 98fb5a8b-65ff-4f15-b89c-80910aedbfb3
configId: a4b0a706-4578-4467-bd5b-a852761dd2aa
inputAmount:
amount: "32"
assetId: MXN
outputAmount:
amount: "1.471824"
assetId: XLM_USDC_5F3T
totalFee:
amount: "0.004415"
assetId: XLM_USDC_5F3T
initiatedAt: 1684919822759
initiatedBy: a92e87a0-5231-531e-a624-fb29c1283764
state: PROCESSING
selectedConversionSlippage:
basisPoints: 10
reason: FLOW
steps:
ON_RAMP:
id: c1863abf-e7fa-4f3a-908a-bcd6381f7eb4
accountId: 3d6241ad-879b-4a11-842f-4cee9cd7fbba
status: COMPLETED
inputAmount:
amount: "32"
assetId: MXN
outputAmount:
amount: "1.77182407"
assetId: USD
fee:
amount: "0.014063"
assetId: USD
startedAt: 1684919823052
completedAt: 1684919830456
isSignRequired: false
VAULT_ACCOUNT:
id: 2aa2634d-2bab-44ac-9b4e-36e2e4db5d49
accountId: "1"
status: PROCESSING
inputAmount:
amount: "1.77182407"
assetId: XLM_USDC_5F3T
outputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
fee:
amount: "0.01"
assetId: XLM
startedAt: 1684919831385
isSignRequired: true
OFF_RAMP:
id: b221ed63-a05c-4e78-b2f2-205dcffeabda
accountId: 1cf7f750-117f-4c36-b4ef-14c420d118ce
status: NOT_STARTED
inputAmount:
amount: "1.761824"
assetId: XLM_USDC_5F3T
isSignRequired: true
"400":
description: Error while trying to execute the cross-border flow
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Invalid flowId.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
#Payout
"/payments/payout":
post:
tags:
- Payments - Payout
description: |
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.
Create a payout instruction set.
A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.
The instruction set defines:
- the payment account and its account type (vault, exchange, or fiat).
- the account type (vault account, exchange account, whitelisted address, network connection, fiat account, or merchant account), the amount, and the asset of payment for each payee account.
summary: Create a payout instruction set
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreatePayoutRequest"
example:
paymentAccount:
id: EX_SUB3
type: EXCHANGE_ACCOUNT
instructionSet:
- payeeAccount:
id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3
type: EXTERNAL_WALLET
amount:
amount: "43"
assetId: USDC
- payeeAccount:
id: 3adc1f92-e791-44a8-9aee-7f31c2108b78
type: NETWORK_CONNECTION
amount:
amount: "4423"
assetId: USDC
responses:
"200":
description: The payout instruction set creation succeeded and returns the generated instruction set with a unique payout IDThe payout ID will be used for executing the payout and checking the payout status.
content:
application/json:
schema:
$ref: "#/components/schemas/PayoutResponse"
example:
payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
paymentAccount:
id: EX_SUB3
type: EXCHANGE_ACCOUNT
createdAt: 1645365800
state: REQUESTED
status: REGISTERED
initMethod: API
instructionSet:
- id: 6ea4a016-536b-49af-b1a0-40b343ccf879
name: payee-wallet-name
payeeAccount:
id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3
type: EXTERNAL_WALLET
amount:
amount: "43"
assetId: USDC
state: NOT_STARTED
transactions: []
- id: e783a79b-6acc-4d18-885d-ed533cad8eeb
name: payee-by-network
payeeAccount:
id: 3adc1f92-e791-44a8-9aee-7f31c2108b78
type: NETWORK_CONNECTION
amount:
amount: "4423.23"
assetId: USDC
state: NOT_STARTED
transactions: []
"400":
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"/payments/payout/{payoutId}/actions/execute":
post:
tags:
- Payments - Payout
summary: Execute a payout instruction set
description: |
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.
Execute a payout instruction set.
The instruction set will be verified and executed.
Source locking
If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.
You cannot execute the same payout instruction set more than once.
parameters:
- name: payoutId
description: the payout id received from the creation of the payout instruction set
in: path
schema:
type: string
required: true
example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
responses:
"200":
description: Executed the payout instruction set
content:
application/json:
schema:
$ref: "#/components/schemas/DispatchPayoutResponse"
example:
payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
"400":
description: Bad request
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
401:
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"/payments/payout/{payoutId}":
get:
tags:
- Payments - Payout
summary: Get the status of a payout instruction set
description: |
**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.
These endpoints are currently in beta and might be subject to changes.
If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.
parameters:
- name: payoutId
description: the payout id received from the creation of the payout instruction set
in: path
schema:
type: string
required: true
example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
responses:
200:
description: Returns the current status of the payout instruction set, including the status of each payout instruction and the transactions created in the process.
content:
application/json:
schema:
$ref: "#/components/schemas/PayoutResponse"
example:
payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
paymentAccount:
id: EX_SUB3
type: EXCHANGE_ACCOUNT
createdAt: 1645365800
state: FINALIZED
status: "DONE"
initMethod: API
instructionSet:
- id: 6ea4a016-536b-49af-b1a0-40b343ccf879
name: payee-wallet-name
payeeAccount:
id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3
type: EXTERNAL_WALLET
amount:
amount: "4312"
assetId: USDC
state: COMPLETED
transactions:
- id: 35a4b10c-1f83-4f0b-ba2a-da0e73be2d6e
state: COMPLETED
timestamp: 1645367429
- id: e783a79b-6acc-4d18-885d-ed533cad8eeb
name: payee-by-network
payeeAccount:
id: 3adc1f92-e791-44a8-9aee-7f31c2108b78
type: NETWORK_CONNECTION
amount:
amount: "4423.23"
assetId: USDC
state: COMPLETED
transactions:
- id: 4505e7d9-bfc7-41bc-9750-54311fcbbf26
state: COMPLETED
timestamp: 1645367449
reportUrl: https://some-url.com/reports/cc5777c1-75a9-4337-aebd-f1f5a40a9391
404:
description: No payout with the given payout ID exists.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
401:
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/payments/workflow_config:
post:
x-internal: true
tags:
- Payments - Flows
description: >-
Generate a new configuration ID to be used for initiating executions in
subsequent phases. This configuration should include the operations you
intend to incorporate into the workflow, such as TRANSFER, CONVERT, and
DISBURSE, in addition to your pre-screening preferences, which are
disabled by default.
summary: Create payment flow configuration
parameters:
- $ref: "#/components/parameters/X-Idempotency-Key"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateWorkflowConfigurationRequest"
responses:
"202":
description: Configuration is being generated
content:
application/json:
schema:
$ref: "#/components/schemas/WorkflowConfiguration"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
operationId: createFlowConfiguration
/payments/workflow_config/{configId}:
get:
x-internal: true
tags:
- Payments - Flows
description: >-
Retrieve a previously created workflow configuration using the specified
"configId".
summary: Retrieve workflow configuration
parameters:
- name: configId
in: path
schema:
type: string
required: true
responses:
"200":
description: Returns a workflow configuration
content:
application/json:
schema:
$ref: "#/components/schemas/WorkflowConfiguration"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
operationId: getFlowConfiguration
delete:
x-internal: true
tags:
- Payments - Flows
description: Delete a configuration using the specified "configId".
summary: Delete workflow configuration
parameters:
- name: configId
in: path
schema:
type: string
required: true
responses:
"200":
description: The specified configuration has been deleted successfully.
content:
application/json:
schema:
$ref: "#/components/schemas/WorkflowConfigurationId"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
operationId: deleteFlowConfiguration
/payments/workflow_execution:
post:
x-internal: true
tags:
- Payments - Flows
description: >-
Validate the "workflow-config" previously created by utilizing the
unique "configId". This step requires the mandatory field amount, and
allows for modifications to other fields defined via the
"workflow-config" endpoint, including pre-screening preferences. A
response containing the "workflowExecutionId" and detailing the
validation status will be provided. Execution is ready when the
"workflow-execution" status is READY_FOR_LAUNCH, at which point it can
be initiated with "POST
/workflow-execution/{workflowExecutionId}/actions/execute".
summary: Create workflow execution
parameters:
- $ref: "#/components/parameters/X-Idempotency-Key"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateWorkflowExecutionRequest"
responses:
"200":
description: Workflow execution entity has been created successfully.
content:
application/json:
schema:
$ref: "#/components/schemas/WorkflowExecution"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
operationId: createFlowExecution
/payments/workflow_execution/{workflowExecutionId}:
get:
x-internal: true
tags:
- Payments - Flows
description: >-
Retrieve details of a previously initiated workflow execution by
specifying the "workflowExecutionId"
summary: Get workflow execution details
parameters:
- name: workflowExecutionId
in: path
schema:
type: string
required: true
responses:
"200":
description: Returns workflow execution by id with preview info
content:
application/json:
schema:
$ref: "#/components/schemas/WorkflowExecution"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
operationId: getFlowExecution
/payments/workflow_execution/{workflowExecutionId}/actions/execute:
post:
x-internal: true
tags:
- Payments - Flows
description: >-
Launch the execution of a pre-configured workflow, identified by
"workflowExecutionId", once it reaches the READY_FOR_LAUNCH state. The
workflow undergoes several phases during execution -
EXECUTION_IN_PROGRESS - Marks the start of the workflow execution.
EXECUTION_COMPLETED or EXECUTION_FAILED - Indicates the execution has
reached a final state.
summary: Execute the payments workflow
parameters:
- name: workflowExecutionId
in: path
schema:
type: string
required: true
- $ref: "#/components/parameters/X-Idempotency-Key"
responses:
"200":
description: Workflow execution has been executed
content:
application/json:
schema:
$ref: "#/components/schemas/WorkflowExecution"
"401":
description: Unauthorized. Missing / invalid JWT token in Authorization header.
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
operationId: launchFlowExecution
# Gas Station
"/gas_station":
get:
summary: Get gas station settings
description: Returns gas station settings and ETH balance.
tags:
- Gas stations
x-readme:
code-samples:
- language: python
code: gas_station_info = fireblocks.get_gas_station_info()
name: Fireblocks SDK Python example
- language: javascript
code: const gasStationInfo = await fireblocks.gasStationInfo();
name: Fireblocks SDK Javascript example
responses:
"200":
description: Gas Station properties
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/GasStationPropertiesResponse"
default:
$ref: "#/components/responses/Error"
"/gas_station/{assetId}":
get:
summary: Get gas station settings by asset
description: Returns gas station settings and balances for a requested asset.
tags:
- Gas stations
x-readme:
code-samples:
- language: python
code: gas_station_info = fireblocks.get_gas_station_info(asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const gasStationInfo = await fireblocks.gasStationInfo(assetId);
name: Fireblocks SDK Javascript example
parameters:
- in: path
required: true
name: assetId
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
responses:
"200":
description: Gas Station properties
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/GasStationPropertiesResponse"
default:
$ref: "#/components/responses/Error"
"/gas_station/configuration":
put:
summary: Edit gas station settings
description: Configures gas station settings for ETH.
tags:
- Gas stations
x-readme:
code-samples:
- language: python
code: gas_station = fireblocks.set_gas_station_configuration(gas_threshold, gas_cap, max_gas_price, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const gasStation = await fireblocks.setGasStationConfiguration(gasThreshold, gasCap, maxGasPrice)
name: Fireblocks SDK Javascript example
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GasStationConfiguration"
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
"/gas_station/configuration/{assetId}":
put:
summary: Edit gas station settings for an asset
description: Configures gas station settings for a requested asset.
tags:
- Gas stations
x-readme:
code-samples:
- language: python
code: gas_station = fireblocks.set_gas_station_configuration(gas_threshold, gas_cap, max_gas_price, asset_id)
name: Fireblocks SDK Python example
- language: javascript
code: const gasStation = await fireblocks.setGasStationConfiguration(gasThreshold, gasCap, maxGasPrice, assetId)
name: Fireblocks SDK Javascript example
parameters:
- in: path
required: true
name: assetId
description: The ID of the asset
schema:
type: string
x-fb-entity: asset
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/GasStationConfiguration"
responses:
"201":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
# USER GROUPS
"/management/user_groups":
get:
operationId: getUserGroups
summary: List user groups
description: |
Get all user groups in the current workspace.
tags:
- Workspace Management
responses:
"200":
description: List of the users groups in the workspace
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UserGroupsResponse"
default:
$ref: "#/components/responses/Error"
post:
operationId: createUserGroup
summary: Create a user group
description: |
Create a new user group.
tags:
- Workspace Management
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroupCreateRequest"
responses:
"201":
description: User group created and pending approval
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateUserGroupResponse"
default:
$ref: "#/components/responses/Error"
"/management/user_groups/{groupId}":
get:
operationId: getUserGroup
summary: Get a user group by ID
description: |
Get a user group by ID.
tags:
- Workspace Management
parameters:
- in: path
required: true
name: groupId
description: The ID of the users group
schema:
type: string
responses:
"200":
description: Users group
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UserGroupResponse"
default:
$ref: "#/components/responses/Error"
put:
operationId: updateUserGroup
summary: Update user group
description: |
Update a users group by ID.
**Note**:
- Please note that this endpoint is available only for API keys with Admin permissions.
tags:
- Workspace Management
parameters:
- in: path
required: true
name: groupId
description: The ID of the users group
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UserGroupUpdateRequest"
responses:
"200":
description: Users group updated and the changes are pending approval
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/UserGroupCreateResponse"
default:
$ref: "#/components/responses/Error"
delete:
operationId: deleteUserGroup
summary: Delete user group
description: |
Delete a user group by ID.
**Note**:
- Please note that this endpoint is available only for API keys with Admin permissions.
tags:
- Workspace Management
parameters:
- in: path
required: true
name: groupId
description: The ID of the users group
schema:
type: string
responses:
"204":
description: Request to delete users group submitted for approval
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
# USERS
"/users":
get:
summary: List users
description: |
List all users for the workspace.
Please note that this endpoint is available only for API keys with Admin permissions.
tags:
- Users
x-readme:
code-samples:
- language: python
code: users = fireblocks.get_users()
name: Fireblocks SDK Python example
- language: javascript
code: const users = await fireblocks.getUsers();
name: Fireblocks SDK Javascript example
responses:
"200":
description: List of users
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/GetUsersResponse"
default:
$ref: "#/components/responses/Error"
"/audits":
get:
summary: Get audit logs
tags:
- Audit Logs
x-readme:
code-samples:
- language: python
code: audits = fireblocks.get_audit_logs(TimePeriod.DAY)
name: Fireblocks SDK Python example
- language: javascript
code: const audits = await fireblocks.getAuditsLogs(TimePeriod.DAY);
name: Fireblocks SDK Javascript example
parameters:
- in: query
name: timePeriod
required: true
description: The last time period to fetch audit logs
schema:
type: string
enum:
- DAY
- WEEK
responses:
"200":
description: Audit logs from requested time period
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
/management/audit_logs:
get:
summary: Get audit logs
description: Get audit logs
operationId: getAudits
tags:
- Workspace Management
parameters:
- in: query
name: timePeriod
required: false
description: The final time period to fetch audit logs (day/week)
schema:
type: string
enum:
- DAY
- WEEK
- in: query
name: cursor
required: false
description: The next ID to start fetching audit logs from
schema:
type: string
responses:
"200":
description: Audit logs from the requested time period onward
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
default:
$ref: "#/components/responses/Error"
# OFF EXCHANGE V2(collateral)
"/off_exchange/add":
post:
summary: add collateral
description: add collateral, create deposit request
tags:
- Off exchanges
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AddCollateralRequestBody"
responses:
"200":
description: A transaction object
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateTransactionResponse"
default:
$ref: "#/components/responses/Error"
"/off_exchange/remove":
post:
summary: remove collateral
description: remove collateral, create withdraw request
tags:
- Off exchanges
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RemoveCollateralRequestBody"
responses:
"200":
description: A transaction object
content:
"*/*":
schema:
$ref: "#/components/schemas/CreateTransactionResponse"
default:
$ref: "#/components/responses/Error"
"/off_exchange/settlements/trader":
post:
summary: create settlement for a trader
description: create settlement for a trader
tags:
- Off exchanges
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SettlementRequestBody"
responses:
"201":
description: A settlement object
content:
"*/*":
schema:
$ref: "#/components/schemas/SettlementResponse"
default:
$ref: "#/components/responses/Error"
"/off_exchange/settlements/transactions":
get:
summary: get settlements transactions from exchange
description: get settlements transactions from exchange
tags:
- Off exchanges
parameters:
- in: query
name: mainExchangeAccountId
required: true
schema:
type: string
responses:
"200":
description: A settlement transactions
content:
"*/*":
schema:
$ref: "#/components/schemas/GetSettlementResponse"
default:
$ref: "#/components/responses/Error"
"/off_exchange/collateral_accounts/{mainExchangeAccountId}":
get:
summary: Find a specific collateral exchange account
description: Returns a collateral account by mainExchangeAccountId.
tags:
- Off exchanges
parameters:
- in: path
name: mainExchangeAccountId
required: true
description: The id of the main exchange account for which the requested collateral account is associated with
schema:
type: string
minimum: 1
responses:
"200":
description: An ExchangeAccount object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ExchangeAccount"
default:
$ref: "#/components/responses/Error"
# WEBHOOKS
"/webhooks/resend":
post:
summary: Resend failed webhooks
description: Resends all failed webhook notifications.
tags:
- Webhooks
x-readme:
code-samples:
- language: python
code: result = fireblocks.resend_webhooks()
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.resendWebhooks();
name: Fireblocks SDK Javascript example
responses:
"200":
description: OK
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/ResendWebhooksResponse"
default:
$ref: "#/components/responses/Error"
"/webhooks/resend/{txId}":
post:
summary: Resend failed webhooks for a transaction by ID
description: Resends failed webhook notifications for a transaction by ID.
tags:
- Webhooks
x-readme:
code-samples:
- language: python
code: result = fireblocks.resend_transaction_webhooks_by_id(txId, resend_created, resend_status_updated)
name: Fireblocks SDK Python example
- language: javascript
code: const result = await fireblocks.resendTransactionWebhooksById(txId, resendCreated, resendStatusUpdated);
name: Fireblocks SDK Javascript example
parameters:
- in: path
name: txId
required: true
description: The ID of the transaction for webhooks
schema:
type: string
minimum: 1
requestBody:
required: true
content:
application/json:
schema:
properties:
resendCreated:
type: boolean
resendStatusUpdated:
type: boolean
responses:
"200":
description: OK
headers: *req-id-header
default:
$ref: "#/components/responses/Error"
# NFTs
/nfts/ownership/tokens:
put:
operationId: refreshNFTOwnershipByVault
summary: Refresh vault account tokens
description: |
Updates all tokens and balances per blockchain and vault account.
parameters:
- name: blockchainDescriptor
required: true
in: query
description: Blockchain descriptor filter
schema:
enum:
- ETH
- ETH_TEST3
- ETH_TEST5
- ETH_TEST6
- POLYGON
- POLYGON_TEST_MUMBAI
- BASECHAIN_ETH
type: string
- name: vaultAccountId
required: true
in: query
description: Vault account filter
schema:
type: string
responses:
"202":
description: ""
headers: *req-id-header
tags:
- NFTs
get:
operationId: getOwnedNFTs
summary: List all owned tokens (paginated)
description: |
Returns all tokens and their data in your workspace.
parameters:
- name: blockchainDescriptor
required: false
in: query
description: Blockchain descriptor filter
schema:
enum:
- ETH
- ETH_TEST3
- ETH_TEST5
- ETH_TEST6
- POLYGON
- POLYGON_TEST_MUMBAI
- XTZ
- XTZ_TEST
- BASECHAIN_ETH
type: string
- name: vaultAccountIds
required: false
in: query
description: >-
A comma separated list of Vault Account IDs. Up to 100 are allowed in a single request.
This field will be ignored when walletType=END_USER_WALLET or ncwId is provided.
schema:
type: string
- name: ncwId
required: false
in: query
description: >-
Tenant's Non-Custodial Wallet ID
schema:
type: string
- name: ncwAccountIds
required: false
in: query
description: >-
A comma separated list of Non-Custodial account IDs. Up to 100 are allowed in a single request.
This field will be ignored when walletType=VAULT_ACCOUNT or ncwId is not provided.
schema:
type: string
- name: walletType
required: false
in: query
description: Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`.
schema:
default: VAULT_ACCOUNT
enum:
- VAULT_ACCOUNT
- END_USER_WALLET
type: string
- name: ids
required: false
in: query
description: >-
A comma separated list of NFT IDs. Up to 100 are allowed in a single
request.
schema:
type: string
- name: collectionIds
required: false
in: query
description: >-
A comma separated list of collection IDs. Up to 100 are allowed in a
single request.
schema:
type: string
- name: pageCursor
required: false
in: query
description: Page cursor to fetch
schema:
type: string
- name: pageSize
required: false
in: query
description: Items per page (max 100)
schema:
minimum: 1
maximum: 100
type: number
- name: sort
required: false
in: query
description: >-
Sort by param, it can be one param or a list of params separated by
comma
schema:
type: array
items:
type: string
enum:
- ownershipLastUpdateTime
- name
- collection.name
- blockchainDescriptor
- name: order
required: false
in: query
description: >-
Order direction, it can be `ASC` for ascending or `DESC` for
descending
schema:
default: ASC
enum:
- DESC
- ASC
type: string
- name: status
required: false
in: query
description: Token ownership status
schema:
default: LISTED
enum:
- LISTED
- ARCHIVED
type: string
- name: search
required: false
in: query
description: >-
Search owned tokens and their collections. Possible criteria for search:
token name and id within the contract/collection, collection name, blockchain descriptor and name.
schema:
maximum: 100
type: string
- name: spam
required: false
in: query
description: Token ownership spam status.
schema:
enum:
- "true"
- "false"
- all
type: string
responses:
"200":
description: ""
headers: *req-id-header
content:
application/json:
schema:
properties:
paging:
$ref: "#/components/schemas/Paging"
data:
type: array
items:
$ref: "#/components/schemas/TokenOwnershipResponse"
tags:
- NFTs
/nfts/ownership/assets:
get:
operationId: listOwnedTokens
summary: List all distinct owned tokens (paginated)
description: |
Returns all owned distinct tokens (for your tenant) and their data in your workspace.
parameters:
- name: ncwId
required: false
in: query
description: >-
Tenant's Non-Custodial Wallet ID
schema:
type: string
- name: walletType
required: false
in: query
description: >-
Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`
schema:
default: VAULT_ACCOUNT
enum:
- VAULT_ACCOUNT
- END_USER_WALLET
type: string
- name: pageCursor
required: false
in: query
description: Page cursor to fetch
schema:
type: string
- name: pageSize
required: false
in: query
description: Items per page (max 100)
schema:
minimum: 1
maximum: 100
type: number
- name: sort
required: false
in: query
description: >-
Sort by param, it can be one param or a list of params separated by
comma
schema:
type: array
items:
type: string
enum:
- name
- name: order
required: false
in: query
description: >-
Order direction, it can be `ASC` for ascending or `DESC` for
descending
schema:
default: ASC
enum:
- DESC
- ASC
type: string
- name: status
required: false
in: query
description: Token ownership status
schema:
default: LISTED
enum:
- LISTED
- ARCHIVED
type: string
- name: search
required: false
in: query
description: >-
Search owned tokens by token name
schema:
maximum: 100
type: string
- name: spam
required: false
in: query
description: Token ownership spam status.
schema:
enum:
- "true"
- "false"
- all
type: string
responses:
"200":
description: ""
headers: *req-id-header
content:
application/json:
schema:
properties:
paging:
$ref: "#/components/schemas/Paging"
data:
type: array
items:
$ref: "#/components/schemas/TokenResponse"
tags:
- NFTs
/nfts/ownership/collections:
get:
operationId: listOwnedCollections
summary: List owned collections (paginated)
description: |
Returns all collections in your workspace
parameters:
- name: ncwId
required: false
in: query
description: Tenant's Non-Custodial Wallet ID
schema:
type: string
- name: walletType
required: false
in: query
description: Wallet type, it can be `VAULT_ACCOUNT` or `END_USER_WALLET`
schema:
default: VAULT_ACCOUNT
enum:
- VAULT_ACCOUNT
- END_USER_WALLET
type: string
- name: search
required: false
in: query
description: >-
Search owned collections. Possible criteria for search: collection name, collection contract address.
schema:
maximum: 100
type: string
- name: pageCursor
required: false
in: query
description: Page cursor to fetch
schema:
type: string
- name: pageSize
required: false
in: query
description: Items per page (max 100)
schema:
minimum: 1
maximum: 100
type: number
- name: sort
required: false
in: query
description: >-
Sort by param, it can be one param or a list of params separated by
comma
schema:
type: array
items:
type: string
enum:
- name
- name: order
required: false
in: query
description: >-
Order direction, it can be `ASC` for ascending or `DESC` for
descending
schema:
default: ASC
enum:
- DESC
- ASC
type: string
- name: status
required: false
in: query
description: Token ownership status
schema:
default: LISTED
enum:
- LISTED
- ARCHIVED
type: string
responses:
"200":
description: ""
headers: *req-id-header
content:
application/json:
schema:
properties:
paging:
$ref: "#/components/schemas/Paging"
data:
type: array
items:
$ref: "#/components/schemas/CollectionOwnershipResponse"
tags:
- NFTs
/nfts/tokens/{id}:
put:
operationId: refreshNFTMetadata
summary: Refresh token metadata
description: |
Updates the latest token metadata.
parameters:
- name: id
required: true
in: path
description: NFT ID
example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd
schema:
type: string
responses:
"202":
description: ""
headers: *req-id-header
tags:
- NFTs
get:
operationId: getNFT
summary: List token data by ID
description: |
Returns the requested token data.
parameters:
- name: id
required: true
in: path
description: NFT ID
example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd
schema:
type: string
responses:
"200":
description: ""
headers: *req-id-header
content:
application/json:
schema:
$ref: "#/components/schemas/TokenResponse"
tags:
- NFTs
/nfts/tokens:
get:
operationId: getNFTs
summary: List tokens by IDs
description: |
Returns the requested tokens data.
parameters:
- name: ids
required: true
in: query
description: >-
A comma separated list of NFT IDs. Up to 100 are allowed in a single
request.
schema:
type: string
- name: pageCursor
required: false
in: query
description: Page cursor to fetch
schema:
type: string
- name: pageSize
required: false
in: query
description: Items per page (max 100)
schema:
minimum: 1
maximum: 100
type: number
- name: sort
required: false
in: query
description: >-
Sort by param, it can be one param or a list of params separated by
comma
schema:
type: array
items:
type: string
enum:
- collection.name
- name
- blockchainDescriptor
- name: order
required: false
in: query
description: >-
Order direction, it can be `ASC` for ascending or `DESC` for
descending
schema:
default: ASC
enum:
- DESC
- ASC
type: string
responses:
"200":
description: ""
headers: *req-id-header
content:
application/json:
schema:
properties:
paging:
$ref: "#/components/schemas/Paging"
data:
type: array
items:
$ref: "#/components/schemas/TokenResponse"
tags:
- NFTs
/nfts/ownership/tokens/{id}/status:
put:
operationId: updateTokenOwnershipStatus
summary: Update token ownership status
description: |
Updates token status for a tenant, in all tenant vaults.
parameters:
- name: id
required: true
in: path
description: NFT ID
example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateTokenOwnershipStatusDto"
responses:
"200":
description: ""
headers: *req-id-header
tags:
- NFTs
/nfts/ownership/tokens/status:
put:
operationId: updateTokensOwnershipStatus
summary: Update tokens ownership status
description: Updates tokens status for a tenant, in all tenant vaults.
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/TokenOwnershipStatusUpdatePayload"
responses:
"200":
description: All token statuses have been updated
headers: *req-id-header
"400":
description: Invalid data sent
headers: *req-id-header
"404":
description: When ownership for token ID is not found
headers: *req-id-header
tags:
- NFTs
/api/v1/nfts/ownership/tokens/spam:
put:
operationId: updateTokensOwnershipSpam
summary: Update tokens ownership spam statuses
description: Updates tokens spam value for a tenant, in all tenant vaults.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/TokenOwnershipSpamUpdatePayload"
responses:
"200":
description: All token spam values have been updated
headers: *req-id-header
"400":
description: "Invalid data sent"
headers: *req-id-header
"401":
description: ""
headers: *req-id-header
"404":
description: When ownership for token ID is not found
headers: *req-id-header
tags:
- NFTs
x-readme:
code-samples:
- language: python
code: >
fireblocks.update_nft_token_ownerships_spam_status([{ assetId: "NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd", spam: true }]);
name: Fireblocks SDK Python example
- language: javascript
code: >
await fireblocks.updateNFTTokenOwnershipSpamStatus([{ assetId: "NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd", spam: true }]);
name: Fireblocks SDK Javascript example
# WalletLink
/connections:
get:
operationId: get
summary: List all open dApp connections
description: List all open dApp connections.
parameters:
- name: order
required: false
in: query
description: List order; ascending or descending.
schema:
type: string
enum:
- ASC
- DESC
default: ASC
- name: filter
required: false
in: query
description: Parsed filter object
examples:
object:
summary: The filter object
description: ""
value:
id: string
userId: string
vaultAccountId: number
connectionMethod: string
feeLevel: string
appUrl: string
appName: string
stringified:
summary: The stringified parsed object
description: >-
About stringified parsed objects:
* Each key-value pair is separated by '=', and each pair is
separated by ',' (you can use [`qs`](https://www.npmjs.com/package/qs) package for this)
value: >-
id=string,userId=string,vaultAccountId=number,connectionMethod=string,feeLevel=string,appUrl=string,appName=string
schema:
type: object
properties:
id:
type: string
userId:
type: string
vaultAccountId:
type: number
connectionMethod:
type: string
feeLevel:
type: string
appUrl:
type: string
appName:
type: string
- name: sort
required: false
in: query
description: Property to sort dApp connections by.
schema:
type: string
enum:
- id
- userId
- vaultAccountId
- createdAt
- feeLevel
- appUrl
- appName
default: createdAt
- name: pageSize
required: false
in: query
description: Amount of results to return in the next page.
schema:
type: number
default: 10
maximum: 50
- name: next
required: false
in: query
description: Cursor to the next page
schema:
type: string
responses:
"200":
description: ""
headers: *req-id-header
content:
application/json:
schema:
$ref: "#/components/schemas/GetConnectionsResponse"
"400":
description: Query parameters were invalid
headers: *req-id-header
"500":
description: Something went wrong
headers: *req-id-header
tags:
- WalletLink
/connections/wc:
post:
operationId: create
summary: Create a new dApp connection
description: |-
Create a new dApp connection.
* Note: After this succeeds, make a request to `PUT /v1/connections/wc/{id}` (below) to approve or reject the new dApp connection.
parameters: []
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/CreateConnectionRequest"
- $ref: "#/components/schemas/CreateNcwConnectionRequest"
responses:
"201":
description: dApp connection initiated successfully
headers: *req-id-header
content:
application/json:
schema:
$ref: "#/components/schemas/CreateConnectionResponse"
"400":
description: Invalid data sent
headers: *req-id-header
"500": &ref_0
description: Something went wrong
headers: *req-id-header
tags: &ref_1
- WalletLink
/connections/wc/{id}:
put:
operationId: submit
summary: Respond to a pending dApp connection request
description: >-
Submit a response to *approve* or *reject* an initiated dApp connection.
* Note: This call is used to complete your `POST /v1/connections/wc/` request.
After this succeeds, your new dApp connection is created and functioning.
parameters:
- name: id
description: The ID of the initiated dApp connection to approve.
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/RespondToConnectionRequest"
responses:
"200":
description: Connection submitted successfully
headers: *req-id-header
"400":
description: Invalid data sent
headers: *req-id-header
"404":
description: Connection not found
headers: *req-id-header
"500": *ref_0
tags: *ref_1
delete:
operationId: remove
summary: Remove an existing dApp connection
description: Remove an existing dApp connection
parameters:
- name: id
description: The ID of the existing dApp connection to remove.
required: true
in: path
schema:
type: string
responses:
"200":
description: Connection removed successfully
headers: *req-id-header
"404":
description: Connection not found
headers: *req-id-header
"500": *ref_0
tags: *ref_1
# Travel Rule
/screening/travel_rule/transaction/validate:
post:
operationId: TravelRuleApiController_validate
summary: Validate Travel Rule Transaction
description: |-
Validate Travel Rule transactions.
Checks what beneficiary VASP details are required by your jurisdiction and the beneficiary's jurisdiction.
**Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available.
To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com).
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleValidateTransactionRequest"
responses:
"200":
description: Transaction validated successfully
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleValidateTransactionResponse"
"400":
description: Invalid request body
"500":
description: Internal server error
tags: &ref_3
- Travel Rule (Beta)
/screening/travel_rule/transaction/validate/full:
post:
operationId: TravelRuleApiController_validateFull
summary: Validate Full Travel Rule Transaction
description: |-
Validate Full Travel Rule transactions.
Checks for all required information on the originator and beneficiary VASPs.
**Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available.
To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com).
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleValidateFullTransactionRequest"
responses:
"200":
description: Transaction validated successfully
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleValidateTransactionResponse"
"400":
description: Invalid request body
"500":
description: Internal server error
tags: *ref_3
/screening/travel_rule/vasp/{did}:
get:
operationId: TravelRuleApiController_findVasp
summary: Get VASP details
description: |-
Get VASP Details.
Returns information about a VASP that has the specified DID.
**Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available.
To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com).
parameters:
- name: did
required: true
in: path
schema:
type: string
- name: fields
required: false
in: query
description: CSV of fields to return (all, "blank" or see list of all field names below)
schema:
type: string
responses:
"200":
description: Transaction validated successfully
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleVASP"
"400":
description: Invalid request body
"500":
description: Internal server error
tags: *ref_3
/screening/travel_rule/vasp:
get:
operationId: TravelRuleApiController_findAllVasp
summary: Get All VASPs
description: |-
Get All VASPs.
Returns a list of VASPs. VASPs can be searched and sorted and results are paginated.
**Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available.
To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com).
parameters:
- name: order
required: false
in: query
description: Field to order by
schema:
type: string
- name: per_page
required: false
in: query
description: Records per page
schema:
type: number
- name: page
required: false
in: query
description: Page number
schema:
type: number
- name: fields
required: false
in: query
description: CSV of fields to return (all, "blank" or see list of all field names below)
schema:
type: string
responses:
"200":
description: Get all VASPs
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleGetAllVASPsResponse"
tags: *ref_3
/screeening/travel_rule/vasp/update:
put:
operationId: TravelRuleApiController_updateVasp
summary: Add jsonDidKey to VASP details
description: |-
Update VASP Details.
Updates a VASP with the provided parameters. Use this endpoint to add your public jsonDIDkey generated by Notabene.
**Note:** The reference content in this section documents the Travel Rule beta endpoint. The beta endpoint includes APIs that are currently in preview and aren't yet generally available.
To enroll in the beta and enable this endpoint, contact your Fireblocks Customer Success Manager or send an email to [CSM@fireblocks.com](mailto:CSM@fireblocks.com).
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleUpdateVASPDetails"
responses:
"200":
description: VASP updated successfully
content:
application/json:
schema:
$ref: "#/components/schemas/TravelRuleUpdateVASPDetails"
"400":
description: Invalid request body
"500":
description: Internal server error
tags: *ref_3
# LICENSE SERVICE
/management/ota:
post:
operationId: setOtaStatus
summary: Enable or disable transactions to One Time Address (OTA)
description: Enable or disable transactions to One Time Address (OTA)
requestBody:
required: true
content:
application/json:
schema:
properties:
enable:
type: boolean
description: Set true or false to enable or disable One Time Address (OTA)
responses:
"202":
description: Successfully updated One Time Address (OTA) status
"400":
description: Bad request
"409":
description: Similar request already pending
"500":
description: Internal server error
tags:
- Workspace Management
get:
operationId: getOtaStatus
summary: Return status of One Time Address (OTA) enabled
description: Returns current One Time Address (OTA) status
responses:
"200":
content:
application/json:
schema:
properties:
enabled:
type: boolean
description: Current One Time Address (OTA) status
description: Current One Time Address (OTA) status
"404":
description: Configuration not found for tenant
tags:
- Workspace Management
/management/workspace_status:
get:
operationId: getWorkspaceStatus
summary: Return current workspace status
description: |
Returns the status of the current workspace.
responses:
"200":
content:
application/json:
schema:
properties:
status:
type: string
description: Current workspace status
description: Current workspace status
"404":
description: Workspace not found
tags:
- Workspace Management
# POLICY EDITOR
/tap/active_policy:
get:
summary: Get the active policy and its validation
description: |
Returns the active policy and its validation.
**Note:** These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
tags:
- Policy Editor (Beta)
x-readme:
code-samples:
- language: python
code: policy = fireblocks.get_active_policy()
name: Fireblocks SDK Python example
- language: javascript
code: const policy = await fireblocks.getActivePolicy();
name: Fireblocks SDK Javascript example
responses:
"200":
description: A policy object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/PolicyAndValidationResponse"
default:
$ref: "#/components/responses/Error"
/tap/draft:
get:
summary: Get the active draft
description: |
Returns the active draft and its validation.
**Note:** These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
tags:
- Policy Editor (Beta)
x-readme:
code-samples:
- language: python
code: policy = fireblocks.get_draft()
name: Fireblocks SDK Python example
- language: javascript
code: const policy = await fireblocks.getDraft();
name: Fireblocks SDK Javascript example
responses:
"200":
description: A draft validation response object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/DraftReviewAndValidationResponse"
default:
$ref: "#/components/responses/Error"
put:
summary: Update the draft with a new set of rules
description: |
Update the draft and return its validation.
**Note:** These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
tags:
- Policy Editor (Beta)
x-readme:
code-samples:
- language: python
code: policy = fireblocks.update_draft()
name: Fireblocks SDK Python example
- language: javascript
code: const policy = await fireblocks.updateDraft();
name: Fireblocks SDK Javascript example
requestBody:
required: true
content:
application/json:
schema:
properties:
rules:
description: rules to update the draft with
type: array
items:
$ref: "#/components/schemas/PolicyRule"
responses:
"200":
description: A draft validation response object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/DraftReviewAndValidationResponse"
default:
$ref: "#/components/responses/Error"
post:
summary: Send publish request for a certain draft id
description: |
Send publish request of certain draft id and returns the response.
**Note:** These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
tags:
- Policy Editor (Beta)
x-readme:
code-samples:
- language: python
code: policy = fireblocks.publish_draft()
name: Fireblocks SDK Python example
- language: javascript
code: const policy = await fireblocks.publishDraft();
name: Fireblocks SDK Javascript example
requestBody:
required: true
content:
application/json:
schema:
properties:
draftId:
description: draft unique identifier
type: string
responses:
"201":
description: A policy publish result object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/PublishResult"
default:
$ref: "#/components/responses/Error"
/tap/publish:
post:
summary: Send publish request for a set of policy rules
description: |
Send publish request of set of policy rules and returns the response.
**Note:** These endpoints are currently in beta and might be subject to changes.
If you want to participate and learn more about the Fireblocks TAP, please contact your Fireblocks Customer Success Manager or send an email to CSM@fireblocks.com.
tags:
- Policy Editor (Beta)
x-readme:
code-samples:
- language: python
code: policy = fireblocks.publish_rules()
name: Fireblocks SDK Python example
- language: javascript
code: const policy = await fireblocks.publishRules();
name: Fireblocks SDK Javascript example
requestBody:
required: true
content:
application/json:
schema:
properties:
rules:
description: Policy rules to publish
type: array
items:
$ref: "#/components/schemas/PolicyRule"
responses:
"201":
description: A policy publish result object
headers: *req-id-header
content:
"*/*":
schema:
$ref: "#/components/schemas/PublishResult"
default:
$ref: "#/components/responses/Error"
# Workspace Management
/management/users:
get:
summary: Get Console users
description: Gets a list of Console users from the current tenant.
tags:
- Workspace Management
responses:
"200":
description: Get Console users
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
"401":
description: Unauthorized. Missing or invalid JWT token in Authorization header
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"403":
description: Lacking permissions
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
default:
$ref: "#/components/responses/Error"
post:
summary: Create Console user
description: Creates a Fireblocks Console user
tags:
- Workspace Management
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateConsoleUser"
responses:
"204":
description: Users sent for creation
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
"400":
description: Bad request
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
"401":
description: Unauthorized. Missing or invalid JWT token in Authorization header
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"403":
description: Lacking permissions.
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
default:
$ref: "#/components/responses/Error"
/management/api_users:
get:
summary: Get API users (Beta)
description: |
Get API users from the current tenant.
- **Note: This endpoint is in beta and subject to change**
tags:
- Workspace Management
responses:
"200":
description: Get API users
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
"401":
description: Unauthorized. Missing or invalid JWT token in Authorization header.
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"403":
description: Lacking permissions
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
default:
$ref: "#/components/responses/Error"
post:
summary: Creates an API user (Beta)
description: |
Creates an API user.
- **Note: This endpoint is in beta and subject to change**
tags:
- Workspace Management
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateAPIUser"
responses:
"204":
description: User sent for creation
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
"401":
description: Unauthorized. Missing or invalid JWT token in Authorization header.
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"403":
description: Lacking permissions
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
default:
$ref: "#/components/responses/Error"
/management/users/{id}/reset_device:
post:
summary: Reset device
description: Re-links a mobile device to the workspace
tags:
- Workspace Management
parameters:
- in: path
name: id
required: true
description: The user’s ID
schema:
type: string
responses:
"204":
description: User sent for creation
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
"401":
description: Unauthorized. Missing or invalid JWT token in Authorization header.
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"403":
description: Lacking permissions
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
default:
$ref: "#/components/responses/Error"
/management/api_users/{userId}/whitelist_ip_addresses:
get:
summary: Get list of whitelisted IP addresses
description: Gets a list of whitelisted IP addresses, which make it possible to get API calls only from these IP addresses.
tags:
- Workspace Management
parameters:
- in: path
name: userId
required: true
description: The ID of the user
schema:
type: string
responses:
"200":
description: successfully whitelisted
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
"401":
description: Unauthorized. Missing or invalid JWT token in Authorization header.
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
"403":
description: Lacking permissions
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
5XX:
description: Internal error
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
default:
$ref: "#/components/responses/Error"
/smart-transfers:
post:
operationId: createTicket
summary: "Create Ticket"
description: Creates new Smart Transfer ticket
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferCreateTicketDto"
responses:
"201":
description: Smart Transfer ticket was created successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketResponseDto"
- properties:
message:
type: string
description: Success message
example: Successfully created
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
get:
operationId: searchTickets
summary: "Find Ticket"
description: Finds Smart Transfer tickets that match the submitted criteria
parameters:
- name: q
required: false
in: query
description: Search string - counterparty name or asset or ticketId. Optional
schema:
minLength: 1
type: string
- name: statuses
required: false
in: query
description: Ticket statuses for Smart Transfer tickets. Optional
example:
- DRAFT
- OPEN
schema:
default: []
type: array
items:
type: string
enum:
- DRAFT
- PENDING_APPROVAL
- OPEN
- IN_SETTLEMENT
- FULFILLED
- EXPIRED
- CANCELED
- name: networkId
required: false
in: query
description: "NetworkId that is used in the ticket\t. Optional"
schema:
type: string
- name: createdByMe
required: false
in: query
description: Filter created tickets by created by self or by others. Optional
schema:
type: boolean
- name: expiresAfter
required: false
in: query
description: Lower bound of search range. Optional
schema:
format: date-time
type: string
- name: expiresBefore
required: false
in: query
description: Upper bound of search range. Optional
schema:
format: date-time
type: string
- name: type
required: false
in: query
description: >-
Type of transfer. ASYNC executes transfers as they are funded,
ATOMIC executes all terms (legs) as one atomic transfer
schema:
enum:
- ASYNC
type: string
- name: externalRefId
required: false
in: query
description: >-
External ref. ID that workspace can use to identify ticket outside
of Fireblocks system.
schema:
minLength: 1
maxLength: 64
type: string
- name: after
required: false
in: query
description: ID of the record after which to fetch $limit records
schema:
type: string
- name: limit
required: false
in: query
description: Number of records to fetch. By default, it is 100
schema:
minimum: 1
type: number
responses:
"200":
description: Smart Transfer tickets were returned successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketFilteredResponseDto"
- properties:
after:
type: string
description: Unique id of next filtered result
example: 006dc012-7ba7-474b-ada0-c12c24bf059e
data:
type: array
items:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}:
get:
operationId: findTicketById
summary: "Search Tickets by ID"
description: Find Smart Transfer ticket by id
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
responses:
"200":
description: Smart Transfer ticket returned successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/expires-in:
put:
operationId: setTicketExpiration
summary: "Set expiration"
description: Set expiration date on Smart Transfer ticket
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferSetTicketExpirationDto"
responses:
"200":
description: Successfully set expiration date on Smart Transfer ticket
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/external-id:
put:
operationId: setExternalRefId
summary: "Add external ref. ID"
description: Set external id Smart Transfer ticket
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferSetTicketExternalIdDto"
responses:
"200":
description: Successfully set external id on Smart Transfer ticket
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/submit:
put:
operationId: submitTicket
summary: "Submit ticket"
description: >-
Submit Smart Transfer ticket - change status into ready for approval if
auto approval is not turned on, or OPEN if auto approval is on
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferSubmitTicketDto"
responses:
"200":
description: Successfully submitted Smart Transfer ticket
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/fulfill:
put:
operationId: fulfillTicket
summary: "Fund ticket manually"
description: >-
Manually fulfill ticket, in case when all terms (legs) are funded
manually
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
responses:
"200":
description: Successfully fulfilled on Smart Transfer ticket
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/cancel:
put:
operationId: cancelTicket
summary: "Cancel Ticket"
description: Cancel Smart Transfer ticket
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
responses:
"200":
description: Smart Transfer ticket successfully canceled
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/terms:
post:
operationId: createTicketTerm
summary: "Search ticket by leg (term) ID"
description: Creates new smart transfer ticket term (when the ticket status is DRAFT)
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferCreateTicketTermDto"
responses:
"201":
description: Smart Transfer ticket term was created successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketTermResponseDto"
- properties:
message:
type: string
description: Success message
example: Successfully created
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketTermDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/terms/{termId}:
get:
operationId: findTicketTermById
summary: ""
description: Find Smart Transfer ticket term by id
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
- name: termId
required: true
in: path
schema:
type: string
responses:
"200":
description: Smart Transfer ticket term returned successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketTermResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketTermDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
tags:
- Smart Transfer
put:
operationId: updateTicketTerm
summary: "Update ticket leg (term)"
description: Update ticket term (when ticket status is DRAFT)
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
- name: termId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferUpdateTicketTermDto"
responses:
"200":
description: Smart Transfer ticket term updated successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketTermResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketTermDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
tags:
- Smart Transfer
delete:
operationId: removeTicketTerm
summary: "Delete ticket leg (term)"
description: Delete ticket term when ticket is in DRAFT status
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
- name: termId
required: true
in: path
schema:
type: string
responses:
"204":
description: Smart Transfer ticket term successfully removed
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/terms/{termId}/fund:
put:
operationId: fundTicketTerm
summary: "Define funding source"
description: >-
Set funding source for ticket term (in case of ASYNC tickets, this will
execute transfer immediately)
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
- name: termId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferFundTermDto"
responses:
"200":
description: ""
"201":
description: Funding source for ticket term successfully done
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketTermResponseDto"
- properties:
message:
type: string
description: Success message
example: Successfully created
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketTermDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/{ticketId}/terms/{termId}/manually-fund:
put:
operationId: manuallyFundTicketTerm
summary: "Manually add term transaction"
description: Manually set ticket term transaction
parameters:
- name: ticketId
required: true
in: path
schema:
type: string
- name: termId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferManuallyFundTermDto"
responses:
"200":
description: ""
"201":
description: Successfully manually set ticket term transaction
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferTicketTermResponseDto"
- properties:
message:
type: string
description: Success message
example: Successfully created
nullable: true
data:
$ref: "#/components/schemas/SmartTransferTicketTermDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"404":
description: Not found
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferNotFoundResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
/smart-transfers/settings/user-groups:
post:
operationId: setUserGroups
summary: "Set user group"
description: Set Smart Transfer user group
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferSetUserGroupsDto"
responses:
"201":
description: User group settings were set successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferUserGroupsResponseDto"
- properties:
message:
type: string
description: Success message
example: Successfully created
nullable: true
data:
$ref: "#/components/schemas/SmartTransferUserGroupsDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
get:
operationId: getSmartTransferUserGroups
summary: "Get user group"
description: Get Smart Transfer user groups
parameters: []
responses:
"200":
description: User group settings were returned successfully
content:
application/json:
schema:
allOf:
- $ref: "#/components/schemas/SmartTransferUserGroupsResponseDto"
- properties:
message:
type: string
description: Success message
example: Success
nullable: true
data:
$ref: "#/components/schemas/SmartTransferUserGroupsDto"
"403":
description: Unauthorized
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferForbiddenResponse"
"422":
description: Bad Request
content:
application/json:
schema:
$ref: "#/components/schemas/SmartTransferBadRequestResponse"
tags:
- Smart Transfer
components:
responses:
Error:
description: Error Response
headers:
X-Request-ID:
$ref: "#/components/headers/X-Request-ID"
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
headers:
X-Request-ID:
schema:
type: string
description: Unique ID correlated to the API request. Please provide it in any support ticket you create or on Github issues related to Fireblocks SDKs
next-page:
schema:
type: string
description: URL representing a new request to this API endpoint to receive the next page of results.
prev-page:
schema:
type: string
description: URL representing a new request to this API endpoint to receive the previous page of results.
requestBodies:
NewWallet:
content:
application/json:
schema:
properties:
name:
type: string
description: the wallet's display name
WalletAddressProperties:
content:
application/json:
schema:
properties:
address:
type: string
description: The wallet's address (or xpub) of the wallet
securitySchemes:
bearerTokenAuth:
type: http
scheme: bearer
bearerFormat: JWT
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
schemas:
MediaEntityResponse:
type: object
properties:
url:
type: string
description: Cached accessible URL
contentType:
type: string
enum:
- IMAGE
- VIDEO
- ANIMATION
- THREE_D
- TEXT
- GIF
- UNKNOWN_TYPE
- SVG
- AUDIO
description: Media type
required:
- url
- contentType
SpamOwnershipResponse:
type: object
properties:
result:
type: boolean
description: Token spam result
source:
type: string
description: Source of Token's Spam status value
enum:
- OWNER
- SYSTEM
required:
- result
- source
TokenCollectionResponse:
type: object
properties:
id:
type: string
name:
type: string
symbol:
type: string
required:
- id
SpamTokenResponse:
type: object
properties:
result:
type: boolean
description: Token spam result
required:
- result
TokenResponse:
type: object
properties:
id:
type: string
description: The Fireblocks NFT asset id
tokenId:
type: string
description: Token id within the contract/collection
standard:
type: string
description: ERC721 / ERC1155
metadataURI:
type: string
description: URL of the original token JSON metadata
cachedMetadataURI:
type: string
description: URL of the cached token JSON metadata
media:
description: Media items extracted from metadata JSON
type: array
items:
$ref: "#/components/schemas/MediaEntityResponse"
spam:
description: Token spam status
allOf:
- $ref: "#/components/schemas/SpamTokenResponse"
collection:
description: Parent collection information
allOf:
- $ref: "#/components/schemas/TokenCollectionResponse"
blockchainDescriptor:
type: string
enum:
- ETH
- ETH_TEST3
- ETH_TEST5
- ETH_TEST6
- POLYGON
- POLYGON_TEST_MUMBAI
- XTZ
- XTZ_TEST
- BASECHAIN_ETH
description:
type: string
name:
type: string
required:
- id
- tokenId
- standard
- blockchainDescriptor
UpdateTokenOwnershipStatusDto:
type: object
properties:
status:
type: string
enum:
- LISTED
- ARCHIVED
required:
- status
TokenOwnershipStatusUpdatePayload:
type: object
properties:
assetId:
type: string
description: Token's asset id
example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd
x-fb-entity: asset
status:
type: string
description: Token's ownership new status
enum:
- LISTED
- ARCHIVED
example: ARCHIVED
required:
- assetId
- status
TokenOwnershipSpamUpdatePayload:
type: object
properties:
assetId:
type: string
description: Token's asset id
example: NFT-abcdefabcdefabcdefabcdefabcdefabcdefabcd
spam:
type: boolean
description: Token's ownership new spam value
required:
- assetId
- spam
Paging:
type: object
properties:
next:
type: string
description: Cursor to the next page
required:
- next
TokenOwnershipResponse:
type: object
properties:
id:
type: string
description: The Fireblocks NFT asset id
tokenId:
type: string
description: Token id within the contract/collection
standard:
type: string
description: ERC721 / ERC1155
metadataURI:
type: string
description: URL of the original token JSON metadata
cachedMetadataURI:
type: string
description: URL of the cached token JSON metadata
media:
description: Media items extracted from metadata JSON
type: array
items:
$ref: "#/components/schemas/MediaEntityResponse"
spam:
description: Owned Token's Spam status
allOf:
- $ref: "#/components/schemas/SpamOwnershipResponse"
collection:
description: Parent collection information
allOf:
- $ref: "#/components/schemas/TokenCollectionResponse"
balance:
type: string
vaultAccountId:
type: string
ownershipStartTime:
type: number
ownershipLastUpdateTime:
type: number
blockchainDescriptor:
enum:
- ETH
- ETH_TEST3
- ETH_TEST5
- ETH_TEST6
- POLYGON
- POLYGON_TEST_MUMBAI
- XTZ
- XTZ_TEST
- BASECHAIN_ETH
type: string
description:
type: string
name:
type: string
ncwId:
type: string
ncwAccountId:
type: string
status:
type: string
description: Owned Token's status
enum:
- LISTED
- ARCHIVED
required:
- id
- tokenId
- standard
- media
- balance
- vaultAccountId
- ownershipStartTime
- ownershipLastUpdateTime
- blockchainDescriptor
- description
- name
- status
CollectionOwnershipResponse:
type: object
properties:
id:
type: string
description: Fireblocks collection id
name:
type: string
description: Collection name
symbol:
type: string
description: Collection symbol
standard:
type: string
description: Collection contract standard
blockchainDescriptor:
enum:
- ETH
- ETH_TEST3
- ETH_TEST5
- ETH_TEST6
- POLYGON
- POLYGON_TEST_MUMBAI
- XTZ
- XTZ_TEST
- BASECHAIN_ETH
type: string
description: Collection's blockchain
contractAddress:
type: string
description: Collection contract standard
required:
- id
- blockchainDescriptor
WalletAsset:
type: object
properties:
id:
type: string
balance:
type: string
lockedAmount:
type: string
status:
$ref: "#/components/schemas/ConfigChangeRequestStatus"
address:
type: string
tag:
type: string
activationTime:
type: string
ExternalWalletAsset:
type: object
properties:
id:
type: string
status:
$ref: "#/components/schemas/ConfigChangeRequestStatus"
address:
type: string
tag:
type: string
activationTime:
type: string
additionalInfo:
type: array
items:
$ref: "#/components/schemas/WalletAssetAdditionalInfo"
WalletAssetAdditionalInfo:
type: object
properties:
accountHolderGivenName:
type: string
accountHolderSurname:
type: string
accountHolderCity:
type: string
accountHolderCountry:
type: string
accountHolderAddress1:
type: string
accountHolderAddress2:
type: string
accountHolderDistrict:
type: string
accountHolderPostalCode:
type: string
abaRoutingNumber:
type: string
abaAccountNumber:
type: string
abaCountry:
type: string
iban:
type: string
ibanCity:
type: string
ibanCountry:
type: string
speiClabe:
type: string
speiName:
type: string
ExchangeAsset:
type: object
properties:
id:
type: string
balance:
type: string
lockedAmount:
type: string
total:
type: string
available:
type: string
ExchangeTradingAccount:
type: object
properties:
type:
type: string
name:
type: string
assets:
type: array
items:
$ref: "#/components/schemas/ExchangeAsset"
FiatAsset:
type: object
properties:
id:
type: string
balance:
type: string
CreateVaultAssetResponse:
type: object
properties:
id:
type: string
address:
type: string
legacyAddress:
type: string
enterpriseAddress:
type: string
tag:
type: string
eosAccountName:
type: string
status:
type: string
activationTxId:
type: string
RewardsInfo:
type: object
properties:
pendingRewards:
description: Amount that is pending for rewards
type: string
VaultAsset:
type: object
properties:
id:
type: string
total:
description: The total wallet balance. In EOS this value includes the network balance, self staking and pending refund. For all other coins it is the balance as it appears on the blockchain.
type: string
balance:
deprecated: true
description: Deprecated - replaced by "total"
type: string
available:
description: Funds available for transfer. Equals the blockchain balance minus any locked amounts
type: string
pending:
description: The cumulative balance of all transactions pending to be cleared
type: string
frozen:
description: The cumulative frozen balance
type: string
lockedAmount:
description: Funds in outgoing transactions that are not yet published to the network
type: string
staked:
description: Staked balance
type: string
totalStakedCPU:
type: number
description: Deprecated
totalStakedNetwork:
type: string
description: Deprecated
selfStakedCPU:
type: string
description: Deprecated
selfStakedNetwork:
type: string
description: Deprecated
pendingRefundCPU:
type: string
description: Deprecated
pendingRefundNetwork:
type: string
description: Deprecated
blockHeight:
type: string
blockHash:
type: string
rewardsInfo:
$ref: "#/components/schemas/RewardsInfo"
AddressesResponse:
type: object
properties:
addresses:
type: array
items:
$ref: '#/components/schemas/VaultWalletAddress'
VaultWalletAddress:
type: object
properties:
assetId:
type: string
x-fb-entity: asset
address:
type: string
description:
type: string
tag:
type: string
type:
type: string
customerRefId:
type: string
addressFormat:
type: string
enum:
- SEGWIT
- LEGACY
- BASE
- PAYMENT
legacyAddress:
type: string
enterpriseAddress:
type: string
bip44AddressIndex:
type: integer
userDefined:
type: boolean
CreateAddressResponse:
type: object
properties:
address:
type: string
legacyAddress:
type: string
enterpriseAddress:
type: string
tag:
type: string
bip44AddressIndex:
type: integer
VaultAccountsPagedResponse:
type: object
properties:
accounts:
type: array
items:
$ref: "#/components/schemas/VaultAccount"
paging:
type: object
properties:
before:
type: string
after:
type: string
previousUrl:
type: string
nextUrl:
type: string
PaginatedAssetWalletResponse:
type: object
properties:
assetWallets:
type: array
items:
$ref: "#/components/schemas/AssetWallet"
paging:
type: object
properties:
before:
description: A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the previous page of results.
type: string
after:
description: A string representing a cursor. Users can use this with a new request to this API endpoint as the “before” request parameter to fetch the next page of results.
type: string
RegisterNewAssetRequest:
type: object
properties:
blockchainId:
type: string
description: Native asset of blockchain
example: (ETH, ETH_TEST5, MATIC_POLYGON)
address:
type: string
description: Asset address
example: 0xe7A9as1oa38bc4da0248s179E30aa94CcF453991
symbol:
type: string
description: Asset symbol
example: TST3
required:
- blockchainId
- address
AssetResponse:
type: object
properties:
legacyId:
type: string
example: TST3_ETH
assetClass:
type: string
example: FT
enum:
- NATIVE
- FT
- NFT
- SFT
onchain:
type: object
properties:
symbol:
type: string
description: The asset symbol
example: TST3
name:
type: string
description: The asset name
example: Test 3
address:
type: string
description: The asset address
example: 0xe7A9as1oa38bc4da0248s179E30aa94CcF453991
decimals:
type: number
description: Number of decimals
example: 18
standard:
type: string
description: The asset standard
example: ERC20
required:
- symbol
- name
- decimals
- standard
metadata:
type: object
properties:
scope:
type: string
description: The scope of the asset
example: Global
enum:
- Global
- Local
deprecated:
type: boolean
description: Is asset deprecated
example: false
required:
- scope
- deprecated
required:
- legacyId
- assetClass
- onchain
- metadata
AssetBadRequestErrorResponse:
type: object
properties:
message:
type: string
description: Bad request error code
example: Listing an asset on the requested blockchain is not supported
code:
type: string
description: Error code
example: 3001
required:
- message
- code
AssetForbiddenErrorResponse:
type: object
properties:
message:
type: string
description: Forbidden error code
example: Asset creation quota reached
code:
type: string
description: Error code
example: 3006
required:
- message
- code
AssetNotFoundErrorResponse:
type: object
properties:
message:
type: string
description: Not found error code
example: Invalid address, could not get asset information
code:
type: string
description: Error code
example: 3009
required:
- message
- code
AssetConflictErrorResponse:
type: object
properties:
message:
type: string
description: Conflict error code
example: Asset already listed
code:
type: string
description: Error code
example: 3002
required:
- message
- code
AssetInternalServerErrorResponse:
type: object
properties:
message:
type: string
description: Internal server error code
example: Internal server error
code:
type: string
description: Error code
example: 3005
required:
- message
- code
AssetWallet:
type: object
properties:
vaultId:
description: ID of the vault account. You can [get the vault account by this ID](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid) to retrieve vault properties such as its name, auto fueling, hidden on UI or customer reference ID.
type: string
assetId:
description: ID of the asset. You can get more information about this asset by using the [supported assets API](https://developers.fireblocks.com/reference/get_supported-assets)
type: string
available:
description: Available balance, available to use in a transaction.
type: string
total:
description: Total balance at the asset wallet, as seen at the blockchain explorers. This includes balance available, and any kind of unavailable balance such as locked, frozen, or others.
type: string
pending:
description: Pending balance.
type: string
staked:
description: Staked balance.
type: string
frozen:
description: Funds frozen due to the anti-money laundering policy at this workspace.
type: string
lockedAmount:
description: Locked balance.
type: string
blockHeight:
description: The height (number) of the block of the balance. Can by empty.
type: string
blockHash:
description: The hash of the block of the balance. Can by empty.
type: string
creationTimestamp:
description: Unix timestamp of the time the asset wallet was created.
type: string
VaultAccount:
type: object
properties:
id:
type: string
name:
type: string
assets:
type: array
items:
$ref: "#/components/schemas/VaultAsset"
hiddenOnUI:
type: boolean
customerRefId:
type: string
autoFuel:
type: boolean
UnmanagedWallet:
type: object
properties:
id:
type: string
name:
type: string
customerRefId:
type: string
assets:
type: array
items:
$ref: "#/components/schemas/WalletAsset"
required:
- id
- name
- status
ExchangeAccount:
type: object
properties:
id:
type: string
type:
$ref: "#/components/schemas/ExchangeType"
name:
type: string
description: Display name of the exchange account
status:
type: string
assets:
type: array
items:
$ref: "#/components/schemas/ExchangeAsset"
tradingAccounts:
type: array
items:
$ref: "#/components/schemas/ExchangeTradingAccount"
isSubaccount:
description: True if the account is a subaccount in an exchange
type: boolean
mainAccountId:
description: if the account is a sub-account, the ID of the main account
type: string
ExchangeAccountsPaged:
type: object
properties:
ExchangeAccount:
type: array
items:
$ref: "#/components/schemas/ExchangeAccount"
paging:
type: object
properties:
after:
type: string
description: Query value to the after page
before:
type: string
description: Query value to the before page
prevUrl:
type: string
nextUrl:
type: string
FiatAccount:
type: object
properties:
id:
type: string
type:
$ref: "#/components/schemas/FiatAccountType"
name:
type: string
description: Display name of the fiat account
address:
type: string
assets:
type: array
items:
$ref: "#/components/schemas/FiatAsset"
OneTimeAddress:
type: object
properties:
address:
type: string
tag:
type: string
required:
- address
TransferPeerPath:
type: object
properties:
type:
type: string
enum:
- VAULT_ACCOUNT
- EXCHANGE_ACCOUNT
- INTERNAL_WALLET
- EXTERNAL_WALLET
- NETWORK_CONNECTION
- FIAT_ACCOUNT
- COMPOUND
- GAS_STATION
- ONE_TIME_ADDRESS
- UNKNOWN
- END_USER_WALLET
subType:
type: string
enum:
- BINANCE
- BINANCEUS
- BITFINEX
- BITHUMB
- BITMEX
- BITSO
- BITSTAMP
- BITTREX
- BLINC
- BYBIT
- CIRCLE
- COINBASEEXCHANGE
- COINBASEPRO
- COINMETRO
- COINSPRO
- CRYPTOCOM
- DERIBIT
- GEMINI
- HITBTC
- HUOBI
- INDEPENDENTRESERVE
- KORBIT
- KRAKEN
- KRAKENINTL
- KUCOIN
- LIQUID
- OKCOIN
- OKEX
- PAXOS
- POLONIEX
- External
- Internal
id:
type: string
name:
type: string
walletId:
type: string
format: uuid
required:
- type
DestinationTransferPeerPath:
allOf:
- $ref: "#/components/schemas/TransferPeerPath"
- type: object
- description: The destination of the transaction.
properties:
oneTimeAddress:
$ref: "#/components/schemas/OneTimeAddress"
CreateTransactionResponse:
type: object
properties:
id:
type: string
description: The ID of the transaction.
status:
type: string
description: The primary status of the transaction. For details, see [Primary transaction statuses.] (https://developers.fireblocks.com/reference/primary-transaction-statuses)
systemMessages:
$ref: "#/components/schemas/SystemMessageInfo"
SystemMessageInfo:
type: object
properties:
type:
type: string
enum:
- WARN
- BLOCK
message:
type: string
description: A response from Fireblocks that communicates a message about the health of the process being performed. If this object is returned with data, you should expect potential delays or incomplete transaction statuses.
example: Slow transaction processing. Outgoing transactions might be stuck.
CancelTransactionResponse:
type: object
properties:
success:
type: boolean
UnfreezeTransactionResponse:
type: object
properties:
success:
type: boolean
FreezeTransactionResponse:
type: object
properties:
success:
type: boolean
AmlScreeningResult:
type: object
description: The result of the AML screening.
properties:
provider:
type: string
payload:
type: object
FeeInfo:
type: object
description: Details of the transaction's fee.
properties:
networkFee:
description: The fee paid to the network
type: string
serviceFee:
description: The total fee deducted by the exchange from the actual requested amount (serviceFee = amount - netAmount)
type: string
gasPrice:
type: string
BlockInfo:
type: object
description: >-
The block hash and height of the block that this transaction was mined in.
**Note**: If an outgoing transaction uses the destinations object with more than one value in the array, blockHash is set to null.
properties:
blockHeight:
type: string
blockHash:
type: string
nullable: true
AuthorizationInfo:
type: object
description: The information about your [Transaction Authorization Policy (TAP).](https://developers.fireblocks.com/docs/capabilities#transaction-authorization-policy-tap)
properties:
allowOperatorAsAuthorizer:
type: boolean
logic:
type: string
enum:
- AND
- OR
groups:
type: array
items:
$ref: "#/components/schemas/AuthorizationGroups"
AuthorizationGroups:
type: object
properties:
th:
type: number
users:
type: object
additionalProperties:
type: string
enum:
- PENDING_AUTHORIZATION
- APPROVED
- REJECTED
- NA
AmountInfo:
type: object
description: The details of the requested amount to transfer.
properties:
amount:
description: If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount.
type: string
requestedAmount:
description: The amount requested by the user.
type: string
netAmount:
description: The net amount of the transaction, after fee deduction.
type: string
amountUSD:
description: The USD value of the requested amount.
type: string
RewardInfo:
type: object
description: This field is relevant only for Algorand transactions. Both `srcRewards` and `destRewards` will appear only for Vault to Vault transactions, otherwise you will receive only the Fireblocks’ side of the transaction.
properties:
srcRewards:
type: string
destRewards:
type: string
SourceTransferPeerPathResponse:
allOf:
- $ref: "#/components/schemas/TransferPeerPath"
- type: object
description: The transaction’s source.
properties:
type:
type: string
subType:
type: string
description: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name. In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.
id:
type: string
description: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/get_vault-accounts-paged), [listing exchange account](https://developers.fireblocks.com/reference/get_exchange-accounts), [listing fiat accounts](https://developers.fireblocks.com/reference/get_fiat-accounts), [listing internal wallets](https://developers.fireblocks.com/reference/get_internal-wallets), [listing external wallets](https://developers.fireblocks.com/reference/get_external-wallets), [listing network connections](https://developers.fireblocks.com/reference/get_network-connections). For the other types, this parameter is not needed.
name:
type: string
description: The name of the peer.
DestinationTransferPeerPathResponse:
allOf:
- $ref: "#/components/schemas/TransferPeerPath"
- type: object
description: >-
Destination of the transaction.
**Note:** In case the transaction is sent to multiple destinations, the `destinations` parameter is be used instead of this.
properties:
type:
type: string
subType:
type: string
description: In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the specific exchange vendor name or fiat vendor name.In case the type is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set to `Internal` or `External`.
id:
type: string
description: The ID of the peer. You can retrieve the ID of each venue object using the endpoints for [listing vault accounts](https://developers.fireblocks.com/reference/get_vault-accounts-paged), [listing exchange account](https://developers.fireblocks.com/reference/get_exchange-accounts), [listing fiat accounts](https://developers.fireblocks.com/reference/get_fiat-accounts), [listing internal wallets](https://developers.fireblocks.com/reference/get_internal-wallets), [listing external wallets](https://developers.fireblocks.com/reference/get_external-wallets), [listing network connections](https://developers.fireblocks.com/reference/get_network-connections). For the other types, this parameter is not needed.
name:
type: string
description: The name of the peer.
TransactionResponse:
type: object
properties:
id:
type: string
description: ID of the transaction.
externalTxId:
type: string
description: "Unique transaction ID provided by the user. Fireblocks highly recommends setting an `externalTxId` for every transaction created, to avoid submitting the same transaction twice."
status:
type: string
description: "The primary status of the transaction. For details, see [Primary transaction statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses)."
subStatus:
type: string
description: "See [Transaction substatuses](https://developers.fireblocks.com/reference/transaction-substatuses) for the list of transaction sub statuses."
txHash:
type: string
description: >-
The hash of the transaction on the blockchain.
* This parameter exists if at least one of the following conditions is met:
1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`.
2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well.
3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`.
* In addition, the following conditions must be met:
1. The asset is a crypto asset (not fiat).
2. The transaction operation is not RAW or `TYPED_MESSAGE`.
operation:
$ref: "#/components/schemas/GetTransactionOperation"
note:
type: string
description: Custom note, not sent to the blockchain, that describes the transaction at your Fireblocks workspace.
assetId:
type: string
description: The ID of the asset to transfer, for `TRANSFER`, `MINT`, `BURN`, `ENABLE_ASSET`,`STAKE` ,`UNSTAKE` or `WITHDRAW` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets)
x-fb-entity: asset
source:
$ref: "#/components/schemas/SourceTransferPeerPathResponse"
sourceAddress:
type: string
description: >-
For account based assets only, the source address of the transaction.
**Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the source address. In any other case, this parameter will be empty.
tag:
type: string
description: Source address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).
destination:
$ref: "#/components/schemas/DestinationTransferPeerPathResponse"
destinations:
type: array
description: >-
The transaction’s destinations.
**Note:** In case the transaction is sent to a single destination, the `destination` parameter is used instead of this.
items:
$ref: "#/components/schemas/TransactionResponseDestination"
destinationAddress:
type: string
description: >-
Address where the asset were transferred.
Notes:
- For [Multi destination transactions](https://support.fireblocks.io/hc/en-us/articles/360018447980-Multi-destination-transactions), this parameter will be empty. In this case, you should refer to the destinations field.
- If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the destination address. In any other case, this parameter will be empty.
destinationAddressDescription:
type: string
description: Description of the address.
destinationTag:
type: string
description: >-
Destination address tag for XRP, used as memo for EOS/XLM, or Bank Transfer Description for the fiat provider BLINC (by BCB Group).
contractCallDecodedData:
description: Decoded data for `CONTRACT_CALL` operations. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for setting this parameter's value.
type: object
properties:
contractName:
type: string
functionCalls:
type: array
items:
type: object
amountInfo:
$ref: "#/components/schemas/AmountInfo"
treatAsGrossAmount:
type: boolean
description: >-
For transactions initiated via this Fireblocks workspace, when set to `true`, the fee is deducted from the requested amount.
**Note**: This parameter can only be considered if a transaction's asset is a base asset, such as ETH or MATIC. If the asset can't be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.
feeInfo:
$ref: "#/components/schemas/FeeInfo"
feeCurrency:
type: string
description: The asset which was withdrawn to pay the transaction fee, for example ETH for EVM-based blockchains, BTC for Tether Omni.
networkRecords:
type: array
description: In case a single transaction resulted with multiple transfers, for example a result of a contract call, then this parameter specifies each transfer that took place on the blockchain. In case of a single transfer transaction, this parameter is empty.
items:
$ref: "#/components/schemas/NetworkRecord"
createdAt:
type: number
description: The transaction’s creation date and time, in unix timestamp.
lastUpdated:
type: number
description: The transaction’s last update date and time, in unix timestamp.
createdBy:
type: string
description: User ID of the initiator of the transaction.
signedBy:
type: array
description: User ID’s of the signers of the transaction.
items:
type: string
rejectedBy:
type: string
description: User ID of the user that rejected the transaction (in case it was rejected).
authorizationInfo:
$ref: "#/components/schemas/AuthorizationInfo"
exchangeTxId:
type: string
description: If the transaction originated from an exchange, this is the ID of this transaction at the exchange.
customerRefId:
type: string
description: The ID for AML providers to associate the owner of funds with transactions.
amlScreeningResult:
$ref: "#/components/schemas/AmlScreeningResult"
extraParameters:
$ref: "#/components/schemas/ExtraParameters"
signedMessages:
type: array
items:
$ref: "#/components/schemas/SignedMessage"
numOfConfirmations:
type: number
description: The number of confirmations of the transaction. The number will increase until the transaction will be considered completed according to the confirmation policy.
blockInfo:
$ref: "#/components/schemas/BlockInfo"
index:
type: number
description: >-
For UTXO based assets this is the vOut, for Ethereum based, this is the index of the event of the contract call.
**Note:** This field is not returned if a transaction uses the `destinations` object with more than one value.
rewardInfo:
$ref: "#/components/schemas/RewardInfo"
systemMessages:
$ref: "#/components/schemas/SystemMessageInfo"
addressType:
type: string
enum:
- WHITELISTED
- ONE_TIME
requestedAmount:
description: The amount requested by the user. Deprecated - please use the `amountInfo` field for accuracy.
type: number
deprecated: true
amount:
description: If the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, the requested amount. Deprecated - please use the `amountInfo` field for accuracy.
type: number
deprecated: true
netAmount:
description: The net amount of the transaction, after fee deduction. Deprecated - please use the `amountInfo` field for accuracy.
type: number
deprecated: true
amountUSD:
description: The USD value of the requested amount. Deprecated - please use the `amountInfo` field for accuracy.
type: number
nullable: true
deprecated: true
serviceFee:
description: The total fee deducted by the exchange from the actual requested amount (`serviceFee` = `amount` - `netAmount`). Deprecated - please use the `feeInfo` field for accuracy.
type: number
deprecated: true
fee:
description: Deprecated - please use the `feeInfo` field for accuracy.
type: number
deprecated: true
networkFee:
description: The fee paid to the network. Deprecated - please use the `feeInfo` field for accuracy.
type: number
deprecated: true
TransactionResponseDestination:
type: object
properties:
destination:
$ref: "#/components/schemas/DestinationTransferPeerPathResponse"
destinationAddress:
description: Address where the asset was transferred.
destinationAddressDescription:
description: Description of the address.
amount:
type: string
description: The amount to be sent to this destination.
amountUSD:
type: string
description: The USD value of the requested amount.
amlScreeningResult:
$ref: "#/components/schemas/AmlScreeningResult"
customerRefId:
description: The ID for AML providers to associate the owner of funds with transactions.
authorizationInfo:
$ref: "#/components/schemas/AuthorizationInfo"
NetworkRecord:
type: object
properties:
source:
$ref: "#/components/schemas/SourceTransferPeerPathResponse"
destination:
$ref: "#/components/schemas/DestinationTransferPeerPathResponse"
txHash:
type: string
networkFee:
type: string
assetId:
type: string
x-fb-entity: asset
netAmount:
description: The net amount of the transaction, after fee deduction
type: string
isDropped:
type: boolean
type:
type: string
destinationAddress:
type: string
sourceAddress:
type: string
amountUSD:
type: string
index:
type: number
rewardInfo:
$ref: "#/components/schemas/RewardInfo"
AssetTypeResponse:
type: object
properties:
id:
type: string
name:
type: string
type:
type: string
enum:
- ALGO_ASSET
- BASE_ASSET
- BEP20
- COMPOUND
- ERC20
- FIAT
- SOL_ASSET
- TRON_TRC20
- XLM_ASSET
- XDB_ASSET
contractAddress:
type: string
nativeAsset:
type: string
decimals:
type: number
required:
- id
- name
- type
NetworkConnection:
type: object
properties:
localNetworkId:
type: string
description: The network ID of the profile trying to create the connection.
remoteNetworkId:
type: string
description: The network ID the profile is attempting to connect to.
routingPolicy:
$ref: "#/components/schemas/NetworkConnectionRoutingPolicy"
required:
- localNetworkId
- remoteNetworkId
NetworkConnectionResponse:
type: object
properties:
id:
type: string
localChannel:
allOf:
- $ref: "#/components/schemas/NetworkChannel"
deprecated: true
description: "Deprecated - Replaced by `localNetworkId`"
remoteChannel:
allOf:
- $ref: "#/components/schemas/NetworkChannel"
deprecated: true
description: "Deprecated - Replaced by `remoteNetworkId`"
status:
$ref: "#/components/schemas/ConfigChangeRequestStatus"
localNetworkId:
$ref: "#/components/schemas/NetworkId"
remoteNetworkId:
$ref: "#/components/schemas/NetworkId"
routingPolicy:
$ref: "#/components/schemas/NetworkConnectionRoutingPolicy"
required:
- id
- localNetworkId
- remoteNetworkId
- routingPolicy
- status
EstimatedTransactionFeeResponse:
type: object
properties:
low:
$ref: "#/components/schemas/TransactionFee"
medium:
$ref: "#/components/schemas/TransactionFee"
high:
$ref: "#/components/schemas/TransactionFee"
required:
- low
- medium
- high
EstimatedNetworkFeeResponse:
type: object
properties:
low:
$ref: "#/components/schemas/NetworkFee"
medium:
$ref: "#/components/schemas/NetworkFee"
high:
$ref: "#/components/schemas/NetworkFee"
required:
- low
- medium
- high
GasStationPropertiesResponse:
type: object
properties:
balance:
type: object
configuration:
$ref: "#/components/schemas/GasStationConfiguration"
required:
- low
- medium
- high
TransactionFee:
type: object
properties:
feePerByte:
type: string
gasPrice:
type: string
gasLimit:
type: string
networkFee:
type: string
baseFee:
description: (optional) Base Fee according to EIP-1559 (ETH assets)
type: string
priorityFee:
description: (optional) Priority Fee according to EIP-1559 (ETH assets)
type: string
maxFeePerGasDelta:
description: (optional) Max Fee Per Gas Delta added only for EIP-1559 (ETH assets)
type: string
l1Fee:
description: (optional) Layer 1 fee for Layer 2 chains
type: string
NetworkFee:
type: object
properties:
feePerByte:
type: string
gasPrice:
type: string
networkFee:
type: string
baseFee:
description: (optional) Base Fee according to EIP-1559 (ETH assets)
type: string
priorityFee:
description: (optional) Priority Fee according to EIP-1559 (ETH assets)
type: string
GasStationConfiguration:
type: object
properties:
gasThreshold:
type: string
gasCap:
type: string
maxGasPrice:
type: string
NetworkChannel:
deprecated: true
description: "Deprecated in the only used reference - NetworkConnectionResponse"
type: object
properties:
networkId:
type: string
name:
type: string
NetworkId:
type: object
properties:
id:
type: string
name:
type: string
required:
- id
- name
NetworkIdResponse:
allOf:
- $ref: "#/components/schemas/NetworkId"
- type: object
properties:
routingPolicy:
$ref: "#/components/schemas/NetworkIdRoutingPolicy"
isDiscoverable:
type: boolean
description: The specific network is discoverable.
TransactionRequest:
type: object
properties:
operation:
$ref: "#/components/schemas/TransactionOperation"
note:
type: string
description: Custom note, not sent to the blockchain, to describe the transaction at your Fireblocks workspace.
example: "Ticket 123"
externalTxId:
type: string
description: >-
An optional but highly recommended parameter. Fireblocks will reject future transactions with same ID.
You should set this to a unique ID representing the transaction, to avoid submitting the same transaction twice. This helps with cases where submitting the transaction responds with an error code due to Internet interruptions, but the transaction was actually sent and processed. To validate whether a transaction has been processed, [Find a specific transaction by external transaction ID](https://developers.fireblocks.com/reference/get_transactions-external-tx-id-externaltxid).
There is no specific format required for this parameter.
example: "00000000-0000-0000-0000-000000000000"
assetId:
type: string
description: The ID of the asset to transfer, for `TRANSFER`, `MINT` or `BURN` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets)
x-fb-entity: asset
example: ETH
source:
$ref: "#/components/schemas/TransferPeerPath"
destination:
$ref: "#/components/schemas/DestinationTransferPeerPath"
destinations:
type: array
description: "For UTXO based blockchains, you can send a single transaction to multiple destinations."
items:
$ref: "#/components/schemas/TransactionRequestDestination"
amount:
description: >-
For `TRANSFER` operations, the requested amount to transfer, in the asset’s unit. Fireblocks recommends using a numeric string for accurate precision.
Although a number input exists, it is deprecated.
oneOf:
- type: string
description: Numeric string (recommended)
example: "0.02"
- type: number
description: Number (deprecated)
example: 0.02
treatAsGrossAmount:
type: boolean
description: >-
"When set to `true`, the fee will be deducted from the requested amount."
**Note**: This parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC. If the asset can’t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.
example: false
extraParameters:
$ref: "#/components/schemas/ExtraParameters"
forceSweep:
type: boolean
description: >-
For Polkadot, Kusama and Westend transactions only. When set to true, Fireblocks will empty the asset wallet.
**Note:** If set to true when the source account is exactly 1 DOT, the transaction will fail. Any amount more or less than 1 DOT succeeds. This is a Polkadot blockchain limitation.
example: false
feeLevel:
type: string
description: For UTXO or EVM-based blockchains only. Defines the blockchain fee level which will be payed for the transaction. Alternatively, specific fee estimation parameters exist below.
enum:
- LOW
- MEDIUM
- HIGH
example: MEDIUM
fee:
description: >-
For UTXO-based blockchains, the fee per bytes in the asset’s smallest unit (Satoshi, Latoshi, etc.).
For Ripple, the fee for the transaction. Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
oneOf:
- type: string
description: Numeric string (recommended)
- type: number
description: Number (deprecated)
priorityFee:
description: >-
For Ethereum-based blockchains only, the fee for EIP-1559 transaction pricing mechanism. Value is in Gwei.
Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
oneOf:
- type: string
description: Numeric string (recommended)
example: "2"
- type: number
description: Number (deprecated)
example: 2
failOnLowFee:
type: boolean
description: When set to `true`, in case the current `MEDIUM` fee level is higher than the one specified in the transaction, the transaction will fail to avoid getting stuck with no confirmations.
maxFee:
description: >-
The maximum fee (gas price or fee per byte) that should be payed for the transaction.
In case the current value of the requested `feeLevel` is higher than this requested maximum fee.
Represented by a numeric string for accurate precision.
type: string
example: "120"
gasLimit:
description: >-
For EVM-based blockchains only. Units of gas required to process the transaction. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`.
Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
oneOf:
- type: string
description: Numeric string (recommended)
example: "21000"
- type: number
description: Number (deprecated)
example: 21000
gasPrice:
description: >-
For non-EIP-1559, EVM-based transactions. Price per gas unit (in Ethereum this is specified in Gwei).
Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`. Fireblocks recommends using a numeric string for accurate precision.
Although a number input exists, it is deprecated.
oneOf:
- type: string
description: Numeric string (recommended)
- type: number
description: Number (deprecated)
networkFee:
description: >-
For EVM-based blockchains only. The total transaction fee in the blockchain’s largest unit. Note: Only two of the three arguments can be specified in a single transaction: `gasLimit`, `gasPrice` and `networkFee`.
Fireblocks recommends using a numeric string for accurate precision. Although a number input exists, it is deprecated.
- The transaction blockchain fee.
- For Ethereum, you can't pass gasPrice, gasLimit and networkFee all together.
- A numeric value representation is required.
oneOf:
- type: string
description: Numeric string (recommended)
- type: number
description: Number (deprecated)
replaceTxByHash:
type: string
description: For EVM-based blockchains only. In case a transaction is stuck, specify the hash of the stuck transaction to replace it by this transaction with a higher fee, or to replace it with this transaction with a zero fee and drop it from the blockchain.
example: "00000000-0000-0000-0000-000000000000"
customerRefId:
type: string
description: The ID for AML providers to associate the owner of funds with transactions.
example: "abcdef"
autoStaking:
type: boolean
description: This feature is no longer supported.
deprecated: true
networkStaking:
deprecated: true
description: This feature is no longer supported.
oneOf:
- type: string
description: Numeric string (recommended)
- type: number
description: Number (deprecated)
cpuStaking:
deprecated: true
description: This feature is no longer supported.
oneOf:
- type: string
description: Numeric string (recommended)
- type: number
description: Number (deprecated)
EstimatedFeeRequest:
type: object
properties:
operation:
$ref: "#/components/schemas/TransactionOperation"
assetId:
type: string
description: The ID of the asset to transfer, for `TRANSFER`, `MINT` or `BURN` operations. [See the list of supported assets and their IDs on Fireblocks.](https://developers.fireblocks.com/reference/get_supported-assets)
x-fb-entity: asset
example: ETH
source:
$ref: "#/components/schemas/TransferPeerPath"
destination:
$ref: "#/components/schemas/DestinationTransferPeerPath"
destinations:
type: array
description: "For UTXO based blockchains, you can send a single transaction to multiple destinations."
items:
$ref: "#/components/schemas/TransactionRequestDestination"
amount:
description: >-
For `TRANSFER` operations, the requested amount to transfer, in the asset’s unit. Fireblocks recommends using a numeric string for accurate precision.
Although a number input exists, it is deprecated.
oneOf:
- type: string
description: Numeric string (recommended)
example: "0.02"
- type: number
description: Number (deprecated)
example: 0.02
treatAsGrossAmount:
type: boolean
description: >-
"When set to `true`, the fee will be deducted from the requested amount."
**Note**: This parameter can only be considered if a transaction’s asset is a base asset, such as ETH or MATIC. If the asset can’t be used for transaction fees, like USDC, this parameter is ignored and the fee is deducted from the relevant base asset wallet in the source account.
example: false
extraParameters:
$ref: "#/components/schemas/ExtraParameters"
TransactionRequestDestination:
type: object
properties:
amount:
type: string
destination:
$ref: "#/components/schemas/DestinationTransferPeerPath"
ExchangeType:
type: string
enum:
- BINANCE
- BINANCEUS
- BITFINEX
- BITHUMB
- BITMEX
- BITSO
- BITSTAMP
- BITTREX
- CIRCLE
- COINBASEPRO
- COINMETRO
- COINSPRO
- CRYPTOCOM
- DERIBIT
- FTX
- FIXUS
- GEMINI
- HITBTC
- HUOBI
- KORBIT
- KRAKEN
- LIQUID
- POLONIEX
- OKCOIN
- OKEX
- SEEDCX
FiatAccountType:
type: string
enum:
- BLINC
ConfigChangeRequestStatus:
type: string
enum:
- WAITING_FOR_APPROVAL
- APPROVED
- CANCELLED
- REJECTED
- FAILED
TransactionOperation:
type: string
default: TRANSFER
enum:
- TRANSFER
- BURN
- CONTRACT_CALL
- MINT
- RAW
- TYPED_MESSAGE
description: >
* `TRANSFER` - The default value for an operation. Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address.
* `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains.
* `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains.
* `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions.
* `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing).
* `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing)
GetTransactionOperation:
type: string
enum:
- TRANSFER
- BURN
- CONTRACT_CALL
- MINT
- RAW
- TYPED_MESSAGE
- ENABLE_ASSET
- STAKE
- UNSTAKE
- WITHDRAW
- REDEEM_FROM_COMPOUND
- SUPPLY_TO_COMPOUND
description: >
* `TRANSFER` - Transfers funds from one account to another. UTXO blockchains allow multi-input and multi-output transfers. All other blockchains allow transfers with one source address and one destination address.
* `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based blockchains.
* `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based blockchains.
* `CONTRACT_CALL` - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks [development libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries) are recommended for building contract call transactions.
* `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal Message or EIP712 format. Use it to sign specific readable messages that are not actual transactions. [Learn more about typed messages](https://developers.fireblocks.com/docs/typed-message-signing).
* `RAW` - An off-chain message with no predefined format. Use it to sign any message with your private key, including protocols such as blockchains and custom transaction types that are not natively supported by Fireblocks. [Learn more about raw signing transactions.](https://developers.fireblocks.com/docs/raw-message-signing)
* `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an on-chain transaction to create an asset wallet and enable the deposit address. This transaction is automatically created when adding assets on these blockchains at a vault account.
* `STAKE` - Assign assets to a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations.
* `UNSTAKE` - Remove assets from a staking pool managed by a staking validator. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations.
* `WITHDRAW` - Transfer assets from a dedicated staking vault account to another address. Supported for Stellar and EVM-based blockchains. This transaction is automatically created when performing staking operations.
**Note:** Fireblocks will rename this type from `WITHDRAW` to a different type name soon. There will be a 7-day notice regarding the new type name.
* `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol.
* `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older transactions may have this as their operation, in case users in the workspace have used the direct integration between Fireblocks and the Compound DeFI protocol.
Error:
type: object
properties:
message:
type: string
code:
type: number
Term:
type: object
properties:
networkConnectionId:
type: string
outgoing:
type: boolean
asset:
type: string
amount:
type: string
note:
type: string
operation:
type: string
SetConfirmationsThresholdRequest:
type: object
properties:
numOfConfirmations:
type: number
SetConfirmationsThresholdResponse:
type: object
properties:
success:
type: boolean
transactions:
type: array
items:
type: string
DropTransactionRequest:
type: object
properties:
txId:
type: string
feeLevel:
type: string
gasPrice:
type: string
DropTransactionResponse:
type: object
properties:
txStatus:
type: string
txId:
type: string
replacedTxHash:
type: string
UnsignedMessage:
type: object
properties:
content:
type: string
bip44addressIndex:
type: integer
bip44change:
type: number
derivationPath:
type: array
items:
type: number
type:
type: string
enum:
- EIP191
- EIP712
- TIP191
- BTC_MESSAGE
required:
- content
SignedMessage:
type: object
description: A list of signed messages returned for raw signing.
properties:
content:
type: string
algorithm:
type: string
enum:
- MPC_ECDSA_SECP256K1
- MPC_EDDSA_ED25519
derivationPath:
type: array
items:
type: number
signature:
type: object
properties:
fullSig:
type: string
r:
type: string
s:
type: string
v:
type: number
publicKey:
type: string
PublicKeyInformation:
type: object
properties:
algorithm:
type: string
derivationPath:
type: array
items:
type: number
publicKey:
type: string
TradingAccountType:
type: string
enum:
- COIN_FUTURES
- COIN_MARGINED_SWAP
- EXCHANGE
- FUNDING
- FUNDABLE
- FUTURES
- FUTURES_CROSS
- MARGIN
- MARGIN_CROSS
- OPTIONS
- SPOT
- USDT_MARGINED_SWAP_CROSS
- USDT_FUTURES
- UNIFIED
ValidateAddressResponse:
type: object
properties:
isValid:
type: boolean
isActive:
type: boolean
requiresTag:
type: boolean
ResendWebhooksResponse:
type: object
properties:
messagesCount:
type: number
UnspentInputsResponse:
type: object
properties:
input:
$ref: "#/components/schemas/UnspentInput"
address:
type: string
amount:
type: string
confirmations:
type: number
status:
type: string
UnspentInput:
type: object
properties:
txHash:
type: string
index:
type: number
GetUsersResponse:
type: object
properties:
users:
type: array
items:
$ref: "#/components/schemas/UserResponse"
ExtraParameters:
type: object
description: "Use for protocol / operation specific parameters. For raw signing, pass `rawMessageData` object. For contract calls, pass `contractCallData` string. For UTXO based blockchains inputs selection, pass `inputsSelection` object. Note: `rawMessageData`, `contractCallData`, and `inputsSelection` cannot be used together in the same call."
properties:
rawMessageData:
type: object
properties:
messages:
type: array
items:
$ref: "#/components/schemas/UnsignedMessage"
algorithm:
type: string
enum:
- MPC_ECDSA_SECP256K1
- MPC_ECDSA_SECP256R1
- MPC_EDDSA_ED25519
description: "Object containing messages for raw signing and the algorithm to be used."
contractCallData:
type: string
description: "Hex encoded contract call data as a string."
inputsSelection:
type: object
properties:
inputsToSpend:
type: array
items:
$ref: "#/components/schemas/UnspentInput"
description: "Inputs that should be used in the transaction."
inputsToExclude:
type: array
items:
$ref: "#/components/schemas/UnspentInput"
description: "Inputs that shouldn't be used in the transaction."
description: "For UTXO based blockchains, selections of inputs for the transaction."
NetworkIdRoutingPolicy:
type: object
properties:
crypto:
oneOf:
- $ref: "#/components/schemas/CustomCryptoRoutingDest"
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
sen:
oneOf:
- $ref: "#/components/schemas/CustomFiatRoutingDest"
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
signet:
oneOf:
- $ref: "#/components/schemas/CustomFiatRoutingDest"
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
sen_test:
oneOf:
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
- $ref: "#/components/schemas/CustomFiatRoutingDest"
signet_test:
oneOf:
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
- $ref: "#/components/schemas/CustomFiatRoutingDest"
NetworkConnectionRoutingPolicy:
type: object
properties:
crypto:
oneOf:
- $ref: "#/components/schemas/CustomCryptoRoutingDest"
- $ref: "#/components/schemas/DefaultNetworkRoutingDest"
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
sen:
oneOf:
- $ref: "#/components/schemas/CustomFiatRoutingDest"
- $ref: "#/components/schemas/DefaultNetworkRoutingDest"
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
signet:
oneOf:
- $ref: "#/components/schemas/DefaultNetworkRoutingDest"
- $ref: "#/components/schemas/CustomFiatRoutingDest"
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
sen_test:
oneOf:
- $ref: "#/components/schemas/DefaultNetworkRoutingDest"
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
- $ref: "#/components/schemas/CustomFiatRoutingDest"
signet_test:
oneOf:
- $ref: "#/components/schemas/NoneNetworkRoutingDest"
- $ref: "#/components/schemas/CustomFiatRoutingDest"
- $ref: "#/components/schemas/DefaultNetworkRoutingDest"
CustomFiatRoutingDest:
type: object
properties:
scheme:
description: The network routing logic.
type: string
enum:
- CUSTOM
dstType:
type: string
description: The fiat account the funds are being sent to.
enum:
- FIAT_ACCOUNT
dstId:
type: string
description: The ID of the fiat account the funds are being sent to.
required:
- scheme
- dstType
- dstId
CustomCryptoRoutingDest:
type: object
properties:
scheme:
type: string
description: The network routing logic.
enum:
- CUSTOM
dstType:
type: string
description: The type of destination account the funds are being sent to.
enum:
- VAULT
- EXCHANGE
dstId:
type: string
description: The ID of the destination account the funds are being sent to.
required:
- scheme
- dstType
- dstId
DefaultNetworkRoutingDest:
type: object
properties:
scheme:
type: string
description: The network routing logic.
enum:
- DEFAULT
required:
- scheme
NoneNetworkRoutingDest:
type: object
properties:
scheme:
type: string
description: No network routing logic.
enum:
- NONE
required:
- scheme
UserResponse:
type: object
properties:
id:
type: string
firstName:
type: string
lastName:
type: string
role:
type: string
email:
type: string
enabled:
type: boolean
CreateUserGroupResponse:
type: object
properties:
id:
type: string
name:
type: string
memberIds:
type: array
items:
type: string
status:
type: string
UserGroupResponse:
type: object
properties:
id:
type: string
name:
type: string
status:
type: string
memberIds:
type: array
items:
type: string
UserGroupsResponse:
type: array
items:
$ref: "#/components/schemas/UserGroupResponse"
UserGroupCreateResponse:
type: object
properties:
name:
type: string
id:
type: string
memberIds:
type: array
items:
type: string
status:
type: string
UserGroupCreateRequest:
type: object
properties:
groupName:
type: string
memberIds:
type: array
items:
type: string
UserGroupUpdateRequest:
type: object
properties:
groupName:
type: string
memberIds:
type: array
items:
type: string
SessionMetadata:
type: object
properties:
appUrl:
type: string
appName:
type: string
appDescription:
type: string
appIcon:
type: string
required:
- appUrl
SessionDTO:
type: object
properties:
id:
type: string
description: Id of the connection
example: "4e9e7051-f3b2-48e9-8ee6-b12492552657"
userId:
type: string
description: Id of the user that created the connection
sessionMetadata:
description: Metadata of the connection (provided by the dApp)
allOf:
- $ref: "#/components/schemas/SessionMetadata"
vaultAccountId:
type: number
description: The vault to connect
example: 1
feeLevel:
type: string
description: The default fee level
example: MEDIUM
enum:
- MEDIUM
- HIGH
chainIds:
description: The chains approved for the connection
example: [ETH, ETH_TEST, SOL]
type: array
items:
type: string
connectionType:
type: string
description: The connection's type
example: "WalletConnect"
enum:
- WalletConnect
connectionMethod:
type: string
description: The method through which the connection was established
example: API
enum:
- DESKTOP
- MOBILE
- API
creationDate:
format: date-time
type: string
description: Timestamp of the session's creation
required:
- id
- userId
- sessionMetadata
- vaultAccountId
- feeLevel
- chainIds
- connectionType
- connectionMethod
- creationDate
GetConnectionsResponse:
type: object
properties:
data:
description: Array with the requested dApp connection's data
type: array
items:
$ref: "#/components/schemas/SessionDTO"
paging:
$ref: "#/components/schemas/Paging"
required:
- data
CreateConnectionRequest:
type: object
properties:
vaultAccountId:
type: number
description: The ID of the vault to create a dApp.
example: 1
feeLevel:
type: string
description: The default fee level. Valid values are `MEDIUM` and `HIGH`.
example: MEDIUM
enum:
- MEDIUM
- HIGH
uri:
type: string
description: The WalletConnect uri provided by the dApp.
example: >-
wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637
chainIds:
description: The IDs of the blockchain networks used in the dApp connection.
example:
- ETH
- ETH_TEST
type: array
items:
type: string
required:
- vaultAccountId
- feeLevel
- uri
Account:
type: object
properties:
accountId:
type: string
accountType:
$ref: "#/components/schemas/AccountType"
AccountType:
type: string
enum:
- EXCHANGE_ACCOUNT
- UNMANAGED_WALLET
- VAULT_ACCOUNT
- NETWORK_CONNECTION
- FIAT_ACCOUNT
required:
- accountId
- accountType
CreateNcwConnectionRequest:
type: object
properties:
ncwId:
type: string
description: The ID of the Non-Custodial Wallet to connect to the dApp.
example: "b8337f1d-bd61-4d6c-afc1-4c9d60aa2132"
ncwAccountId:
type: number
description: The NCW account ID to connect to the dApp.
example: 1
feeLevel:
type: string
description: The default fee level. Valid values are `MEDIUM` and `HIGH`.
example: MEDIUM
enum:
- MEDIUM
- HIGH
uri:
type: string
description: The WalletConnect uri provided by the dApp.
example: >-
wc:77752975-906f-48f5-b59f-047826ee947e@1?bridge=https%3A%2F%2F0.bridge.walletconnect.org&key=64be99adc6086b7a729b0ec8c7e1f174927ab92e84f5c6f9527050225344a637
chainIds:
description: The IDs of the blockchain networks used in the dApp connection.
example:
- ETH
type: array
items:
type: string
required:
- ncwId
- ncwAccountId
- feeLevel
- uri
CreateConnectionResponse:
type: object
properties:
id:
type: string
description: The ID of the dApp connection initiated.
example: 4e9e7051-f3b2-48e9-8ee6-b12492552657
sessionMetadata:
description: Metadata of the dApp connection (provided by the dApp).
allOf:
- $ref: "#/components/schemas/SessionMetadata"
required:
- id
- sessionMetadata
RespondToConnectionRequest:
type: object
properties:
approve:
type: boolean
description: Approval of the initiated dApp connection.
example: true
required:
- approve
AddCollateralRequestBody:
type: object
properties:
transactionRequest:
$ref: "#/components/schemas/TransactionRequest"
isSrcCollateral:
type: boolean
description: optional
RemoveCollateralRequestBody:
type: object
properties:
transactionRequest:
$ref: "#/components/schemas/TransactionRequest"
isDstCollateral:
type: boolean
description: optional
SettlementRequestBody:
type: object
properties:
mainExchangeAccountId:
type: string
SettlementResponse:
type: object
properties:
id:
type: string
initiator:
type: string
exchangeReply:
type: string
fireblocksInitiatedTransactions:
type: object
exchangeRequestedTransactions:
$ref: "#/components/schemas/SettlementResponse"
GetSettlementResponse:
$ref: "#/components/schemas/SettlementResponse"
ToExchangeTransaction:
type: object
properties:
assetId:
type: string
amount:
type: string
dstAddress:
type: string
dstTag:
type: string
description: optional
ToCollateralTransaction:
type: object
properties:
asset:
type: string
amount:
type: string
srcAddress:
type: string
srcTag:
type: string
description: optional
fee:
type: string
description: optional
#Paymetns - cross-border
XBSettlementConfigCreationRequestBody:
type: object
properties:
name:
type: string
description: The name for the cross-border settlement configuration
corridorId:
$ref: "#/components/schemas/XBSettlementCorridorId"
steps:
$ref: "#/components/schemas/XBSettlementConfigStepsRecord"
conversionSlippageBasisPoints:
$ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints"
required:
- name
- corridorId
- steps
XBSettlementConfigCreationResponse:
$ref: "#/components/schemas/XBSettlementConfigModel"
XBSettlementConfigEditRequestBody:
type: object
properties:
name:
type: string
description: The name for the cross-border settlement configuration
steps:
$ref: "#/components/schemas/XBSettlementConfigStepsRecord"
conversionSlippageBasisPoints:
$ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints"
required:
- name
- steps
XBSettlementConfigEditResponse:
$ref: "#/components/schemas/XBSettlementConfigModel"
XBSettlementConfigDeletionResponse:
$ref: "#/components/schemas/XBSettlementConfigModel"
XBSettlementGetConfigResponse:
$ref: "#/components/schemas/XBSettlementConfigModel"
XBSettlementGetAllConfigsResponse:
type: object
properties:
configurations:
type: array
items:
$ref: "#/components/schemas/XBSettlementConfigModel"
required:
- configurations
XBSettlementFlowExecutionRequestBody:
type: object
properties:
conversionSlippageBasisPoints:
$ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints"
XBSettlementFlowExecutionResponse:
$ref: "#/components/schemas/XBSettlementFlowExecutionModel"
XBSettlementFlowExecutionStep:
type: object
properties:
id:
type: string
description: A unique id for the step execution
accountId:
type: string
status:
$ref: "#/components/schemas/XBSettlementFlowExecutionStepStatus"
inputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
outputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
fee:
$ref: "#/components/schemas/XBSettlementAsset"
startedAt:
type: number
description: The step execution start time in epoch format.
completedAt:
type: number
description: The step execution end time in epoch format.
isSignRequired:
type: boolean
description: Whether or not signing is required for executing the step.
required:
- id
- accountId
- status
- inputAmount
#- startedAt
- isSignRequired
XBSettlementFlowExecutionStepStatus:
type: string
enum:
- NOT_STARTED
- PROCESSING
- COMPLETED
- FAILED
XBSettlementFlowExecutionStatus:
type: string
enum:
- NOT_LAUNCHED
- PROCESSING
- COMPLETED
- FAILED
XBSettlementConfigId:
type: string
format: uuid
description: Cross Bodrder configuraion unique id
XBSettlementConfigModel:
type: object
properties:
configId:
$ref: "#/components/schemas/XBSettlementConfigId"
corridorId:
$ref: "#/components/schemas/XBSettlementCorridorId"
name:
type: string
description: The name for the cross-border ettlement configuration
steps:
$ref: "#/components/schemas/XBSettlementConfigStepsRecord"
conversionSlippageBasisPoints:
$ref: "#/components/schemas/XBSettlementConversionSlippageBasisPoints"
createdAt:
type: number
description: The creation time in epoch format.
required:
- configId
- name
- corridorId
- steps
- conversionSlippageBasisPoints
- createdAt
XBSettlementCorridorId:
type: string
enum:
- MX_US
- CO_US
- US_MX
- US_EU
- US_UK
description: |
- MX_US : Mexico (MXN) to USA (USD)
- CO_US : Colombia (COP) to USA (USD)
- US_MX : USA (USD) to Mexico (MXN)
- US_EU : USA (USD) to Europe Union (EUR)
- US_UK : USA (USD) to United Kingdon (GBP)
XBSettlementConfigStep:
type: object
properties:
stepType:
$ref: "#/components/schemas/XBSettlementStepType"
accountId:
type: string
required:
- stepType
- accountId
XBSettlementStepType:
type: string
enum:
- ON_RAMP
- VAULT_ACCOUNT
- OFF_RAMP
- FIAT_DESTINATION
description: |
- ON_RAMP : A service that allows for the exchange of fiat currencies for cryptocurrencies. An OnRamp input value will always be fiat and output value crypto asset.
- VAULT_ACCOUNT : Fireblocks Vault account
- OFF_RAMP : A service that allows for the exchange of cryptocurrencies for fiat. An OffRamp input value will always be a crypto asset and output value be fiat.
- FIAT_DESTINATION : Fiat account
XBSettlementFlowSetupStep:
type: object
properties:
accountId:
type: string
inputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
outputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
estimatedFeeAmount:
$ref: "#/components/schemas/XBSettlementAsset"
estimatedTime:
type: number
description: The estimated time for executing the step.
isSignRequired:
type: boolean
description: Whether or not signing is required for executing the step.
required:
- accountId
- inputAmount
- outputAmount
- estimatedFeeAmount
- estimatedTime
- isSignRequired
XBSettlementGetFlowResponse:
type: object
properties:
preview:
$ref: "#/components/schemas/XBSettlementFlowPreviewModel"
execution:
$ref: "#/components/schemas/XBSettlementFlowExecutionModel"
XBSettlementFlowPreviewModel:
type: object
properties:
flowId:
type: string
description: The unique id for the cross-border flow.
configId:
$ref: "#/components/schemas/XBSettlementConfigId"
conversionRate:
type: string
description: The conversion rate received from the on-ramp or off-ramp.
inputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
estimatedOutputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
#description: The *estimated* amount at the end of the cross-border flow execution after all the *estimated* fees
totalEstimatedFee:
$ref: "#/components/schemas/XBSettlementAsset"
#description: Total *estimated* fees for the executing the cross-border flow.
totalEstimatedTime:
type: number
description: The total *estimated* time for executing the cross-border flow.
steps:
$ref: "#/components/schemas/XBSettlementFlowStepsRecord"
required:
- flowId
- configId
- steps
- inputAmount
- estimatedOutputAmount
- totalEstimatedFee
- totalEstimatedTime
- conversionRate
XBSettlementCreateFlowRequestBody:
type: object
properties:
configId:
$ref: "#/components/schemas/XBSettlementConfigId"
amount:
type: string
description: The amount to transfer in this cross-border flow. The type of asset is defined by the cross-border settlement configuration.
required:
- configId
- amount
XBSettlementCreateFlowResponse:
$ref: "#/components/schemas/XBSettlementFlowPreviewModel"
XBSettlementFlowExecutionModel:
type: object
properties:
flowId:
type: string
description: The unique id for the cross-border flow.
configId:
$ref: "#/components/schemas/XBSettlementConfigId"
inputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
outputAmount:
$ref: "#/components/schemas/XBSettlementAsset"
totalFee:
$ref: "#/components/schemas/XBSettlementAsset"
initiatedAt:
type: number
description: The time the cross-border flow executed in epoch format.
initiatedBy:
description: The id of the user which launched the flow
type: string
state:
$ref: "#/components/schemas/XBSettlementFlowExecutionStatus"
steps:
$ref: "#/components/schemas/XBSettlementFlowStepsExecutionRecord"
selectedConversionSlippage:
type: object
description: Indicates the selected slippage used during the flow since override logic may have taken place.
properties:
basisPoints:
type: number
reason:
$ref: "#/components/schemas/XBSettlementFlowSelectedConversionSlippageReason"
required:
- basisPoints
- reason
required:
- flowId
- configId
- steps
- inputAmount
- outputAmount
- totalFee
- initiatedAt
- initiatedBy
- state
- selectedConversionSlippage
XBSettlementFlowSelectedConversionSlippageReason:
type: string
enum:
- DEFAULT
- CONFIG
- FLOW
XBSettlementFlowStepsExecutionRecord:
type: object
properties:
stepType:
$ref: "#/components/schemas/XBSettlementStepType"
additionalProperties:
$ref: "#/components/schemas/XBSettlementFlowExecutionStep"
XBSettlementConfigStepsRecord:
type: object
properties:
stepType:
$ref: "#/components/schemas/XBSettlementStepType"
additionalProperties:
type: object
properties:
accountId:
type: string
inputAssetId:
$ref: "#/components/schemas/XBSettlementAssetID"
outputAssetId:
$ref: "#/components/schemas/XBSettlementAssetID"
required:
- accountId
XBSettlementConversionSlippageBasisPoints:
type: integer
minimum: 0
maximum: 10000
default: 10000
description: |
Slippage configuarion in basis points, the default value is 10%
XBSettlementFlowStepsRecord:
type: object
properties:
stepType:
$ref: "#/components/schemas/XBSettlementStepType"
additionalProperties:
$ref: "#/components/schemas/XBSettlementFlowSetupStep"
XBSettlementAsset:
type: object
properties:
amount:
type: string
assetId:
$ref: "#/components/schemas/XBSettlementAssetID"
required:
- amount
XBSettlementAssetID:
oneOf:
- $ref: "#/components/schemas/XBSettlementFiatAsset"
- $ref: "#/components/schemas/XBSettlementCryptoAsset"
XBSettlementFiatAsset:
type: string
enum:
- USD
- MXN
- COP
- EUR
- GBP
XBSettlementCryptoAsset:
type: string
enum:
- XLM_USDC_5F3T
- XLM
description: |
- XLM_USDC_5F3T : USDC over Stellar network
#/Paymetns - cross-border
#Payment - Payout
CreatePayoutRequest:
type: object
properties:
paymentAccount:
$ref: "#/components/schemas/PaymentAccount"
instructionSet:
type: array
items:
$ref: "#/components/schemas/PayoutInstruction"
required:
- paymentAccount
- instructionSet
PaymentAccount:
type: object
properties:
id:
type: string
type:
$ref: "#/components/schemas/PaymentAccountType"
required:
- id
- type
PayoutInstruction:
type: object
properties:
id:
type: string
payeeAccount:
$ref: "#/components/schemas/PayeeAccount"
amount:
$ref: "#/components/schemas/InstructionAmount"
required:
- amount
- payeeAccount
PaymentAccountType:
type: string
enum:
- VAULT_ACCOUNT
- EXCHANGE_ACCOUNT
PayeeAccount:
type: object
properties:
id:
type: string
type:
$ref: "#/components/schemas/PayeeAccountType"
required:
- id
- type
InstructionAmount:
type: object
properties:
amount:
type: string
assetId:
type: string
required:
- amount
- assetId
PayeeAccountType:
type: string
enum:
- VAULT_ACCOUNT
- EXCHANGE_ACCOUNT
- INTERNAL_WALLET
- EXTERNAL_WALLET
- NETWORK_CONNECTION
- FIAT_ACCOUNT
description: |
- VAULT_ACCOUNT a native Fireblocks vault account
- EXCHANGE_ACCOUNT a third-party exchange account
- INTERNAL_WALLET a whitelisted address marked as internal to the workspace/organization
- EXTERNAL_WALLET a whitelisted address marked as external
- NETWORK_CONNECTION a member of the Fireblocks network
- FIAT_ACCOUNT a third-party account of a fiat bank (Signature, BCB, etc)
PayoutResponse:
type: object
properties:
payoutId:
type: string
paymentAccount:
$ref: "#/components/schemas/PaymentAccountResponse"
createdAt:
type: number
state:
$ref: "#/components/schemas/PayoutState"
status:
$ref: "#/components/schemas/PayoutStatus"
reasonOfFailure:
type: string
description: |
- INSUFFICIENT_BALANCE
- SOURCE_TRANSLATION
- SOURCE_NOT_UNIQUE
- SOURCE_NOT_FOUND
- SOURCE_TYPE_NOT_SUPPORTED
- EMPTY_SOURCE
- DESTINATION_TRANSLATION
- DESTINATION_NOT_UNIQUE
- DESTINATION_NOT_FOUND
- EMPTY_DESTINATION
- PARSING
- UNKNOWN
- FIREBLOCKS_CLIENT
- TRANSACTION_SUBMISSION
initMethod:
$ref: "#/components/schemas/PayoutInitMethod"
instructionSet:
type: array
items:
$ref: "#/components/schemas/PayoutInstructionResponse"
reportUrl:
type: string
required:
- payoutId
- createdAt
- state
- status
- paymentAccount
- instructionSet
CreateConfigOperationRequest:
oneOf:
- $ref: "#/components/schemas/CreateConversionConfigOperationRequest"
- $ref: "#/components/schemas/CreateTransferConfigOperationRequest"
- $ref: "#/components/schemas/CreateDisbursementConfigOperationRequest"
CreateDisbursementConfigOperationRequest:
type: object
properties:
type:
$ref: "#/components/schemas/DisbursementOperationType"
params:
$ref: "#/components/schemas/DisbursementOperationConfigParams"
required:
- type
- params
DisbursementOperationConfigParams:
type: object
properties:
paymentAccount:
$ref: "#/components/schemas/Account"
instructionSet:
type: array
items:
$ref: "#/components/schemas/DisbursementInstruction"
required:
- instructionSet
DisbursementInstruction:
oneOf:
- $ref: "#/components/schemas/DisbursementAmountInstruction"
- $ref: "#/components/schemas/DisbursementPercentageInstruction"
DisbursementPercentageInstruction:
type: object
properties:
payeeAccount:
$ref: "#/components/schemas/Destination"
assetId:
type: string
percentage:
type: string
required:
- payeeAccount
- assetId
- percentage
Destination:
oneOf:
- $ref: "#/components/schemas/Account"
- $ref: "#/components/schemas/OneTimeAddressAccount"
OneTimeAddressAccount:
type: object
properties:
oneTimeAddress:
type: string
tag:
type: string
required:
- oneTimeAddress
DisbursementAmountInstruction:
type: object
properties:
payeeAccount:
$ref: "#/components/schemas/Destination"
assetId:
type: string
amount:
type: string
required:
- payeeAccount
- assetId
- amount
DisbursementOperationType:
type: string
enum:
- DISBURSEMENT
CreateConversionConfigOperationRequest:
type: object
properties:
type:
$ref: "#/components/schemas/ConversionOperationType"
params:
$ref: "#/components/schemas/ConversionOperationConfigParams"
required:
- type
- params
ConversionOperationConfigParams:
type: object
properties:
amount:
type: string
accountId:
type: string
srcAssetId:
type: string
destAssetId:
type: string
slippageBasisPoints:
type: integer
minimum: 0
maximum: 10000
required:
- destAssetId
ConversionOperationType:
type: string
enum:
- CONVERSION
CreateTransferConfigOperationRequest:
type: object
properties:
type:
$ref: "#/components/schemas/TransferOperationType"
params:
$ref: "#/components/schemas/TransferOperationConfigParams"
required:
- type
- params
TransferOperationConfigParams:
type: object
properties:
amount:
type: string
assetId:
type: string
source:
$ref: "#/components/schemas/Account"
destination:
$ref: "#/components/schemas/Destination"
required:
- destination
TransferOperationType:
type: string
enum:
- TRANSFER
CorrelationData:
x-internal: true
oneOf:
- type: object
additionalProperties:
type: string
- type: string
PreScreening:
type: object
properties:
enabled:
type: boolean
required:
- enabled
CreateWorkflowConfigurationRequest:
type: object
x-internal: true
properties:
configName:
type: string
preScreening:
$ref: "#/components/schemas/PreScreening"
configOperations:
type: array
items:
$ref: "#/components/schemas/CreateConfigOperationRequest"
externalCorrelationData:
$ref: "#/components/schemas/CorrelationData"
required:
- configName
- configOperations
ConfigOperation:
oneOf:
- $ref: "#/components/schemas/ConversionConfigOperation"
- $ref: "#/components/schemas/TransferConfigOperation"
- $ref: "#/components/schemas/DisbursementConfigOperation"
DisbursementConfigOperation:
type: object
properties:
operationId:
type: string
type:
$ref: "#/components/schemas/DisbursementOperationType"
params:
$ref: "#/components/schemas/DisbursementOperationConfigParams"
status:
$ref: "#/components/schemas/ConfigOperationStatus"
validationFailure:
$ref: "#/components/schemas/DisbursementValidationFailure"
required:
- operationId
- type
- params
- status
DisbursementValidationFailure:
type: object
properties:
reason:
type: string
enum:
- ACCOUNT_NOT_FOUND
- ACCOUNT_TYPE_NOT_SUPPORTED
- INSUFFICIENT_BALANCE
- ASSET_NOT_FOUND
- ASSETS_CONTINUITY_MISMATCH
- EXCHANGE_BASKETS_MISMATCH
- ACCOUNTS_CONTINUITY_MISMATCH
- ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED
- EQUAL_ACCOUNTS_NOT_ALLOWED
- EQUAL_ASSETS_NOT_ALLOWED
- INVALID_AMOUNT
- UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED
- MANAGED_OPERATION_PARAMS_INVALID_SCHEMA
- INSTRUCTIONS_EXCEED_HUNDRED_PERCENT
- INSTRUCTIONS_ARRAY_EMPTY
data:
type: object
additionalProperties: {}
required:
- reason
ConfigOperationStatus:
type: string
enum:
- PENDING
- VALIDATION_IN_PROGRESS
- READY_FOR_EXECUTION
- VALIDATION_FAILED
TransferConfigOperation:
type: object
properties:
operationId:
type: string
type:
$ref: "#/components/schemas/TransferOperationType"
params:
$ref: "#/components/schemas/TransferOperationConfigParams"
status:
$ref: "#/components/schemas/ConfigOperationStatus"
validationFailure:
$ref: "#/components/schemas/TransferValidationFailure"
required:
- operationId
- type
- params
- status
TransferValidationFailure:
type: object
properties:
reason:
type: string
enum:
- ACCOUNT_NOT_FOUND
- ACCOUNT_TYPE_NOT_SUPPORTED
- INSUFFICIENT_BALANCE
- ASSET_NOT_FOUND
- ASSETS_CONTINUITY_MISMATCH
- EXCHANGE_BASKETS_MISMATCH
- ACCOUNTS_CONTINUITY_MISMATCH
- ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED
- EQUAL_ACCOUNTS_NOT_ALLOWED
- EQUAL_ASSETS_NOT_ALLOWED
- INVALID_AMOUNT
- UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED
- MANAGED_OPERATION_PARAMS_INVALID_SCHEMA
data:
type: object
additionalProperties: true
required:
- reason
ConversionConfigOperation:
type: object
properties:
operationId:
type: string
type:
$ref: "#/components/schemas/ConversionOperationType"
params:
$ref: "#/components/schemas/ConversionOperationConfigParams"
status:
$ref: "#/components/schemas/ConfigOperationStatus"
validationFailure:
$ref: "#/components/schemas/ConversionValidationFailure"
required:
- operationId
- type
- params
- status
ConversionValidationFailure:
type: object
properties:
reason:
type: string
enum:
- ACCOUNT_NOT_FOUND
- ACCOUNT_TYPE_NOT_SUPPORTED
- INSUFFICIENT_BALANCE
- ASSET_NOT_FOUND
- ASSETS_CONTINUITY_MISMATCH
- EXCHANGE_BASKETS_MISMATCH
- ACCOUNTS_CONTINUITY_MISMATCH
- ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED
- EQUAL_ACCOUNTS_NOT_ALLOWED
- EQUAL_ASSETS_NOT_ALLOWED
- INVALID_AMOUNT
- UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED
- MANAGED_OPERATION_PARAMS_INVALID_SCHEMA
- ACCOUNT_IS_NOT_EXCHANGE
- UNSUPPORTED_TRADING_METHOD
- ASSETS_CAN_NOT_CONVERTED
data:
type: object
additionalProperties: {}
required:
- reason
TransferOperationExecutionParams:
type: object
properties:
configOperationId:
type: string
executionParams:
type: object
properties:
amount:
type: string
assetId:
type: string
source:
$ref: "#/components/schemas/Account"
destination:
$ref: "#/components/schemas/Destination"
required:
- configOperationId
ConversionOperationExecutionParams:
type: object
properties:
configOperationId:
type: string
executionParams:
type: object
properties:
amount:
type: string
accountId:
type: string
srcAssetId:
type: string
destAssetId:
type: string
slippageBasisPoints:
type: integer
minimum: 0
maximum: 10000
required:
- configOperationId
WorkflowConfiguration:
type: object
x-internal: true
properties:
configId:
type: string
configName:
type: string
preScreening:
$ref: "#/components/schemas/PreScreening"
status:
$ref: "#/components/schemas/WorkflowConfigStatus"
createdAt:
type: number
configOperations:
type: array
items:
$ref: "#/components/schemas/ConfigOperation"
externalCorrelationData:
$ref: "#/components/schemas/CorrelationData"
required:
- configId
- configName
- configOperations
- createdAt
- status
WorkflowConfigurationId:
type: object
properties:
configId:
type: string
required:
- configId
DisbursementOperationExecutionParams:
type: object
properties:
configOperationId:
type: string
executionParams:
type: object
properties:
amount:
type: string
paymentAccount:
$ref: "#/components/schemas/Account"
instructionSet:
type: array
items:
$ref: "#/components/schemas/DisbursementInstruction"
required:
- configOperationId
WorkflowConfigStatus:
type: string
enum:
- PENDING
- VALIDATION_IN_PROGRESS
- VALIDATION_FAILED
- READY_FOR_EXECUTION
ExecutionScreeningOperation:
type: object
properties:
operationId:
type: string
status:
$ref: "#/components/schemas/ExecutionOperationStatus"
operationType:
$ref: "#/components/schemas/ScreeningOperationType"
validationFailure:
$ref: "#/components/schemas/ScreeningValidationFailure"
execution:
$ref: "#/components/schemas/ScreeningOperationExecution"
required:
- operationId
- status
- operationType
ScreeningOperationExecution:
type: object
properties:
output:
$ref: "#/components/schemas/ScreeningOperationExecutionOutput"
startedAt:
type: number
finishedAt:
type: number
failure:
$ref: "#/components/schemas/ScreeningOperationFailure"
required:
- startedAt
ScreeningOperationExecutionOutput:
type: object
properties:
verdicts:
type: array
items:
$ref: "#/components/schemas/ScreeningVerdict"
required:
- verdicts
ScreeningVerdict:
type: object
properties:
verdict:
type: string
enum:
- PASSED
- PASSED_WITH_ALERT
- REJECTED
- FAILED
- BYPASSED
executionOperationId:
type: string
account:
$ref: "#/components/schemas/Destination"
assetId:
type: string
amount:
type: string
matchedRule:
type: object
properties:
action:
type: string
category:
type: array
items:
type: string
required:
- executionOperationId
- account
- verdict
- assetId
- amount
ScreeningOperationFailure:
type: object
properties:
reason:
type: string
enum:
- AML_PROCESS_FAILED
- SCREENING_REJECTED
data:
$ref: "#/components/schemas/ScreeningOperationExecutionOutput"
required:
- reason
ExecutionOperationStatus:
type: string
enum:
- PENDING
- VALIDATION_IN_PROGRESS
- VALIDATION_FAILED
- VALIDATION_COMPLETED
- PREVIEW_REQUESTED
- PREVIEW_IN_PROGRESS
- PREVIEW_FAILED
- READY_FOR_LAUNCH
- EXECUTION_REQUESTED
- EXECUTION_IN_PROGRESS
- EXECUTION_COMPLETED
- EXECUTION_FAILED
ScreeningOperationType:
type: string
enum:
- SCREENING
ScreeningValidationFailure:
type: object
properties:
reason:
type: string
enum:
- SCREENING_DISABLED_IN_TENANT
data:
type: object
additionalProperties: {}
required:
- reason
ExecutionConversionOperation:
type: object
properties:
operationId:
type: string
status:
$ref: "#/components/schemas/ExecutionOperationStatus"
validationFailure:
$ref: "#/components/schemas/ConversionValidationFailure"
operationType:
$ref: "#/components/schemas/ConversionOperationType"
preview:
$ref: "#/components/schemas/ConversionOperationPreview"
execution:
$ref: "#/components/schemas/ConversionOperationExecution"
required:
- operationId
- status
- operationType
ConversionOperationExecution:
type: object
properties:
input:
$ref: "#/components/schemas/ConversionOperationConfigParams"
output:
$ref: "#/components/schemas/ConversionOperationExecutionOutput"
startedAt:
type: number
finishedAt:
type: number
failure:
$ref: "#/components/schemas/ConversionOperationFailure"
required:
- input
- startedAt
ConversionOperationFailure:
type: object
properties:
reason:
type: string
enum:
- INVALID_AMOUNT
- SLIPPAGE_EXCEEDED
- AMOUNT_TOO_SMALL
- INSUFFICIENT_FUNDS
data:
type: object
additionalProperties: {}
required:
- reason
ConversionOperationExecutionOutput:
type: object
properties:
amount:
$ref: "#/components/schemas/AssetAmount"
fee:
$ref: "#/components/schemas/AssetAmount"
conversionRate:
type: string
required:
- amount
- fee
- conversionRate
AssetAmount:
type: object
properties:
amount:
type: string
assetId:
type: string
required:
- amount
- assetId
ConversionOperationPreview:
type: object
properties:
input:
$ref: "#/components/schemas/ConversionOperationConfigParams"
output:
$ref: "#/components/schemas/ConversionOperationPreviewOutput"
failure:
$ref: "#/components/schemas/ConversionOperationFailure"
required:
- input
ConversionOperationPreviewOutput:
type: object
properties:
amount:
$ref: "#/components/schemas/AssetAmount"
fee:
$ref: "#/components/schemas/AssetAmount"
conversionRate:
type: string
timeSeconds:
type: number
required:
- amount
- fee
- conversionRate
- timeSeconds
ExecutionTransferOperation:
type: object
properties:
operationId:
type: string
status:
$ref: "#/components/schemas/ExecutionOperationStatus"
validationFailure:
$ref: "#/components/schemas/TransferValidationFailure"
operationType:
$ref: "#/components/schemas/TransferOperationType"
preview:
$ref: "#/components/schemas/TransferOperationPreview"
execution:
$ref: "#/components/schemas/TransferOperationExecution"
required:
- operationId
- status
- operationType
TransferOperationExecution:
type: object
properties:
input:
$ref: "#/components/schemas/TransferOperationConfigParams"
output:
$ref: "#/components/schemas/TransferOperationExecutionOutput"
txId:
type: string
startedAt:
type: number
finishedAt:
type: number
failure:
$ref: "#/components/schemas/TransferOperationFailure"
required:
- input
- startedAt
TransferOperationFailure:
type: object
properties:
reason:
type: string
enum:
- INVALID_AMOUNT
- SUBMISSION_FAILED
- TRANSACTION_FAILED
data:
type: object
properties:
txId:
type: string
txStatus:
type: string
txSubStatus:
type: string
required:
- txId
- txStatus
required:
- reason
TransferOperationExecutionOutput:
type: object
properties:
amount:
$ref: "#/components/schemas/AssetAmount"
fee:
$ref: "#/components/schemas/AssetAmount"
required:
- amount
- fee
TransferOperationPreview:
type: object
properties:
input:
$ref: "#/components/schemas/TransferOperationConfigParams"
output:
$ref: "#/components/schemas/TransferOperationPreviewOutput"
failure:
$ref: "#/components/schemas/TransferOperationFailure"
required:
- input
TransferOperationPreviewOutput:
type: object
properties:
amount:
$ref: "#/components/schemas/AssetAmount"
fee:
$ref: "#/components/schemas/AssetAmount"
isSignRequired:
type: boolean
timeSeconds:
type: number
required:
- amount
- fee
- isSignRequired
- timeSeconds
ConfigOperationSnapshot:
oneOf:
- $ref: "#/components/schemas/ConfigConversionOperationSnapshot"
- $ref: "#/components/schemas/ConfigTransferOperationSnapshot"
- $ref: "#/components/schemas/ConfigDisbursementOperationSnapshot"
ConfigDisbursementOperationSnapshot:
type: object
properties:
operationId:
type: string
type:
$ref: "#/components/schemas/DisbursementOperationType"
params:
$ref: "#/components/schemas/DisbursementOperationConfigParams"
required:
- operationId
- type
- params
ConfigTransferOperationSnapshot:
type: object
properties:
operationId:
type: string
type:
$ref: "#/components/schemas/TransferOperationType"
params:
$ref: "#/components/schemas/TransferOperationConfigParams"
required:
- operationId
- type
- params
ConfigConversionOperationSnapshot:
type: object
properties:
operationId:
type: string
type:
$ref: "#/components/schemas/ConversionOperationType"
params:
$ref: "#/components/schemas/ConversionOperationConfigParams"
required:
- operationId
- type
- params
ExecutionDisbursementOperation:
type: object
properties:
operationId:
type: string
status:
$ref: "#/components/schemas/ExecutionOperationStatus"
validationFailure:
$ref: "#/components/schemas/DisbursementValidationFailure"
operationType:
$ref: "#/components/schemas/DisbursementOperationType"
preview:
$ref: "#/components/schemas/DisbursementOperationPreview"
execution:
$ref: "#/components/schemas/DisbursementOperationExecution"
required:
- operationId
- status
- operationType
DisbursementOperationExecution:
type: object
properties:
input:
$ref: "#/components/schemas/DisbursementOperationInput"
output:
$ref: "#/components/schemas/DisbursementOperationExecutionOutput"
payoutId:
type: string
startedAt:
type: number
finishedAt:
type: number
failure:
$ref: "#/components/schemas/OperationExecutionFailure"
required:
- input
- startedAt
OperationExecutionFailure:
type: object
properties:
reason:
type: string
data:
type: object
additionalProperties: {}
required:
- reason
DisbursementOperationExecutionOutput:
type: object
properties:
instructionSet:
type: array
items:
$ref: "#/components/schemas/DisbursementInstructionOutput"
required:
- instructionSet
DisbursementInstructionOutput:
type: object
properties:
amount:
$ref: "#/components/schemas/AssetAmount"
fee:
$ref: "#/components/schemas/AssetAmount"
payeeAccount:
$ref: "#/components/schemas/Destination"
required:
- amount
- fee
- payeeAccount
DisbursementOperationInput:
type: object
properties:
amount:
type: string
paymentAccount:
$ref: "#/components/schemas/Account"
instructionSet:
type: array
items:
$ref: "#/components/schemas/DisbursementInstruction"
required:
- paymentAccount
- instructionSet
DisbursementOperationPreview:
type: object
properties:
input:
$ref: "#/components/schemas/DisbursementOperationInput"
output:
$ref: "#/components/schemas/DisbursementOperationPreviewOutput"
failure:
$ref: "#/components/schemas/OperationExecutionFailure"
required:
- input
DisbursementOperationPreviewOutput:
type: object
properties:
instructionSet:
type: array
items:
allOf:
- $ref: "#/components/schemas/DisbursementInstructionOutput"
- type: object
properties:
timeSeconds:
type: number
required:
- timeSeconds
required:
- instructionSet
WorkflowConfigurationSnapshot:
type: object
x-internal: true
properties:
configId:
type: string
configName:
type: string
createdAt:
type: number
configOperations:
type: array
items:
$ref: "#/components/schemas/ConfigOperationSnapshot"
externalCorrelationData:
$ref: "#/components/schemas/CorrelationData"
required:
- configId
- configName
- configOperations
- createdAt
WorkflowExecutionOperation:
oneOf:
- $ref: "#/components/schemas/ExecutionScreeningOperation"
- $ref: "#/components/schemas/ExecutionConversionOperation"
- $ref: "#/components/schemas/ExecutionTransferOperation"
- $ref: "#/components/schemas/ExecutionDisbursementOperation"
CreateWorkflowExecutionRequest:
type: object
x-internal: true
properties:
configId:
type: string
preScreening:
$ref: "#/components/schemas/PreScreening"
params:
type: array
items:
anyOf:
- $ref: "#/components/schemas/ConversionOperationExecutionParams"
- $ref: "#/components/schemas/TransferOperationExecutionParams"
- $ref: "#/components/schemas/DisbursementOperationExecutionParams"
externalCorrelationData:
$ref: "#/components/schemas/CorrelationData"
required:
- configId
- params
WorkflowExecution:
type: object
x-internal: true
properties:
executionId:
type: string
preScreening:
$ref: "#/components/schemas/PreScreening"
configSnapshot:
$ref: "#/components/schemas/WorkflowConfigurationSnapshot"
executionOperations:
type: array
items:
$ref: "#/components/schemas/WorkflowExecutionOperation"
status:
type: string
enum:
- PENDING
- VALIDATION_IN_PROGRESS
- VALIDATION_FAILED
- VALIDATION_COMPLETED
- PREVIEW_IN_PROGRESS
- PREVIEW_FAILED
- READY_FOR_LAUNCH
- EXECUTION_IN_PROGRESS
- EXECUTION_COMPLETED
- EXECUTION_FAILED
triggeredBy:
type: string
triggeredAt:
type: number
finishedAt:
type: number
externalCorrelationData:
$ref: "#/components/schemas/CorrelationData"
required:
- executionId
- status
- executionOperations
- configSnapshot
PaymentAccountResponse:
type: object
properties:
id:
type: string
type:
$ref: "#/components/schemas/PaymentAccountType"
PayoutState:
type: string
enum:
- CREATED
- FILE_FOUND
- REQUESTED
- TRANSLATED
- PROCESSING
- SUBMITTED
- FINALIZED
- INSUFFICIENT_BALANCE
- FAILED
description: |
- CREATED - payout instruction set created with all its details
- FILE_FOUND - new file found in the FTP
- REQUESTED - payout requested with all its details
- TRANSLATED - payout instruction account IDs identified and translated
- PROCESSING - payout instruction set executed and is processing
- SUBMITTED - transactions submitted for payout instructions
- FINALIZED - payout finished processing, all transactions processed successfully
- INSUFFICIENT_BALANCE - insufficient balance in the payment account (can be a temporary state)
- FAILED - one or more of the payout instructions failed
PayoutStatus:
type: string
enum:
- REGISTERED
- VERIFYING
- IN_PROGRESS
- DONE
- INSUFFICIENT_BALANCE
- FAILED
description: |
- REQUESTED payout requested with all its details
- VERIFIED payout instruction set details were verified
- PROCESSING payout instruction set executed and is processing
- FINALIZED payout done (all payout instructions completed successfully)
- INSUFFICIENT_BALANCE insufficient balance in the payment account (can be a temporary state)
- FAILED one or more of the payout instructions failed
PayoutInitMethod:
type: string
enum:
- FILE
- API
PayoutInstructionResponse:
type: object
properties:
id:
type: string
payeeAccount:
$ref: "#/components/schemas/PayeeAccountResponse"
amount:
$ref: "#/components/schemas/InstructionAmount"
state:
$ref: "#/components/schemas/PayoutInstructionState"
transactions:
type: array
items:
$ref: "#/components/schemas/Transaction"
required:
- amount
- payeeAccount
- state
- transactions
PayeeAccountResponse:
type: object
properties:
id:
type: string
type:
$ref: "#/components/schemas/PayeeAccountType"
PayoutInstructionState:
type: string
enum:
- NOT_STARTED
- TRANSACTION_SENT
- COMPLETED
- FAILED
- TRANSLATION_ERROR
- SKIPPED
description: |
- NOT_STARTED - waiting to start
- TRANSACTION_SENT - an underlying transaction was sent
- COMPLETED - completed successfully
- FAILED - failed
- TRANSLATION_ERROR -lookup of the destination failed (due to changes in the underlying whitelisted external wallet or similar)
- SKIPPED- no transaction(s) created for this instruction
Transaction:
type: object
properties:
id:
type: string
state:
type: string
enum:
- SUBMITTED
- QUEUED
- PENDING_AUTHORIZATION
- PENDING_SIGNATURE
- BROADCASTING
- PENDING_3RD_PARTY_MANUAL_APPROVAL
- PENDING_3RD_PARTY
- PENDING
- CONFIRMING
- CONFIRMED
- COMPLETED
- PARTIALLY_COMPLETED
- PENDING_AML_SCREENING
- CANCELLING
- CANCELLED
- REJECTED
- BLOCKED
- FAILED
- TIMEOUT
timestamp:
type: number
format: date-time
instructionId:
type: string
required:
- id
- state
DispatchPayoutResponse:
type: object
properties:
payoutId:
type: string
required:
- payoutId
#/Payments - Payout
TravelRuleAddress:
type: object
properties:
street:
type: string
example: 1234 Example St
description: Street address
city:
type: string
example: New York
description: City
state:
type: string
example: NY
description: State or province
postalCode:
type: string
example: "10001"
description: Postal or ZIP code
required:
- street
- city
- state
- postalCode
TravelRuleValidateTransactionRequest:
type: object
properties:
transactionAsset:
type: string
example: BTC
description: Transaction asset symbol BTC,ETH)
destination:
type: string
example: bc1qxy2kgdygjrsqtzq2n0yrf1234p83kkfjhx0wlh
description: Transaction destination address
transactionAmount:
type: string
example: "10"
description: Transaction amount in the transaction asset
originatorVASPdid:
type: string
example: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
description: This is the identifier assigned to your VASP
originatorEqualsBeneficiary:
type: boolean
example: false
description: '"True" if the originator and beneficiary is the same person and you therefore do not need to collect any information. "False" if it is a third-party transfer.'
travelRuleBehavior:
type: boolean
example: true
description: This will also check if the transaction is a TRAVEL_RULE in the beneficiary VASP's jurisdiction
beneficiaryVASPdid:
type: string
example: did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992
description: This is the identifier assigned to the VASP the funds are being sent to
beneficiaryVASPname:
type: string
example: HelloCrypto
description: Beneficiary VASP name
beneficiaryName:
type: string
example: John Doe
description: Beneficiary name
beneficiaryAccountNumber:
type: string
example: 1234-1234-1234-12234
description: Beneficiary name
beneficiaryAddress:
example: '{"addressLine: [Wayne Manor, Gotham City, New York, USA]"}'
description: Beneficiary name
allOf:
- $ref: "#/components/schemas/TravelRuleAddress"
required:
- transactionAsset
- destination
- transactionAmount
- originatorVASPdid
- originatorEqualsBeneficiary
- travelRuleBehavior
- beneficiaryVASPdid
- beneficiaryVASPname
- beneficiaryName
- beneficiaryAccountNumber
- beneficiaryAddress
TravelRuleValidateTransactionResponse:
type: object
properties:
isValid:
type: boolean
description: '"isValid" will tell you if you have collected all the information needed for the travel rule data transfer. Once this field = "true", you can move on to the next step which is to transfer the front-end information to your back-end and perform Travel Rule Transaction create'
example: true
type:
type: string
description: '"type" will tell you if the virtual asset value converted to FIAT value of the withdrawal request is above (=TRAVELRULE) or below (=BELOW_THRESHOLD) the threshold in your jurisdiction. If it is to an unhosted wallet which does not require travel rule information to be sent and only collected, it will say NON_CUSTODIAL.'
example: TRAVELRULE
beneficiaryAddressType:
type: string
description: '"beneficiaryAddressType" will tell you if your blockchain analytics provider or internal address book has been able to identify the wallet address.'
example: UNKNOWN
addressSource:
type: string
description: '"addressSource" will tell you if the address was found in your internal address book or identified by the blockchain analytics provider.'
example: UNKNOWN
beneficiaryVASPdid:
type: string
description: The VASP DID of the beneficiary VASP
example: did:ethr:0x46a7ed5813ce735387df2bfb245bd7722e0de992
beneficiaryVASPname:
type: string
description: '"beneficiaryVASPname" will tell you the name of the VASP that has been identified as the owner of the wallet address. This name is used in a subsequent call to get its DID.'
example: Fireblocks
warnings:
description: '"errors/warnings" will tell you what information about the beneficiary you need to collect from the sender.'
example:
- optional-beneficiaryAccountNumber
type: array
items:
type: string
required:
- isValid
- type
- beneficiaryAddressType
- addressSource
- beneficiaryVASPdid
- beneficiaryVASPname
- warnings
TravelRuleTransactionBlockchainInfo:
type: object
properties:
txHash:
type: string
origin:
type: string
destination:
type: string
required:
- txHash
- origin
- destination
TravelRulePiiIVMS:
type: object
properties:
fullName:
type: string
dateOfBirth:
type: string
placeOfBirth:
type: string
address:
type: string
identificationNumber:
type: string
nationality:
type: string
countryOfResidence:
type: string
taxIdentificationNumber:
type: string
customerNumber:
type: string
required:
- fullName
- dateOfBirth
- placeOfBirth
- address
- identificationNumber
- nationality
- countryOfResidence
- taxIdentificationNumber
- customerNumber
TravelRuleOwnershipProof:
type: object
properties:
type:
type: string
example: passport
description: Type of ownership proof
id:
type: string
example: "123456789"
description: Identification number
name:
type: string
example: Alice
description: Name of owner
country:
type: string
example: US
description: Country of issuance
issueDate:
type: string
example: "2022-01-01"
description: Date of issuance
issuer:
type: string
example: US Government
description: Name of issuing entity
required:
- type
- id
- name
- country
- issueDate
- issuer
TravelRuleValidateFullTransactionRequest:
type: object
properties:
transactionAsset:
type: string
description: The asset involved in the transaction
transactionAmount:
type: string
description: The amount of the transaction
originatorDid:
type: string
description: The DID of the transaction originator
beneficiaryDid:
type: string
description: The DID of the transaction beneficiary
originatorVASPdid:
type: string
description: The VASP ID of the transaction originator
beneficiaryVASPdid:
type: string
description: The VASP ID of the transaction beneficiary
beneficiaryVASPname:
type: string
description: The name of the VASP acting as the beneficiary
transactionBlockchainInfo:
description: Information about the blockchain transaction
allOf:
- $ref: "#/components/schemas/TravelRuleTransactionBlockchainInfo"
originator:
description: Information about the originator of the transaction
allOf:
- $ref: "#/components/schemas/TravelRulePiiIVMS"
beneficiary:
description: Information about the beneficiary of the transaction
allOf:
- $ref: "#/components/schemas/TravelRulePiiIVMS"
encrypted:
type: string
description: Encrypted data related to the transaction
protocol:
type: string
description: The protocol used to perform the travel rule
notificationEmail:
type: string
description: The email address where a notification should be sent upon completion of the travel rule
skipBeneficiaryDataValidation:
type: boolean
description: Whether to skip validation of beneficiary data
travelRuleBehavior:
type: boolean
description: Whether to check if the transaction is a TRAVEL_RULE in the beneficiary VASP's jurisdiction
originatorProof:
description: Ownership proof related to the originator of the transaction
allOf:
- $ref: "#/components/schemas/TravelRuleOwnershipProof"
beneficiaryProof:
description: Ownership proof related to the beneficiary of the transaction
allOf:
- $ref: "#/components/schemas/TravelRuleOwnershipProof"
pii:
description: Personal identifiable information related to the transaction
allOf:
- $ref: "#/components/schemas/TravelRulePiiIVMS"
required:
- transactionAsset
- transactionAmount
- originatorDid
- beneficiaryDid
- originatorVASPdid
- beneficiaryVASPdid
- beneficiaryVASPname
- transactionBlockchainInfo
- originator
- beneficiary
- encrypted
- protocol
- notificationEmail
- skipBeneficiaryDataValidation
- travelRuleBehavior
- originatorProof
- beneficiaryProof
- pii
TravelRuleIssuer:
type: object
properties:
issuerDid:
type: string
required:
- issuerDid
TravelRuleIssuers:
type: object
properties:
yearFounded:
$ref: "#/components/schemas/TravelRuleIssuer"
isRegulated:
$ref: "#/components/schemas/TravelRuleIssuer"
regulatoryAuthorities:
$ref: "#/components/schemas/TravelRuleIssuer"
name:
$ref: "#/components/schemas/TravelRuleIssuer"
logo:
$ref: "#/components/schemas/TravelRuleIssuer"
website:
$ref: "#/components/schemas/TravelRuleIssuer"
legalName:
$ref: "#/components/schemas/TravelRuleIssuer"
legalStructure:
$ref: "#/components/schemas/TravelRuleIssuer"
incorporationCountry:
$ref: "#/components/schemas/TravelRuleIssuer"
businessNumber:
$ref: "#/components/schemas/TravelRuleIssuer"
addressLine1:
$ref: "#/components/schemas/TravelRuleIssuer"
city:
$ref: "#/components/schemas/TravelRuleIssuer"
country:
$ref: "#/components/schemas/TravelRuleIssuer"
description:
$ref: "#/components/schemas/TravelRuleIssuer"
required:
- yearFounded
- isRegulated
- regulatoryAuthorities
- name
- logo
- website
- legalName
- legalStructure
- incorporationCountry
- businessNumber
- addressLine1
- city
- country
- description
TravelRuleVASP:
type: object
properties:
did:
type: string
name:
type: string
verificationStatus:
type: string
addressLine1:
type: string
addressLine2:
type: string
city:
type: string
country:
type: string
emailDomains:
type: string
website:
type: string
logo:
type: string
legalStructure:
type: string
legalName:
type: string
yearFounded:
type: string
incorporationCountry:
type: string
isRegulated:
type: string
otherNames:
type: string
identificationType:
type: string
identificationCountry:
type: string
businessNumber:
type: string
regulatoryAuthorities:
type: string
jurisdictions:
type: string
street:
type: string
number:
type: string
unit:
type: string
postCode:
type: string
state:
type: string
certificates:
type: string
description:
type: string
travelRule_OPENVASP:
type: string
travelRule_SYGNA:
type: string
travelRule_TRISA:
type: string
travelRule_TRLIGHT:
type: string
travelRule_EMAIL:
type: string
travelRule_TRP:
type: string
travelRule_SHYFT:
type: string
travelRule_USTRAVELRULEWG:
type: string
createdAt:
type: string
createdBy:
type: string
updatedAt:
type: string
updatedBy:
type: string
lastSentDate:
type: string
lastReceivedDate:
type: string
documents:
type: string
hasAdmin:
type: boolean
isNotifiable:
type: boolean
issuers:
$ref: "#/components/schemas/TravelRuleIssuers"
required:
- did
- name
- verificationStatus
- addressLine1
- addressLine2
- city
- country
- emailDomains
- website
- logo
- legalStructure
- legalName
- yearFounded
- incorporationCountry
- isRegulated
- otherNames
- identificationType
- identificationCountry
- businessNumber
- regulatoryAuthorities
- jurisdictions
- street
- number
- unit
- postCode
- state
- certificates
- description
- travelRule_OPENVASP
- travelRule_SYGNA
- travelRule_TRISA
- travelRule_TRLIGHT
- travelRule_EMAIL
- travelRule_TRP
- travelRule_SHYFT
- travelRule_USTRAVELRULEWG
- createdAt
- createdBy
- updatedAt
- updatedBy
- lastSentDate
- lastReceivedDate
- documents
- hasAdmin
- isNotifiable
- issuers
TravelRuleGetAllVASPsResponse:
type: object
properties:
vasps:
type: array
items:
$ref: "#/components/schemas/TravelRuleVASP"
required:
- vasps
TravelRuleUpdateVASPDetails:
type: object
properties:
did:
type: string
example: did:ethr:0x44957e75d6ce4a5bf37aae117da86422c848f7c2
description: The decentralized identifier of the VASP
pii_didkey:
type: string
example: did:key:z6Mks5CZRaiooKYhq5TwtXQC1gWhwiZnmiKfFrMnYY62MhYf
description: The PII DID key of the VASP
required:
- did
- pii_didkey
PolicySrcOrDestType:
type: string
enum:
- EXCHANGE
- UNMANAGED
- VAULT
- NETWORK_CONNECTION
- COMPOUND
- FIAT_ACCOUNT
- ONE_TIME_ADDRESS
- "*"
description: |
* EXCHANGE - A third-party exchange account connected to your workspace
* UNMANAGED - A unmanaged wallet outside of Fireblocks workspace
* VAULT - An account in your Fireblocks Vault
* NETWORK_CONNECTION - A connection in your Fireblocks network
* COMPOUND - (deprecated) An asset retrieved by using the Compound DeFI protocol
* FIAT_ACCOUNT - A third-party fiat account connected to your workspace
* ONE_TIME_ADDRESS - A non-whitelisted asset from your Fireblocks Workspace
* "*" - All types
PolicySrcOrDestSubType:
type: string
enum:
- EXTERNAL
- INTERNAL
- CONTRACT
- EXCHANGETEST
- "*"
description: |
* EXTERNAL - A whitelisted wallet assigned as external is typically used for addresses managed by your clients and counterparties
* INTERNAL - A whitelisted wallet assigned as internal, is typically used for addresses that you control outside of your Fireblocks workspace
* CONTRACT - A whitelisted wallet assigned as contract is for identifying and managing external smart contracts
* EXCHANGETEST - Exchanges which operate only on testnet assets
* "*" - All subtypes
PolicySrcOrDestId:
type: string
description: |
Defines the account id, options are
* "*" - All accounts
* Specific account id
AmountAggregationTimePeriodMethod:
type: string
enum:
- PER_SINGLE_MATCH
- ACROSS_ALL_MATCHES
description: |
* PER_SINGLE_MATCH - Apply the limit to each listed entity
* ACROSS_ALL_MATCHES - Apply the limit to the sum of all listed entities
srcOrDestWithIdOnly:
type: array
description: Defines source or destination component with id attribute only
items:
type: string
minItems: 1
maxItems: 1
srcOrDestWithIdAndType:
type: array
description: Defines source or destination component with id and type attributes
items:
type: string
enum:
- EXCHANGE
- UNMANAGED
- VAULT
- NETWORK_CONNECTION
- COMPOUND
- FIAT_ACCOUNT
- ONE_TIME_ADDRESS
- "*"
minItems: 2
maxItems: 2
srcOrDestWithAllAttributes:
type: array
description: Defines source or destination component with id, type and subtype attributes
items:
type: string
enum:
- EXCHANGE
- UNMANAGED
- VAULT
- NETWORK_CONNECTION
- COMPOUND
- FIAT_ACCOUNT
- ONE_TIME_ADDRESS
- "*"
- $ref: "#/components/schemas/PolicySrcOrDestId"
- $ref: "#/components/schemas/PolicySrcOrDestType"
- $ref: "#/components/schemas/PolicySrcOrDestSubType"
minItems: 3
maxItems: 3
PolicyRule:
type: object
description: Policy rule which is enforced on transactions
properties:
operator:
type: string
description: (deprecated - replaced by "operators") |
Defines users who can initiate the type of transaction to which the rule applies. options are
* "*" - All users are allowed
* Specific User id
deprecated: true
operators:
type: object
description: Defines users/groups who can initiate the type of transaction to which the rule applies.
properties:
wildcard:
type: string
enum:
- "*"
description: |
If used then this property should appear as the only child property
* "*" - All users are allowed
users:
type: array
description: Set of users ids
items:
type: string
usersGroups:
type: array
description: Set of group ids
items:
type: string
services:
type: array
description: set of services to initiate transactions
items:
type: string
transactionType:
type: string
enum:
- TRANSFER
- CONTRACT_CALL
- APPROVE
- MINT
- BURN
- SUPPLY
- REDEEM
- STAKE
- RAW
- TYPED_MESSAGE
description: |
Defines the type of transaction to which the rule applies.
* TRANSFER - Default. Transfers funds from one account to another
* CONTRACT_CALL - Calls a smart contract, mainly for DeFi operations.
* APPROVE - Allows a smart contract to withdraw from a designated wallet.
* MINT - Perform a mint operation (increase supply) on a supported token
* BURN - Perform a burn operation (reduce supply) on a supported token
* SUPPLY - Use for DeFi to lend assets
* REDEEM - Use for DeFi to get lending back
* STAKE - Allows you to allocate and lock certain assets for earning staking rewards.
* RAW - An off-chain message with no predefined format, use it to sign any message with your private key.
* TYPED_MESSAGE - An off-chain message type that follows a predefined format, used to sign specific messages that are not actual transactions.
designatedSigner:
type: string
description: (deprecated - replaced by "designatedSigners") Id representing the user who signs transactions that match a specific rule
deprecated: true
designatedSigners:
type: object
description: Set of ids representing the users who signs transactions that match a specific rule
properties:
users:
type: array
description: Set of users ids
items:
type: string
usersGroups:
type: array
description: Set of group ids
items:
type: string
type:
type: string
description: Policy rule type
enum:
- TRANSFER
action:
type: string
enum:
- ALLOW
- BLOCK
- 2-TIER
description: |
Defines what occurs when a transaction meets the rule's criteria
* ALLOW - The transaction goes through and can be signed without requiring additional approvals
* BLOCK - The transaction is automatically blocked
* 2-TIER - Only these users or user groups can approve
If any of them reject the transaction before the required approval threshold is met, the transaction doesn't go through
The list of entities are set is "authorizationGroups" field
asset:
type: string
description: |
Defines the type of asset being transacted, options are
* "*" - All assets
* Specific asset
srcType:
description: (deprecated - replaced by "src") source account type
deprecated: true
allOf:
- $ref: "#/components/schemas/PolicySrcOrDestType"
srcSubType:
description: (deprecated - replaced by "src") source sub account type
deprecated: true
allOf:
- $ref: "#/components/schemas/PolicySrcOrDestSubType"
srcId:
description: (deprecated - replaced by "src") source account id
deprecated: true
allOf:
- $ref: "#/components/schemas/PolicySrcOrDestId"
src:
type: object
description: Defines source accounts the rule allows transfers to originate from
properties:
ids:
type: array
description: A set of ids in a tuple format
items:
oneOf:
- $ref: "#/components/schemas/srcOrDestWithIdOnly"
- $ref: "#/components/schemas/srcOrDestWithIdAndType"
- $ref: "#/components/schemas/srcOrDestWithAllAttributes"
dstType:
description: (deprecated - replaced by "dst") destination account type
deprecated: true
allOf:
- $ref: "#/components/schemas/PolicySrcOrDestType"
dstSubType:
description: (deprecated - replaced by "dst") destination sub account type
deprecated: true
allOf:
- $ref: "#/components/schemas/PolicySrcOrDestSubType"
dstId:
description: (deprecated - replaced by "dst") destination account id
deprecated: true
allOf:
- $ref: "#/components/schemas/PolicySrcOrDestId"
dst:
type: object
description: Defines the destination accounts the rule allows transfers to
properties:
ids:
type: array
description: A set of ids in a tuple format
items:
oneOf:
- $ref: "#/components/schemas/srcOrDestWithIdOnly"
- $ref: "#/components/schemas/srcOrDestWithIdAndType"
- $ref: "#/components/schemas/srcOrDestWithAllAttributes"
dstAddressType:
type: string
enum:
- WHITELISTED
- ONE_TIME
- "*"
description: |
Defines whether the destination to which you are sending funds must be whitelisted, to allow one-time transfers to non-whitelisted external addresses, or both.
By default, you can only transfer to an external address after it’s whitelisted.
* WHITELISTED - Can only be sent to whitelisted addresses.
* ONE_TIME - Can only be sent to non-whitelisted external addresses.
* "*" - can be sent to whitelisted addresses or non-whitelisted external
amountCurrency:
type: string
enum:
- USD
- EUR
- NATIVE
description: |
* USD - Limits the amount of any asset users can transfer based on the USD equivalent of the asset.
* EUR - Limits the amount of any asset users can transfer based on the EURO equivalent of the asset.
* NATIVE - Limits the amount of an asset a user can transfer when using a specific asset.
amountScope:
type: string
enum:
- SINGLE_TX
- TIMEFRAME
description: |
* SINGLE_TX - limit applies to a single transaction
* TIMEFRAME - limit applies to all transactions within the defined time period
amount:
description: Defines the value a transaction must exceed for the rule to apply to it (according to the amountCurrency field)
oneOf:
- type: string
description: Numeric string (recommended)
- type: number
description: Number (deprecated)
periodSec:
type: number
description: |
Time period in seconds applied by the amountScope field to accumulate transferred amounts in transactions that match the rule, until the total exceeds the value you specify under Minimum.
When the specified amount is reached within that period, whether by one or many transactions, further transactions in that period either fail or require more approvals.
authorizers:
type: array
description: (deprecated - replaced by "authorizationGroups") Allowed entities which can approves a transaction
deprecated: true
items:
type: string
authorizersCount:
type: number
description: (deprecated - replaced by "authorizationGroups") Min amount of entities which are needed to approve a transaction
deprecated: true
authorizationGroups:
type: object
description: Defines the transaction approval terms
properties:
logic:
type: string
enum:
- AND
- OR
description: |
* AND - requires approval of all authorization groups
* OR - requires approval of at least one of the authorization groups
allowOperatorAsAuthorizer:
type: boolean
description: Defines whether the user who initiates a transaction can approve their own transaction and count toward the approval threshold for their transaction
groups:
type: array
description: Groups of entities which can approve the transaction
items:
type: object
properties:
users:
type: array
description: User ids
items:
type: string
usersGroups:
type: array
description: Group ids
items:
type: string
th:
type: number
description: Represents the min amount of entities which are required to approve the transaction, default is 1.
amountAggregation:
type: object
description: |
Defines the method by which the Policy Engine calculates accumulation.
It uses the Initiator, Source, and Destination to calculate accumulation toward the value under Minimum, for the time under Time Period.
properties:
operators:
$ref: "#/components/schemas/AmountAggregationTimePeriodMethod"
srcTransferPeers:
$ref: "#/components/schemas/AmountAggregationTimePeriodMethod"
dstTransferPeers:
$ref: "#/components/schemas/AmountAggregationTimePeriodMethod"
rawMessageSigning:
type: object
description: Raw message signing configuration
properties:
algorithm:
type: string
derivationPath:
type: object
properties:
path:
type: array
items:
type: number
applyForApprove:
type: boolean
description: Applying this rule over APPROVE type transactions (can only be enabled when rule's transaction type is TRANSFER)
applyForTypedMessage:
type: boolean
description: Applying this rule over TYPED_MESSAGE type transactions (can only be enabled when rule's transaction type is CONTRACT_CALL)
externalDescriptor:
type: string
description: A unique id identifying the rule
required:
- type
- action
- asset
- amountCurrency
- amountScope
- amount
- periodSec
- externalDescriptor
PublishResult:
type: object
description: Response object of the publish policy operation
properties:
status:
$ref: "#/components/schemas/PolicyStatus"
rules:
type: array
items:
$ref: "#/components/schemas/PolicyRule"
checkResult:
$ref: "#/components/schemas/PolicyCheckResult"
metadata:
$ref: "#/components/schemas/PolicyMetadata"
required:
- status
- rules
- checkResult
- metadata
CreateConsoleUser:
type: object
properties:
firstName:
type: string
lastName:
type: string
role:
type: string
email:
type: string
required:
- firstName
- lastName
- role
- email
CreateAPIUser:
type: object
properties:
role:
type: string
description: User role
name:
type: string
description: users name
csrPem:
type: string
description: only for user with signing capabilities
coSignerSetupType:
type: string
description: cosigner setup type
coSignerSetupIsFirstUser:
type: boolean
description: is first?
required:
- role
- name
PolicyStatus:
type: string
enum:
- SUCCESS
- UNVALIDATED
- INVALID_CONFIGURATION
- PENDING
- PENDING_CONSOLE_APPROVAL
- AWAITING_QUORUM
- UNHANDLED_ERROR
description: |
* SUCCESS - success
* UNVALIDATED - not validated yet
* INVALID_CONFIGURATION - at least one rule is invalid
* PENDING - pending approval
* PENDING_CONSOLE_APPROVAL - pending approval from the console app
* AWAITING_QUORUM - pending quorum approval
* UNHANDLED_ERROR - unhandled error
PolicyMetadata:
type: object
description: Policy related metadata
properties:
editedBy:
type: string
description: The user id of the user who last edited the policy
editedAt:
type: string
description: The timestamp of the last edit of the policy
publishedBy:
type: string
description: The user id of the user who last published the policy
publishedAt:
type: string
description: The timestamp of the last publish of the policy
PolicyCheckResult:
type: object
description: Policy rules validation result
properties:
errors:
type: number
description: Number of errors
result:
type: array
description: A set of validation results
items:
$ref: "#/components/schemas/PolicyRuleCheckResult"
required:
- errors
- result
PolicyRuleCheckResult:
type: object
description: The rule validation result
properties:
index:
type: number
description: Rule index number in the policy
status:
type: string
description: Validation status
enum:
- ok
- failure
errors:
type: array
description: A set of rule validation error objects
items:
$ref: "#/components/schemas/PolicyRuleError"
required:
- index
- status
- errors
PolicyRuleError:
type: object
description: Rule validation result error
properties:
errorMessage:
type: string
description: Error message
errorCode:
type: number
description: error code
errorCodeName:
type: string
description: error code name
errorField:
type: string
enum:
- operator
- operators
- authorizationGroups
- designatedSigner
- designatedSigners
- contractMethods
- amountAggregation
- src
- dst
description: |
The field which the error relates to
* operator - transaction initiator
* operators - transaction initiators
* authorizationGroups - transaction authorizer groups
* designatedSigner - transaction signer
* designatedSigners - transaction signers
* contractMethods - contract methods
* amountAggregation - transaction amount aggregation configuration
* src - transaction source asset configuration
* dst - transaction destination asset configuration
required:
- errorMessage
- errorCode
- errorCodeName
- errorField
DraftReviewAndValidationResponse:
type: object
description: Draft validation
properties:
draftResponse:
$ref: "#/components/schemas/DraftResponse"
validation:
$ref: "#/components/schemas/PolicyValidation"
required:
- draftResponse
- validation
PolicyAndValidationResponse:
type: object
description: Policy validation
properties:
policy:
$ref: "#/components/schemas/PolicyResponse"
validation:
$ref: "#/components/schemas/PolicyValidation"
required:
- policy
- validation
DraftResponse:
type: object
description: Response object for draft operations
properties:
status:
type: string
description: Operation status
rules:
type: array
description: Draft rules
items:
$ref: "#/components/schemas/PolicyRule"
draftId:
type: string
description: Draft unique id
metadata:
$ref: "#/components/schemas/PolicyMetadata"
required:
- draftId
- status
- rules
- metadata
PolicyResponse:
type: object
description: Response object for policy operations
properties:
rules:
type: array
description: A set of policy rules
items:
$ref: "#/components/schemas/PolicyRule"
metadata:
$ref: "#/components/schemas/PolicyMetadata"
required:
- rules
- metadata
PolicyValidation:
type: object
description: Policy validation object
properties:
status:
type: string
description: Validation status
checkResult:
$ref: "#/components/schemas/PolicyCheckResult"
required:
- status
- checkResult
ErrorResponse:
type: object
properties:
error:
type: object
properties:
type:
type: string
enum:
- INTERNAL
- AUTHENTICATION
- AUTHORIZATION
- VALIDATION
- NOT_FOUND
- UNPROCESSABLE_ENTITY
- FORBIDDEN
message:
type: string
required:
- type
- message
required:
- error
SmartTransferForbiddenResponse:
type: object
properties:
message:
type: string
description: Forbidden error code
example: You do not have permission to execute this action
code:
type: string
description: Error code
example: 3002
required:
- message
- code
SmartTransferBadRequestResponse:
type: object
properties:
message:
type: string
description: Bad request error message
example: Your request contains invalid data
code:
type: string
description: Bad request error code
example: 2e7a7a5d-c85c-4ea5-9adf-668cba8b4eb4
required:
- message
- code
SmartTransferTicketResponseDto:
type: object
properties:
message:
type: string
description: Result message
example: Success
nullable: true
data:
description: Data object with result data
nullable: true
allOf:
- $ref: "#/components/schemas/SmartTransferTicketDto"
required:
- message
SmartTransferTicketTermResponseDto:
type: object
properties:
message:
type: string
description: Result message
example: Success
nullable: true
data:
description: Data object with result data
nullable: true
allOf:
- $ref: "#/components/schemas/SmartTransferTicketTermDto"
required:
- message
SmartTransferCreateTicketTermDto:
type: object
properties:
asset:
type: string
description: Asset name
example: BTC
x-fb-entity: asset
amount:
type: number
description: Amount
example: "133.789161216184"
fromNetworkId:
type: string
description: Identifier of the origination Network Profile
example: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670
toNetworkId:
type: string
description: Identifier of the destination Network Profile
example: 5d009697-c29b-48e0-aff8-1f4305d19dc2
required:
- asset
- amount
- fromNetworkId
- toNetworkId
SmartTransferTicketTermDto:
type: object
properties:
id:
type: string
description: Unique id of Smart Transfer ticket term
example: 84601ee2-b10f-4aa8-be9c-dba259a3533a
ticketId:
type: string
description: Unique id of Smart Transfer ticket
example: 900f04c3-83bc-428d-b681-aef682059637
asset:
type: string
description: Asset name
example: BTC
x-fb-entity: asset
amount:
type: number
description: Amount
example: "133.789161216184"
fromNetworkId:
type: string
description: Identifier of the origination Network Profile
example: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670
fromNetworkIdName:
type: string
description: Source network name
example: Source network profile name
toNetworkId:
type: string
description: Identifier of the destination Network Profile
example: 5d009697-c29b-48e0-aff8-1f4305d19dc2
toNetworkIdName:
type: string
description: Destination network name
example: Destination network profile name
txHash:
type: string
description: Blockchain TX hash
example: "0x2446f1fd773fbb9f080e674b60c6a033c7ed7427b8b9413cf28a2a4a6da9b56c"
nullable: true
fbTxId:
type: string
description: >-
Fireblocks transaction ID. It is set when the funding transaction is
created.
example: 79075e8c-1fd9-4c97-9575-3bd9229e5c0d
nullable: true
txStatus:
type: string
description: Ticket term transaction status
example: COMPLETED
nullable: true
enum:
- queued
- submitted
- pendingSignature
- pendingAuthorization
- broadcasting
- confirming
- pendingAmlScreening
- completed
- cancelled
- failed
- rejected
- blocked
- thirdPartyPendingManualApproval
- thirdPartyPending
- partiallyCompleted
- cancelling
status:
type: string
description: Ticket term status
example: CREATED
nullable: false
enum:
- CREATED
- FUNDING
- FUNDING_FAILED
- FUNDED
- REJECTED
createdAt:
format: date-time
type: string
description: Date and time when the term is created.
example: "2023-03-01T11:23:00Z"
updatedAt:
format: date-time
type: string
description: Date and time of last term update.
example: "2023-03-01T11:23:00Z"
required:
- id
- ticketId
- asset
- amount
- fromNetworkId
- fromNetworkIdName
- toNetworkId
- toNetworkIdName
- txHash
- fbTxId
- txStatus
- status
- createdAt
- updatedAt
SmartTransferCreateTicketDto:
type: object
properties:
createdByNetworkId:
type: string
type:
type: string
enum:
- ASYNC
expiresIn:
type: number
minimum: 1
maximum: 48
description: >-
Number of hours after which an OPEN ticket will expire if no term is
funded.
terms:
type: array
items:
$ref: "#/components/schemas/SmartTransferCreateTicketTermDto"
externalRefId:
type: string
maxLength: 64
note:
type: string
maxLength: 1024
submit:
type: boolean
required:
- createdByNetworkId
- type
SmartTransferTicketFilteredResponseDto:
type: object
properties:
message:
type: string
description: Result message
example: Success
nullable: true
after:
type: string
description: >-
Returns last skipped id if any preceding elements are skipped in
result.
example: 118320d2-761f-46c7-96cf-65e71a370b36
data:
description: Result that match given query criteria
type: array
items:
$ref: "#/components/schemas/SmartTransferTicketDto"
required:
- message
- after
- data
SmartTransferTicketDto:
type: object
properties:
id:
type: string
description: Unique id of Smart Transfer ticket
example: 118320d2-761f-46c7-96cf-65e71a370b36
type:
type: string
enum:
- ASYNC
description: Kind of Smart Transfer. Can be either `ASYNC` or `ATOMIC`
example: ASYNC
direction:
enum:
- EXCHANGE
- SEND
- RECEIVE
- INTERMEDIATE
type: string
description: Direction of Smart Transfer.
example: EXCHANGE
status:
enum:
- DRAFT
- PENDING_APPROVAL
- OPEN
- IN_SETTLEMENT
- FULFILLED
- EXPIRED
- CANCELED
type: string
description: Current status of Smart Transfer ticket
example: DRAFT
terms:
description: Ticket terms (legs)
example:
- id: 84601ee2-b10f-4aa8-be9c-dba259a3533a
ticketId: 118320d2-761f-46c7-96cf-65e71a370b36
amount: "10.00"
asset: ETH
fromNetworkId: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670
toNetworkId: 5d009697-c29b-48e0-aff8-1f4305d19dc2
status: CREATED
- id: 84601ee2-b10f-4aa8-be9c-dba259a3533a
ticketId: 118320d2-761f-46c7-96cf-65e71a370b36
amount: "10.00"
asset: ETH
fromNetworkId: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670
fromNetworkIdName: Source network profile 1
toNetworkId: 5d009697-c29b-48e0-aff8-1f4305d19dc2
toNetworkIdName: Destination network profile 1
status: FUNDING
connectionId: 14817440-d5c8-4dbd-a754-ad415683610c
fbTxId: 79075e8c-1fd9-4c97-9575-3bd9229e5c0d
createdAt: 2023-03-01T11:23:00.000Z
updatedAt: 2023-03-01T11:23:00.000Z
- id: 84601ee2-b10f-4aa8-be9c-dba259a3533a
ticketId: 118320d2-761f-46c7-96cf-65e71a370b36
amount: "10.00"
asset: ETH
fromNetworkId: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670
fromNetworkIdName: Source network profile 2
toNetworkId: 5d009697-c29b-48e0-aff8-1f4305d19dc2
toNetworkIdName: Destination network profile 2
status: FUNDED
connectionId: 14817440-d5c8-4dbd-a754-ad415683610c
fbTxId: 79075e8c-1fd9-4c97-9575-3bd9229e5c0d
txHash: >-
0xb5c8bd9430b6cc87a0e2fe110ece6bf527fa4f170a4bc8cd032f768fc5219838
createdAt: 2023-03-01T11:23:00.000Z
updatedAt: 2023-03-01T11:23:00.000Z
type: array
items:
$ref: "#/components/schemas/SmartTransferTicketTermDto"
expiresIn:
type: number
description: >-
Number of hours for expiration.This data is valid only it ticket not
in DRAFT state and it will be used to calculate expiresAt value
example: "13"
expiresAt:
format: date-time
type: string
description: >-
Date and time at which the ticket will expire if no funding is
performed.
example: "2023-03-01T11:23:00Z"
submittedAt:
format: date-time
type: string
description: Date and time when ticket is submitted.
example: "2023-03-01T11:23:00Z"
expiredAt:
format: date-time
type: string
description: Date and time when ticket is expired.
example: "2023-03-01T11:23:00Z"
canceledAt:
format: date-time
type: string
description: Date and time when ticket is canceled.
example: "2023-03-01T11:23:00Z"
fulfilledAt:
format: date-time
type: string
description: Date and time when ticket is fulfilled.
example: "2023-03-01T11:23:00Z"
externalRefId:
type: string
description: External Ref ID for Smart Transfer ticket.
example: 2631ffb9d8fe47c6b0825b5be28297da
note:
type: string
description: Note
example: Random note
createdByNetworkId:
type: string
description: ID of network profile that created ticket
example: 3eaa94c5-128b-4835-bb08-3111bb6564c7
createdByNetworkIdName:
type: string
description: Name of network profile that created ticket
example: Network id name
canceledByNetworkIdName:
type: string
description: Name of network profile that canceled ticket
example: Network id name
createdAt:
format: date-time
type: string
description: Date and time at which the ticket is created.
example: "2023-03-01T11:23:00Z"
updatedAt:
format: date-time
type: string
description: Date and time of last ticket update.
example: "2023-03-01T11:23:00Z"
canceledByMe:
type: boolean
createdByMe:
type: boolean
required:
- id
- type
- status
- createdByNetworkId
- createdByNetworkIdName
- createdAt
- updatedAt
SmartTransferNotFoundResponse:
type: object
properties:
message:
type: string
description: Not found error message
example: Requested entity not found
code:
type: string
description: Error code
example: c943bdb8-ada0-4ba6-8645-74fcf188a10f
required:
- message
- code
SmartTransferSetTicketExpirationDto:
type: object
properties:
expiresIn:
type: number
description: >-
Sets ticket expiration time (in hours) after a ticket is submitted.
If no funding source is set to any term, the ticket will
automatically expire after given time.
minimum: 1
maximum: 48
required:
- expiresIn
SmartTransferSetTicketExternalIdDto:
type: object
properties:
externalRefId:
type: string
minLength: 5
maxLength: 64
description: >-
Each workspace can set their own external id they want to refer to
this Ticket
required:
- externalRefId
SmartTransferSubmitTicketDto:
type: object
properties:
expiresIn:
type: number
description: >-
Sets the ticket expiration time (in hours) after the ticket is
submitted. If no funding source is set for any term, the ticket will
automatically expire after given time.
minimum: 1
maximum: 48
required:
- expiresIn
SmartTransferUpdateTicketTermDto:
type: object
properties:
asset:
type: string
description: Asset name
example: BTC
x-fb-entity: asset
amount:
type: number
description: Amount
example: "133.789161216184"
fromNetworkId:
type: string
description: Identifier of the origination Network Profile
example: 947c6115-1f5f-4fb4-9fd6-a1f9dee14670
toNetworkId:
type: string
description: Identifier of the destination Network Profile
example: 5d009697-c29b-48e0-aff8-1f4305d19dc2
required:
- asset
- amount
- fromNetworkId
- toNetworkId
SmartTransferFundTermDto:
type: object
properties:
asset:
type: string
description: Asset name
example: BTC
x-fb-entity: asset
amount:
type: string
description: Amount
example: "133.789161216184"
networkConnectionId:
type: string
description: Id of the network connection used.
example: 0805153d-e77d-4f9b-8818-e507eeb2d122
srcId:
type: string
description: Id of the vault that is used as the source of the asset.
example: "2"
srcType:
type: string
description: Source of the asset.
example: VAULT_ACCOUNT
fee:
type: string
description: Transaction fee
example: "0.001"
feeLevel:
type: string
description: Transaction fee level.
example: MEDIUM
required:
- asset
- amount
- networkConnectionId
- srcId
- srcType
SmartTransferManuallyFundTermDto:
type: object
properties:
txHash:
type: string
maxLength: 64
required:
- txHash
SmartTransferUserGroupsResponseDto:
type: object
properties:
message:
type: string
description: Result message
example: Success
nullable: true
data:
description: Data object with result data
nullable: true
allOf:
- $ref: "#/components/schemas/SmartTransferUserGroupsDto"
required:
- message
SmartTransferUserGroupsDto:
type: object
properties:
userGroupIds:
description: Data object with result data
nullable: true
type: array
items:
type: string
required:
- userGroupIds
SmartTransferSetUserGroupsDto:
type: object
properties:
userGroupIds:
type: array
items:
type: string
required:
- userGroupIds
#/staking
AdditionalInfoDto:
type: object
properties:
estimatedAnnualReward:
type: number
example: 6.48
description: The estimated annual reward rate for the blockchain, represented as a decimal percentage value.
lockupPeriod:
type: number
example: 172800000
description: The duration of the lockup period for certain actions on the blockchain, measured in milliseconds.
activationPeriod:
type: number
example: 172800000
description: The duration of the activation period for certain actions on the blockchain, measured in milliseconds.
required:
- estimatedAnnualReward
- lockupPeriod
- activationPeriod
ChainInfoResponseDto:
type: object
properties:
chainDescriptor:
type: string
example: SOL
description: The protocol identifier (e.g. "ETH"/"SOL").
currentEpoch:
type: number
example: 483
description: The current epoch number of the blockchain network.
epochElapsed:
type: number
example: 0.31
description: The percentage of time that has elapsed within the current epoch, represented as a decimal value between 0 and 1.
epochDuration:
type: number
example: 172800000
description: The total duration in milliseconds of a single epoch.
additionalInfo:
description: Additional information related to the blockchain. This may include extra details about the blockchain network.
allOf:
- $ref: "#/components/schemas/AdditionalInfoDto"
required:
- chainDescriptor
- currentEpoch
- epochElapsed
- epochDuration
- additionalInfo
StakeRequestDto:
type: object
properties:
vaultAccountId:
type: string
example: "22"
description: The source vault account to stake from
providerId:
type: string
example: kiln
description: The ID of the provider
stakeAmount:
type: string
example: "32"
description: Amount of tokens to stake
txNote:
type: string
example: stake request id CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1 of 32ETH created on 02.04.23
description: The note to associate with the stake transactions.
fee:
type: string
example: "7"
description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.
feeLevel:
type: string
example: MEDIUM
description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required.
required:
- vaultAccountId
- providerId
- stakeAmount
StakeResponseDto:
type: object
properties:
id:
type: string
example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
description: The unique identifier of the staking position
required:
- id
UnstakeRequestDto:
type: object
properties:
id:
type: string
example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
description: id of position to unstake
fee:
type: string
example: "7"
description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.
feeLevel:
type: string
example: MEDIUM
description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required.
txNote:
type: string
example: "unstake request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #SOL"
description: The note to associate with the transactions.
required:
- id
UnstakeResponseDto:
type: object
properties: {}
WithdrawRequestDto:
type: object
properties:
id:
type: string
example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
description: id of position to withdraw
fee:
type: string
example: "7"
description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.
feeLevel:
type: string
example: MEDIUM
description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required.
txNote:
type: string
example: "withdraw request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d #ETH"
description: The note to associate with the transactions.
required:
- id
WithdrawResponseDto:
type: object
properties: {}
ClaimRewardsRequestDto:
type: object
properties:
id:
type: string
example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
description: id of position to withdraw rewards from
fee:
type: string
example: "7"
description: Represents the fee for a transaction, which can be specified as a percentage value. Only one of fee/feeLevel is required.
feeLevel:
type: string
example: MEDIUM
description: Represents the fee level for a transaction, which can be set as slow, medium, or fast. Only one of fee/feeLevel is required.
txNote:
type: string
example: claim rewards request id b70701f4-d7b1-4795-a8ee-b09cdb5b850d
description: The note to associate with the transactions.
required:
- id
ClaimRewardsResponseDto:
type: object
properties: {}
RelatedTransactionDto:
type: object
properties:
txId:
type: string
example: b70601f4-d7b1-4795-a8ee-b09cdb4r850d
description: The transaction ID
completed:
type: boolean
example: true
description: Is the transaction completed or not
required:
- txId
- completed
SolanaBlockchainDataDto:
type: object
properties:
stakeAccountAddress:
type: string
example: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq
description: The stake account address matching the stakeAccountId.
required:
- stakeAccountAddress
DelegationDto:
type: object
properties:
id:
type: string
example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
description: The unique identifier of the staking position
vaultAccountId:
type: string
example: "2"
description: The source vault account to stake from
validatorName:
type: string
example: FwR3P......tT59f
description: The destination validator address name
providerName:
type: string
example: Kiln
description: The destination validator provider name
chainDescriptor:
type: string
example: SOL
description: The protocol identifier (e.g. "ETH"/ "SOL") to use
amount:
type: string
example: "0.05"
description: Amount of tokens to stake, measured in the staked asset unit.
rewardsAmount:
type: string
example: "0.000856038"
description: The amount staked in the position, measured in the staked asset unit.
dateCreated:
type: string
example: "2023-07-13T15:55:34.256Z"
description: When was the request made (ISO Date).
status:
enum:
- error
- failed
- creating
- canceled
- pending
- activating
- active
- deactivating
- deactivated
- withdrawing
- withdrawn
type: string
example: active
description: The current status.
relatedTransactions:
example:
- txId: b70601f4-d7b1-4795-a8ee-b09cdb4r850d
completed: true
- txId: c80601f4-d7b1-4795-a8ee-b09cdb5b450c
completed: false
description: An array of transaction objects related to this position. Each object includes a 'txId' representing the transaction ID and a 'completed' boolean indicating if the transaction was completed.
type: array
items:
$ref: "#/components/schemas/RelatedTransactionDto"
validatorAddress:
type: string
example: FwR3PbjS5iyqzLiLugrBqKSa5EKZ4vK9SKs7eQXtT59f
description: The destination address of the staking transaction.
providerId:
type: string
example: kiln
description: The unique identifier of the staking provider
availableActions:
example:
- unstake
description: An array of available actions that can be performed. for example, actions like "unstake" or "withdraw".
type: array
items:
type: string
inProgress:
type: boolean
example: true
description: Indicates whether there is an ongoing action for this position (true if ongoing, false if not).
inProgressTxId:
type: string
example: c80601f4-d7b1-4795-a8ee-b09cdb5b450c
description: The transaction ID of the ongoing request
blockchainPositionInfo:
example:
stakeAccountAddress: 3Ru67FyzMTcdENmmRL4Eve4dtPd6AdpuypR21q5EQCdq
description: Additional fields per blockchain - can be empty or missing if not initialized or no additional info exists. The type depends on the chainDescriptor value. For Solana (SOL), stake account address. For Ethereum (ETH), an empty object is returned as no specific data is available.
allOf:
- $ref: "#/components/schemas/SolanaBlockchainDataDto"
required:
- id
- vaultAccountId
- validatorName
- providerName
- chainDescriptor
- amount
- rewardsAmount
- dateCreated
- status
- relatedTransactions
- validatorAddress
- providerId
- availableActions
- inProgress
- blockchainPositionInfo
amountAndChainDescriptor:
type: object
properties:
chainDescriptor:
type: string
example: ETH
description: The protocol identifier (e.g. "ETH"/"SOL") for summary
amount:
type: string
example: "32.007149606"
description: Cryptocurrency quantity
required:
- chainDescriptor
- amount
DelegationSummaryDto:
type: object
properties:
active:
description: An array of objects containing chain descriptors and associated amounts, representing active positions.
type: array
items:
$ref: "#/components/schemas/amountAndChainDescriptor"
inactive:
description: An array of objects containing chain descriptors and associated amounts, representing inactive positions.
type: array
items:
$ref: "#/components/schemas/amountAndChainDescriptor"
rewardsAmount:
description: An array of objects containing chain descriptors and associated amounts, representing rewards positions.
type: array
items:
$ref: "#/components/schemas/amountAndChainDescriptor"
totalStaked:
description: An array of objects with chain descriptors and total staked amounts, representing the combined staked totals of active and inactive positions.
type: array
items:
$ref: "#/components/schemas/amountAndChainDescriptor"
required:
- active
- inactive
- rewardsAmount
- totalStaked
ValidatorDto:
type: object
properties:
chainDescriptor:
type: string
example: SOL
description: The protocol identifier (e.g. "ETH"/"SOL") of the validator
feePercent:
type: number
example: 5
description: The service fee as a percentage out of the earned rewards
required:
- chainDescriptor
- feePercent
ProviderDto:
type: object
properties:
id:
type: string
example: kiln
description: The ID of the provider
providerName:
type: string
example: Kiln
description: Name of the provider
validators:
example:
- chainDescriptor: SOL
feePercent: 5
- chainDescriptor: ETH
feePercent: 7
description: An array of objects that includes chain descriptors and the corresponding fee percentages for validators supported by the provider
type: array
items:
$ref: "#/components/schemas/ValidatorDto"
iconUrl:
type: string
example: https://static.fireblocks.io/staking/validators/kiln_console.png
description: URL to the validator's icon
termsOfServiceUrl:
type: string
example: https://www.kiln.fi/terms-and-conditions-for-fireblocks-customers
description: URL to the terms of service
isTermsOfServiceApproved:
type: boolean
example: true
description: Indicates whether the terms of service are approved
required:
- id
- providerName
- validators
- iconUrl
- termsOfServiceUrl
- isTermsOfServiceApproved
ProvidersResponseDto:
type: object
properties: {}
parameters:
X-Idempotency-Key:
name: Idempotency-Key
in: header
description: >-
A unique identifier for the request. If the request is sent multiple
times with the same idempotency key, the server will return the same
response as the first request. The idempotency key is valid for 24
hours.
required: false
schema:
type: string
X-End-User-Wallet-Id:
name: X-End-User-Wallet-Id
in: header
description: >-
Unique ID of the End-User wallet to the API request. Required for
end-user wallet operations.
required: false
schema:
type: string
format: uuid