openapi: 3.1.0
info:
title: Fordefi Address Book Vaults API
version: 0.2.0
description: These endpoints allow you to list the contacts in your address book.
To add/remove contacts, visit the Fordefi web console. See the user guide for more info.
servers:
- url: https://api.fordefi.com/
description: Production
security:
- bearerAuth: []
tags:
- name: Vaults
description: "These endpoints allow you to manage vaults.\n
\n A vault is the basic unit to manage funds.\n Each vault supports a single \"chain family\", such as EVM, Bitcoin, Solana, Cosmos, etc.,\n determined by the vault's type. A vault supports all the chains within the chain family\n (e.g., an EVM vault supports all EVM chains)."
paths:
/api/v1/vaults:
get:
tags:
- Vaults
summary: List Vaults
description: Get a list of all vaults in an organization.
operationId: list_vaults_api_v1_vaults_get
parameters:
- name: sort_by
in: query
required: false
schema:
type: array
items:
$ref: '#/components/schemas/ListVaultsSortableFields'
title: Sort By
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page number to fetch.
default: 1
title: Page
description: The page number to fetch.
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 0
description: The number of items per page.
default: 50
title: Size
description: The number of items per page.
- name: skip_count
in: query
required: false
schema:
type: boolean
description: Whether to skip counting the total number of items.
default: false
title: Skip Count
description: Whether to skip counting the total number of items.
- name: vault_ids
in: query
required: false
schema:
description: Vault IDs to filter on.
title: Vault Ids
type: array
items:
type: string
format: uuid
description: Vault IDs to filter on.
- name: names
in: query
required: false
schema:
description: List of full names to filter on.
title: Names
type: array
items:
type: string
description: List of full names to filter on.
- name: vault_types
in: query
required: false
schema:
description: Vault types to filter on.
title: Vault Types
type: array
items:
$ref: '#/components/schemas/VaultType'
description: Vault types to filter on.
- name: vault_states
in: query
required: false
schema:
description: Vault states to filter on.
title: Vault States
type: array
items:
$ref: '#/components/schemas/VaultState'
description: Vault states to filter on.
- name: key_holder_ids
in: query
required: false
schema:
description: List of key holder IDs to filter on.
title: Key Holder Ids
type: array
items:
type: string
format: uuid
description: List of key holder IDs to filter on.
- name: vault_group_ids
in: query
required: false
schema:
description: List of vault group IDs to filter on. Filter applies to current and pending vault groups.
title: Vault Group Ids
type: array
items:
type: string
format: uuid
description: List of vault group IDs to filter on. Filter applies to current and pending vault groups.
- name: exclude_vault_group_ids
in: query
required: false
schema:
description: List of vault group IDs to exclude.
title: Exclude Vault Group Ids
type: array
items:
type: string
format: uuid
description: List of vault group IDs to exclude.
- name: exclude_vault_ids
in: query
required: false
schema:
description: Vault IDs to exclude.
title: Exclude Vault Ids
type: array
items:
type: string
format: uuid
description: Vault IDs to exclude.
- name: origin_type
in: query
required: false
schema:
description: Origin type to filter on.
title: Origin Type
$ref: '#/components/schemas/VaultOriginType'
description: Origin type to filter on.
- name: account_addresses
in: query
required: false
schema:
description: List of account addresses to filter on.
title: Account Addresses
type: array
items:
type: string
description: List of account addresses to filter on.
- name: positive_native_balance_chain_ids
in: query
required: false
schema:
description: List of chain IDs to fetch native assets for. Only vaults with positive native balance in any of these chains will be included in native_assets response.
title: Positive Native Balance Chain Ids
type: array
items:
type: string
minLength: 1
description: The unique chain ID. Can be either one of those supported by the default chains below or a custom numeric EVM chain ID `evm_` if one was added to your organization. - `"aptos_mainnet"`
- `"aptos_testnet"`
- `"aptos_movement_mainnet"`
- `"aptos_movement_testnet"`
- `"arch_mainnet"`
- `"arch_testnet"`
- `"canton_mainnet"`
- `"cosmos_agoric-3"`
- `"cosmos_akashnet-2"`
- `"cosmos_archway-1"`
- `"cosmos_axelar-dojo-1"`
- `"cosmos_bbn-1"`
- `"cosmos_celestia"`
- `"cosmos_cosmoshub-4"`
- `"cosmos_dydx-mainnet-1"`
- `"cosmos_dydx-testnet-4"`
- `"cosmos_dymension_1100-1"`
- `"cosmos_injective-1"`
- `"cosmos_neutron-1"`
- `"cosmos_nillion-1"`
- `"cosmos_noble-1"`
- `"cosmos_osmosis-1"`
- `"cosmos_provider"`
- `"cosmos_ssc-1"`
- `"cosmos_pacific-1"`
- `"cosmos_stride-1"`
- `"cosmos_thorchain-1"`
- `"cosmos_mantra-1"`
- `"exchange_binance"`
- `"exchange_bybit"`
- `"exchange_coinbase_international"`
- `"exchange_coinbase_us"`
- `"exchange_okx"`
- `"exchange_kraken"`
- `"ripple_mainnet"`
- `"solana_mainnet"`
- `"solana_devnet"`
- `"solana_eclipse_mainnet"`
- `"solana_fogo_mainnet"`
- `"solana_fogo_testnet"`
- `"stacks_mainnet"`
- `"starknet_mainnet"`
- `"stellar_mainnet"`
- `"sui_mainnet"`
- `"sui_testnet"`
- `"ton_mainnet"`
- `"tron_mainnet"`
- `"tron_shasta"`
- `"bitcoin_mainnet"`
- `"bitcoin_testnet"`
- `"bitcoin_testnet_v4"`
- `"dogecoin_mainnet"`
- `"bitcoin_cash_mainnet"`
- `"pearl_testnet"`
- `"pearl_mainnet"`
- `"evm_1"`
- `"evm_5"`
- `"evm_10"`
- `"evm_14"`
- `"evm_16"`
- `"evm_30"`
- `"evm_56"`
- `"evm_100"`
- `"evm_130"`
- `"evm_137"`
- `"evm_143"`
- `"evm_146"`
- `"evm_169"`
- `"evm_196"`
- `"evm_250"`
- `"evm_324"`
- `"evm_999"`
- `"evm_1030"`
- `"evm_1100"`
- `"evm_1101"`
- `"evm_1329"`
- `"evm_1337"`
- `"evm_1666"`
- `"evm_1672"`
- `"evm_1729"`
- `"evm_2222"`
- `"evm_4200"`
- `"evm_4217"`
- `"evm_4663"`
- `"evm_5000"`
- `"evm_7000"`
- `"evm_7700"`
- `"evm_8453"`
- `"evm_8818"`
- `"evm_8819"`
- `"evm_9745"`
- `"evm_16661"`
- `"evm_17000"`
- `"evm_80001"`
- `"evm_80094"`
- `"evm_42161"`
- `"evm_43113"`
- `"evm_43114"`
- `"evm_57073"`
- `"evm_59144"`
- `"evm_81457"`
- `"evm_421614"`
- `"evm_534352"`
- `"evm_660279"`
- `"evm_747474"`
- `"evm_810180"`
- `"evm_11155111"`
- `"evm_ethereum_mainnet"`
- `"evm_ethereum_goerli"`
- `"evm_optimism_mainnet"`
- `"evm_flare_mainnet"`
- `"evm_flare_testnet"`
- `"evm_rootstock_mainnet"`
- `"evm_bsc_mainnet"`
- `"evm_gnosis_mainnet"`
- `"evm_unichain_mainnet"`
- `"evm_polygon_mainnet"`
- `"evm_monad_mainnet"`
- `"evm_sonic_mainnet"`
- `"evm_manta_pacific_mainnet"`
- `"evm_x_layer_mainnet"`
- `"evm_fantom_mainnet"`
- `"evm_zksync_era_mainnet"`
- `"evm_hyperevm_mainnet"`
- `"evm_conflux_mainnet"`
- `"evm_dymension_mainnet"`
- `"evm_polygon_zkevm_mainnet"`
- `"evm_sei_mainnet"`
- `"evm_hypercore_mainnet"`
- `"evm_aster_mainnet"`
- `"evm_pharos_mainnet"`
- `"evm_reya_mainnet"`
- `"evm_kava_mainnet"`
- `"evm_merlin_mainnet"`
- `"evm_tempo_mainnet"`
- `"evm_robinhood_mainnet"`
- `"evm_mantle_mainnet"`
- `"evm_zeta_mainnet"`
- `"evm_canto_mainnet"`
- `"evm_base_mainnet"`
- `"evm_clink_mainnet"`
- `"evm_clink_testnet"`
- `"evm_plasma_mainnet"`
- `"evm_zero_gravity_mainnet"`
- `"evm_ethereum_holesky"`
- `"evm_polygon_mumbai"`
- `"evm_berachain_mainnet"`
- `"evm_arbitrum_mainnet"`
- `"evm_avalanche_fuji"`
- `"evm_avalanche_chain"`
- `"evm_ink_mainnet"`
- `"evm_linea_mainnet"`
- `"evm_blast_mainnet"`
- `"evm_arbitrum_sepolia"`
- `"evm_scroll_mainnet"`
- `"evm_xai_mainnet"`
- `"evm_katana_mainnet"`
- `"evm_zklink_nova_mainnet"`
- `"evm_ethereum_sepolia"`
title: ChainUniqueId
description: List of chain IDs to fetch native assets for. Only vaults with positive native balance in any of these chains will be included in native_assets response.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ListVaultsResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
post:
tags:
- Vaults
summary: Create Vault
description: Create a new vault.
operationId: create_vault_api_v1_vaults_post
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateVaultRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateVaultResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/DefinedPreconditionError_CreateVaultErrorType_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'409':
description: Already Exists
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
/api/v1/vaults/export_async:
get:
tags:
- Vaults
summary: Export Vaults With Assets Async
description: Get a CSV-format list of balances of all vaults and their assets.
operationId: export_vaults_with_assets_async_api_v1_vaults_export_async_get
parameters:
- name: limit
in: query
required: false
schema:
description: The number of vault/asset pairs to export, unlimited if not set.
title: Limit
type: integer
description: The number of vault/asset pairs to export, unlimited if not set.
- name: vaults_ids
in: query
required: false
schema:
description: Vault IDs to filter on.
title: Vaults Ids
type: array
items:
type: string
format: uuid
description: Vault IDs to filter on.
- name: vault_types
in: query
required: false
schema:
description: Vault types to filter on.
title: Vault Types
type: array
items:
$ref: '#/components/schemas/VaultType'
description: Vault types to filter on.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
title: Response Export Vaults With Assets Async Api V1 Vaults Export Async Get
$ref: '#/components/schemas/Export'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'204':
description: No Content
/api/v1/vaults/{id}:
get:
tags:
- Vaults
summary: Get Vault
description: Retrieve vault details.
operationId: get_vault_api_v1_vaults__id__get
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to retrieve.
title: Id
description: ID of the vault to retrieve.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetVaultResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
/api/v1/vaults/{id}/assets/{asset_id}:
get:
tags:
- Vaults
summary: Get Vault Asset
description: Get a specific asset in a vault.
operationId: get_vault_asset_api_v1_vaults__id__assets__asset_id__get
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to retrieve.
title: Id
description: ID of the vault to retrieve.
- name: asset_id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the asset to retrieve.
title: Asset Id
description: ID of the asset to retrieve.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page number to fetch.
default: 1
title: Page
description: The page number to fetch.
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 0
description: The number of items per page.
default: 50
title: Size
description: The number of items per page.
- name: skip_count
in: query
required: false
schema:
type: boolean
description: Whether to skip counting the total number of items.
default: false
title: Skip Count
description: Whether to skip counting the total number of items.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetOwnedAssetResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
/api/v1/vaults/{id}/assets:
get:
tags:
- Vaults
summary: Get Vault Assets
description: Get a list of all assets in a vault.
operationId: get_vault_assets_api_v1_vaults__id__assets_get
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to retrieve.
title: Id
description: ID of the vault to retrieve.
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page number to fetch.
default: 1
title: Page
description: The page number to fetch.
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 0
description: The number of items per page.
default: 50
title: Size
description: The number of items per page.
- name: skip_count
in: query
required: false
schema:
type: boolean
description: Whether to skip counting the total number of items.
default: false
title: Skip Count
description: Whether to skip counting the total number of items.
- name: chains
in: query
required: false
schema:
title: Chains
type: array
items:
type: string
minLength: 1
description: The unique chain ID. Can be either one of those supported by the default chains below or a custom numeric EVM chain ID `evm_` if one was added to your organization. - `"aptos_mainnet"`
- `"aptos_testnet"`
- `"aptos_movement_mainnet"`
- `"aptos_movement_testnet"`
- `"arch_mainnet"`
- `"arch_testnet"`
- `"canton_mainnet"`
- `"cosmos_agoric-3"`
- `"cosmos_akashnet-2"`
- `"cosmos_archway-1"`
- `"cosmos_axelar-dojo-1"`
- `"cosmos_bbn-1"`
- `"cosmos_celestia"`
- `"cosmos_cosmoshub-4"`
- `"cosmos_dydx-mainnet-1"`
- `"cosmos_dydx-testnet-4"`
- `"cosmos_dymension_1100-1"`
- `"cosmos_injective-1"`
- `"cosmos_neutron-1"`
- `"cosmos_nillion-1"`
- `"cosmos_noble-1"`
- `"cosmos_osmosis-1"`
- `"cosmos_provider"`
- `"cosmos_ssc-1"`
- `"cosmos_pacific-1"`
- `"cosmos_stride-1"`
- `"cosmos_thorchain-1"`
- `"cosmos_mantra-1"`
- `"exchange_binance"`
- `"exchange_bybit"`
- `"exchange_coinbase_international"`
- `"exchange_coinbase_us"`
- `"exchange_okx"`
- `"exchange_kraken"`
- `"ripple_mainnet"`
- `"solana_mainnet"`
- `"solana_devnet"`
- `"solana_eclipse_mainnet"`
- `"solana_fogo_mainnet"`
- `"solana_fogo_testnet"`
- `"stacks_mainnet"`
- `"starknet_mainnet"`
- `"stellar_mainnet"`
- `"sui_mainnet"`
- `"sui_testnet"`
- `"ton_mainnet"`
- `"tron_mainnet"`
- `"tron_shasta"`
- `"bitcoin_mainnet"`
- `"bitcoin_testnet"`
- `"bitcoin_testnet_v4"`
- `"dogecoin_mainnet"`
- `"bitcoin_cash_mainnet"`
- `"pearl_testnet"`
- `"pearl_mainnet"`
- `"evm_1"`
- `"evm_5"`
- `"evm_10"`
- `"evm_14"`
- `"evm_16"`
- `"evm_30"`
- `"evm_56"`
- `"evm_100"`
- `"evm_130"`
- `"evm_137"`
- `"evm_143"`
- `"evm_146"`
- `"evm_169"`
- `"evm_196"`
- `"evm_250"`
- `"evm_324"`
- `"evm_999"`
- `"evm_1030"`
- `"evm_1100"`
- `"evm_1101"`
- `"evm_1329"`
- `"evm_1337"`
- `"evm_1666"`
- `"evm_1672"`
- `"evm_1729"`
- `"evm_2222"`
- `"evm_4200"`
- `"evm_4217"`
- `"evm_4663"`
- `"evm_5000"`
- `"evm_7000"`
- `"evm_7700"`
- `"evm_8453"`
- `"evm_8818"`
- `"evm_8819"`
- `"evm_9745"`
- `"evm_16661"`
- `"evm_17000"`
- `"evm_80001"`
- `"evm_80094"`
- `"evm_42161"`
- `"evm_43113"`
- `"evm_43114"`
- `"evm_57073"`
- `"evm_59144"`
- `"evm_81457"`
- `"evm_421614"`
- `"evm_534352"`
- `"evm_660279"`
- `"evm_747474"`
- `"evm_810180"`
- `"evm_11155111"`
- `"evm_ethereum_mainnet"`
- `"evm_ethereum_goerli"`
- `"evm_optimism_mainnet"`
- `"evm_flare_mainnet"`
- `"evm_flare_testnet"`
- `"evm_rootstock_mainnet"`
- `"evm_bsc_mainnet"`
- `"evm_gnosis_mainnet"`
- `"evm_unichain_mainnet"`
- `"evm_polygon_mainnet"`
- `"evm_monad_mainnet"`
- `"evm_sonic_mainnet"`
- `"evm_manta_pacific_mainnet"`
- `"evm_x_layer_mainnet"`
- `"evm_fantom_mainnet"`
- `"evm_zksync_era_mainnet"`
- `"evm_hyperevm_mainnet"`
- `"evm_conflux_mainnet"`
- `"evm_dymension_mainnet"`
- `"evm_polygon_zkevm_mainnet"`
- `"evm_sei_mainnet"`
- `"evm_hypercore_mainnet"`
- `"evm_aster_mainnet"`
- `"evm_pharos_mainnet"`
- `"evm_reya_mainnet"`
- `"evm_kava_mainnet"`
- `"evm_merlin_mainnet"`
- `"evm_tempo_mainnet"`
- `"evm_robinhood_mainnet"`
- `"evm_mantle_mainnet"`
- `"evm_zeta_mainnet"`
- `"evm_canto_mainnet"`
- `"evm_base_mainnet"`
- `"evm_clink_mainnet"`
- `"evm_clink_testnet"`
- `"evm_plasma_mainnet"`
- `"evm_zero_gravity_mainnet"`
- `"evm_ethereum_holesky"`
- `"evm_polygon_mumbai"`
- `"evm_berachain_mainnet"`
- `"evm_arbitrum_mainnet"`
- `"evm_avalanche_fuji"`
- `"evm_avalanche_chain"`
- `"evm_ink_mainnet"`
- `"evm_linea_mainnet"`
- `"evm_blast_mainnet"`
- `"evm_arbitrum_sepolia"`
- `"evm_scroll_mainnet"`
- `"evm_xai_mainnet"`
- `"evm_katana_mainnet"`
- `"evm_zklink_nova_mainnet"`
- `"evm_ethereum_sepolia"`
title: ChainUniqueId
- name: asset_ids
in: query
required: false
schema:
title: Asset Ids
type: array
items:
type: string
format: uuid
- name: is_hidden
in: query
required: false
schema:
title: Is Hidden
type: boolean
- name: search
in: query
required: false
schema:
title: Search
type: string
- name: sort_by
in: query
required: false
schema:
title: Sort By
type: array
items:
$ref: '#/components/schemas/OwnedAssetsSortableFields'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ListOwnedAssetsResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
/api/v1/vaults/{id}/proposals:
post:
tags:
- Vaults
summary: Submit Update Vault Change Proposal
description: Submit an update vault change proposal. Verify, approve, and abort are handled via the user-actions API.
operationId: submit_update_vault_change_proposal_api_v1_vaults__id__proposals_post
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to submit a change proposal for.
title: Id
description: ID of the vault to submit a change proposal for.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SubmitUpdateVaultChangeProposalRequest'
responses:
'204':
description: Successful Response
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
/api/v1/vaults/{id}/archive:
post:
tags:
- Vaults
summary: Archive Vault
description: Archive an existing vault.
operationId: archive_vault_api_v1_vaults__id__archive_post
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to archive.
title: Id
description: ID of the vault to archive.
responses:
'204':
description: Successful Response
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/vaults/{id}/restore:
post:
tags:
- Vaults
summary: Restore Vault
description: Restore an archived vault.
operationId: restore_vault_api_v1_vaults__id__restore_post
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to restore.
title: Id
description: ID of the vault to restore.
responses:
'204':
description: Successful Response
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/vaults/{id}/name:
put:
tags:
- Vaults
summary: Rename Vault
description: Rename an existing vault.
operationId: rename_vault_api_v1_vaults__id__name_put
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to rename.
title: Id
description: ID of the vault to rename.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RenameVaultRequest'
responses:
'204':
description: Successful Response
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'409':
description: Already Exists
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
/api/v1/vaults/{id}/addresses:
post:
tags:
- Vaults
summary: Create Address
description: Create a new address.
operationId: create_address_api_v1_vaults__id__addresses_post
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault to create address in.
title: Id
description: ID of the vault to create address in.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateVaultAddressRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateVaultAddressResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/DefinedPreconditionError_CreateVaultAddressErrorType_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
get:
tags:
- Vaults
summary: List Vault Addresses
description: Get a list of all addresses in a vault.
operationId: list_vault_addresses_api_v1_vaults__id__addresses_get
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault.
title: Id
description: ID of the vault.
- name: sort_by
in: query
required: false
schema:
type: array
items:
$ref: '#/components/schemas/VaultAddressSortableFields'
title: Sort By
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: The page number to fetch.
default: 1
title: Page
description: The page number to fetch.
- name: size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 0
description: The number of items per page.
default: 50
title: Size
description: The number of items per page.
- name: skip_count
in: query
required: false
schema:
type: boolean
description: Whether to skip counting the total number of items.
default: false
title: Skip Count
description: Whether to skip counting the total number of items.
- name: search
in: query
required: false
schema:
title: Search
type: string
- name: addresses
in: query
required: false
schema:
description: List of addresses to filter on.
title: Addresses
type: array
items:
type: string
description: List of addresses to filter on.
- name: address_types
in: query
required: false
schema:
description: List of address types to filter on.
title: Address Types
type: array
items:
$ref: '#/components/schemas/UtxoAddressType'
description: List of address types to filter on.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ListVaultAddressesResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/vaults/addresses/{id}/name:
put:
tags:
- Vaults
summary: Rename Vault Address
description: Rename an existing vault address.
operationId: rename_vault_address_api_v1_vaults_addresses__id__name_put
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
description: ID of the vault address to rename.
title: Id
description: ID of the vault address to rename.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RenameVaultRequest'
responses:
'204':
description: Successful Response
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
'409':
description: Already Exists
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceError'
components:
schemas:
StacksAssetIdentifier:
properties:
type:
type: string
const: stacks
title: Type
description: Stacks asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StacksNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StacksSip10AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/StacksNativeAssetIdentifierRequest'
sip10: '#/components/schemas/StacksSip10AssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedStacksChain'
type: object
required:
- type
- details
- chain
title: StacksAssetIdentifier
EnrichedUtxoChain:
properties:
chain_type:
type: string
const: utxo
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The UTXO chain unique ID.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedUtxoChain
CreateVaultResponse:
oneOf:
- $ref: '#/components/schemas/AptosVault'
- $ref: '#/components/schemas/ArchVault'
- $ref: '#/components/schemas/BlackBoxVault'
- $ref: '#/components/schemas/CantonVault'
- $ref: '#/components/schemas/CosmosVault'
- $ref: '#/components/schemas/EvmVault'
- $ref: '#/components/schemas/SolanaVault'
- $ref: '#/components/schemas/StacksVault'
- $ref: '#/components/schemas/StarknetVault'
- $ref: '#/components/schemas/StellarVault'
- $ref: '#/components/schemas/SuiVault'
- $ref: '#/components/schemas/TonVault'
- $ref: '#/components/schemas/TronVault'
- $ref: '#/components/schemas/UtxoVault'
- $ref: '#/components/schemas/ExchangeVault'
- $ref: '#/components/schemas/SafeVault'
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/AptosVault'
arch: '#/components/schemas/ArchVault'
black_box: '#/components/schemas/BlackBoxVault'
canton: '#/components/schemas/CantonVault'
cosmos: '#/components/schemas/CosmosVault'
evm: '#/components/schemas/EvmVault'
exchange: '#/components/schemas/ExchangeVault'
safe: '#/components/schemas/SafeVault'
solana: '#/components/schemas/SolanaVault'
stacks: '#/components/schemas/StacksVault'
starknet: '#/components/schemas/StarknetVault'
stellar: '#/components/schemas/StellarVault'
sui: '#/components/schemas/SuiVault'
ton: '#/components/schemas/TonVault'
tron: '#/components/schemas/TronVault'
utxo: '#/components/schemas/UtxoVault'
TonVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: ton
title: Type
description: TON vault type.
raw_account:
type: string
maxLength: 67
pattern: ^[-0-9]+:[A-Fa-f0-9]{64}$
title: Raw Account
description: The address TON contract in a raw format.
base64_url_bounceable_account:
type: string
maxLength: 48
minLength: 48
title: Base64 Url Bounceable Account
description: The bounceable address of the contract in base64 url format
example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
base64_url_non_bounceable_account:
type: string
maxLength: 48
minLength: 48
title: Base64 Url Non Bounceable Account
description: The non-bounceable address of the contract in base64 url format
example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
state_init:
type: string
title: State Init
description: The wallet contract state init.
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- raw_account
- base64_url_bounceable_account
- base64_url_non_bounceable_account
- state_init
title: TonVault
description: Represents an TON vault in the Fordefi platform
TronChainUniqueId:
type: string
enum:
- tron_mainnet
- tron_shasta
title: TronChainUniqueId
StarknetChainUniqueId:
type: string
enum:
- starknet_mainnet
title: StarknetChainUniqueId
TonNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: TON asset identifier type.
chain:
$ref: '#/components/schemas/TonChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: TonNativeAssetIdentifierRequest
ImportVaultUtxoOptions:
properties:
default_address_derivation_path:
title: Default Address Derivation Path
description: The BIP-32 derivation path of the default address.
example: m/44/60/0/0/0
type: string
pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
default_address_name:
type: string
title: Default Address Name
description: The name of the default address.
key_id:
type: string
format: uuid
title: Key Id
description: The ID of the imported key to use for the default address.
type: object
required:
- default_address_name
- key_id
title: ImportVaultUtxoOptions
ExternalVaultImportOptions:
properties:
origin:
type: string
const: external_signer
title: Origin
description: Discriminator for external signer vault creation.
public_key_compressed:
type: string
title: Public Key Compressed
description: Base64-encoded compressed public key.
chain_code:
title: Chain Code
description: Base64-encoded 32-byte BIP32 chain code.
type: string
type: object
required:
- origin
- public_key_compressed
title: ExternalVaultImportOptions
OwnedAsset:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
balances:
$ref: '#/components/schemas/Balances'
balance:
title: Balance
deprecated: true
type: string
pattern: ^\d+$
example: '1000000000000000000'
type: object
required:
- priced_asset
- balances
title: OwnedAsset
StarknetErc20AssetIdentifierRequest:
properties:
type:
type: string
const: erc20
title: Type
description: Erc20 asset identifier type.
erc20:
$ref: '#/components/schemas/StarknetAddressRequest'
description: The Erc20 details.
type: object
required:
- type
- erc20
title: StarknetErc20AssetIdentifierRequest
ExchangeVaultState:
type: string
enum:
- active
- pending
title: ExchangeVaultState
TronTrc20AssetIdentifierRequest:
properties:
type:
type: string
const: trc20
title: Type
description: Trc20 asset identifier type.
trc20:
$ref: '#/components/schemas/TronAddressRequest'
description: The Trc20 details.
type: object
required:
- type
- trc20
title: TronTrc20AssetIdentifierRequest
ExchangeChainUniqueId:
type: string
enum:
- exchange_binance
- exchange_bybit
- exchange_coinbase_international
- exchange_coinbase_us
- exchange_okx
- exchange_kraken
title: ExchangeChainUniqueId
ExchangePortfolio:
properties:
portfolio_id:
type: string
title: Portfolio Id
description: The ID of the exchange portfolio.
portfolio_name:
type: string
title: Portfolio Name
description: The name of the exchange portfolio.
type: object
required:
- portfolio_id
- portfolio_name
title: ExchangePortfolio
CreateTronVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: tron
title: Type
description: TRON vault type.
type: object
required:
- name
- type
title: CreateTronVaultRequest
CreateVaultAddressErrorType:
type: string
enum:
- invalid_vault_type
title: CreateVaultAddressErrorType
SolanaSplTokenAssetIdentifierRequest:
properties:
type:
type: string
const: spl_token
title: Type
description: SPL token asset identifier type.
token:
$ref: '#/components/schemas/SolanaAddressRequest'
description: The SPL token details.
type: object
required:
- type
- token
title: SolanaSplTokenAssetIdentifierRequest
CreateArchVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
type:
type: string
const: arch
title: Type
description: Arch vault type.
type: object
required:
- name
- type
title: CreateArchVaultRequest
VaultType:
type: string
enum:
- aptos
- arch
- black_box
- canton
- cosmos
- evm
- safe
- solana
- stacks
- starknet
- stellar
- sui
- ton
- tron
- utxo
- exchange
title: VaultType
CreateTonVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: ton
title: Type
description: TON vault type.
type: object
required:
- name
- type
title: CreateTonVaultRequest
StarknetVaultState:
type: string
enum:
- inactive
- activating
- active
title: StarknetVaultState
MpcVaultState:
type: string
enum:
- active
- archived
title: MpcVaultState
TronAddressRequest:
properties:
chain:
$ref: '#/components/schemas/TronChainUniqueId'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 34
minLength: 34
pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
type: object
required:
- chain
- base58_repr
title: TronAddressRequest
description: Address represents a blockchain address.
MasterAccount:
properties:
type:
type: string
const: master
title: Type
description: Exchange vault for a master account.
api_key:
type: string
title: Api Key
description: The API-key of this exchange account.
type: object
required:
- type
- api_key
title: MasterAccount
SuiAssetIdentifier:
properties:
type:
type: string
const: sui
title: Type
description: Sui asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/SuiNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/SuiCoinAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
coin: '#/components/schemas/SuiCoinAssetIdentifierRequest'
native: '#/components/schemas/SuiNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedSuiChain'
type: object
required:
- type
- details
- chain
title: SuiAssetIdentifier
ListVaultAddressesResponse:
properties:
total:
type: integer
title: Total
page:
type: integer
title: Page
size:
type: integer
title: Size
addresses:
items:
$ref: '#/components/schemas/UtxoVaultAddress'
type: array
title: Addresses
type: object
required:
- total
- page
- size
- addresses
title: ListVaultAddressesResponse
CantonNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Canton asset identifier type.
chain:
$ref: '#/components/schemas/CantonChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: CantonNativeAssetIdentifierRequest
TronAssetIdentifier:
properties:
type:
type: string
const: tron
title: Type
description: TRON asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/TronNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/TronTrc20AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/TronNativeAssetIdentifierRequest'
trc20: '#/components/schemas/TronTrc20AssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedTronChain'
type: object
required:
- type
- details
- chain
title: TronAssetIdentifier
SolanaNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Solana asset identifier type.
chain:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: SolanaNativeAssetIdentifierRequest
EnrichedStarknetChain:
properties:
chain_type:
type: string
const: starknet
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The type of the Starknet-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedStarknetChain
CreateAptosVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: aptos
title: Type
description: Aptos vault type.
type: object
required:
- name
- type
title: CreateAptosVaultRequest
PersonRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: person
title: User Type
description: The type of user. Can be a person, or (in programmatic scenarios) an API user or API Signer.
name:
title: Name
description: The name of the user.
example: John Doe
type: string
email:
type: string
title: Email
description: The email of the user.
state:
$ref: '#/components/schemas/UserState'
description: The state of the user in the organization.
role:
$ref: '#/components/schemas/UserRole'
description: The role of the user.
type: object
required:
- id
- user_type
- email
- state
- role
title: PersonRef
SuiChainUniqueId:
type: string
enum:
- sui_mainnet
- sui_testnet
title: SuiChainUniqueId
StarknetAssetIdentifier:
properties:
type:
type: string
const: starknet
title: Type
description: Starknet asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
erc20: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
native: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedStarknetChain'
type: object
required:
- type
- details
- chain
title: StarknetAssetIdentifier
ArchAssetIdentifier:
properties:
type:
type: string
const: arch
title: Type
description: Arch asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/ArchNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/ArchAplTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
apl_token: '#/components/schemas/ArchAplTokenAssetIdentifierRequest'
native: '#/components/schemas/ArchNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedArchChain'
type: object
required:
- type
- details
- chain
title: ArchAssetIdentifier
EvmNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: EVM asset identifier type.
chain:
type: string
minLength: 1
title: EvmChainUniqueId
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: EvmNativeAssetIdentifierRequest
UtxoNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Utxo asset identifier type.
chain:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The unique id of the chain of the asset.
type: object
required:
- type
- chain
title: UtxoNativeAssetIdentifierRequest
SolanaVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: solana
title: Type
description: Solana vault type.
address:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The address of the vault in the Solana blockchain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
title: SolanaVault
description: Represents a Solana vault in the Fordefi platform
CosmosNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Cosmos asset identifier type.
chain:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The unique id of the chain of the asset.
type: object
required:
- type
- chain
title: CosmosNativeAssetIdentifierRequest
Export:
properties:
id:
type: string
format: uuid
title: Id
description: ID of the export.
creation_time:
type: string
format: date-time
title: Creation Time
description: The date and time when the object was created.
type:
$ref: '#/components/schemas/ExportType'
description: Type of the export.
state:
$ref: '#/components/schemas/ExportState'
description: The current state of the export.
organization_id:
type: string
format: uuid
title: Organization Id
description: The id of the organization.
user_id:
type: string
title: User Id
description: The id of the user.
resource_type:
$ref: '#/components/schemas/ExportedResource'
description: The type of the resource being exported.
successful_items_count:
type: integer
title: Successful Items Count
description: The number of items that were successfully exported.
failed_items_count:
type: integer
title: Failed Items Count
description: The number of items that failed to be exported.
total_items_count:
type: integer
title: Total Items Count
description: The total number of items to be exported.
request_id:
type: string
title: Request Id
description: The request id of the export.
download_url:
type: string
title: Download Url
description: The download url of the export.
expiration_time:
type: string
format: date-time
title: Expiration Time
description: The date and time when the object will expire.
type: object
required:
- id
- creation_time
- type
- state
- organization_id
- user_id
- resource_type
- successful_items_count
- failed_items_count
- total_items_count
- request_id
- download_url
- expiration_time
title: Export
ValidationError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
items:
$ref: '#/components/schemas/ValidationErrorDetail'
type: array
title: Detail
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
type: object
required:
- title
- detail
title: ValidationError
EvmAssetIdentifier:
properties:
type:
type: string
const: evm
title: Type
description: Asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/EvmNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc20AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc721AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
erc1155: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
erc20: '#/components/schemas/EvmErc20AssetIdentifierRequest'
erc721: '#/components/schemas/EvmErc721AssetIdentifierRequest'
hyperliquid: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
native: '#/components/schemas/EvmNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedEvmChain'
type: object
required:
- type
- details
- chain
title: EvmAssetIdentifier
EndUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: end_user
title: User Type
description: The type of the user.
external_id:
type: string
title: External Id
description: External id of the user.
example: user|1234
state:
type: string
enum:
- active
- deleted
title: State
description: The state of the user.
type: object
required:
- id
- user_type
- external_id
- state
title: EndUserRef
AptosCoinAssetIdentifierRequest:
properties:
type:
type: string
const: coin
title: Type
description: Legacy coin asset identifier type.
coin_type:
$ref: '#/components/schemas/AptosCoinTypeRequest'
description: The legacy coin details.
type: object
required:
- type
- coin_type
title: AptosCoinAssetIdentifierRequest
EnrichedSolanaChain:
properties:
chain_type:
type: string
const: solana
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The type of the Solana-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedSolanaChain
CreateStarknetVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: starknet
title: Type
description: Starknet vault type.
type: object
required:
- name
- type
title: CreateStarknetVaultRequest
EcdsaSecp256k1BlackBoxVault:
properties:
type:
type: string
const: ecdsa_secp256k1
title: Type
description: ECDSA over the secp256k1 curve signing scheme.
type: object
required:
- type
title: EcdsaSecp256k1BlackBoxVault
TonJettonAssetIdentifierRequest:
properties:
type:
type: string
const: jetton
title: Type
description: Jetton asset identifier type.
jetton:
$ref: '#/components/schemas/TonAddressRequest'
description: The Jetton details.
type: object
required:
- type
- jetton
title: TonJettonAssetIdentifierRequest
ExportState:
type: string
enum:
- created
- in_progress
- aborted
- ready
- error
title: ExportState
AptosVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: aptos
title: Type
description: Aptos vault type.
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address of the vault on Aptos chain types.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
title: AptosVault
description: Represents an Aptos vault in the Fordefi platform
VaultDerivationInfo:
properties:
derivation_path:
type: string
pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
title: Derivation Path
description: The BIP 44 derivation path of the vault.
example: m/44/60/0/0/0
master_public_key:
$ref: '#/components/schemas/MasterPublicKey'
description: The public key of the vault.
type: object
required:
- derivation_path
- master_public_key
title: VaultDerivationInfo
SolanaChainUniqueId:
type: string
enum:
- solana_mainnet
- solana_devnet
- solana_eclipse_mainnet
- solana_fogo_mainnet
- solana_fogo_testnet
title: SolanaChainUniqueId
UtxoAddressBalance:
properties:
address:
$ref: '#/components/schemas/UtxoAddress'
description: The address of the vault on the utxo chain.
balances:
$ref: '#/components/schemas/Balances'
description: The balances of the address.
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The priced asset of the address.
type: object
required:
- address
- balances
- priced_asset
title: UtxoAddressBalance
CreateSafeVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
type:
type: string
const: safe
title: Type
description: Safe vault type.
address:
type: string
pattern: ^0x[a-fA-F0-9]{40}$
title: Address
description: The address of the Safe multisig wallet to import.
type: object
required:
- name
- type
- address
title: CreateSafeVaultRequest
description: Request to create a Safe vault via POST /api/v1/vaults.
VaultRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the vault in the Fordefi platform.
vault_group_id:
title: Vault Group Id
description: The unique identifier of the vault group this vault belongs to.
deprecated: true
type: string
format: uuid
vault_group_ids:
items:
type: string
format: uuid
type: array
title: Vault Group Ids
description: The unique identifiers of the vault groups this vault belongs to.
name:
type: string
title: Name
description: The name of the vault.
address:
title: Address
description: The address of the vault.
type: string
state:
$ref: '#/components/schemas/VaultState'
description: The state of the vault.
type:
$ref: '#/components/schemas/VaultType'
description: The vault type.
logo_url:
title: Logo Url
description: The logo of the vault. Supported for exchange and Safe vaults.
type: string
maxLength: 2083
minLength: 1
format: uri
end_user:
description: The end user that owns this vault if it is in a Consumer Wallet organization. `None` otherwise.
$ref: '#/components/schemas/EndUserRef'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
type: object
required:
- id
- vault_group_ids
- name
- state
- type
title: VaultRef
description: Represents a reference to a vault in the Fordefi platform
StacksVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: stacks
title: Type
description: Stacks vault type.
address:
type: string
maxLength: 171
pattern: ^S[0-9A-Za-z._-]+$
title: Address
description: The address of the vault on Stacks chain types.
example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
title: StacksVault
description: Represents a Stacks vault in the Fordefi platform
ChainSource:
type: string
enum:
- default
- custom
title: ChainSource
CosmosAssetIdentifier:
properties:
type:
type: string
const: cosmos
title: Type
description: Cosmos asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
token: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
type: object
required:
- type
- details
- chain
title: CosmosAssetIdentifier
CreateVaultErrorType:
type: string
enum:
- vault_type_not_supported
- max_vaults_reached
- mpc_key_is_missing
- keyset_is_missing
- keyset_not_ready
- vault_creation_lock_failed
title: CreateVaultErrorType
UtxoChain:
properties:
chain_type:
type: string
const: utxo
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The UTXO chain unique ID.
type: object
required:
- chain_type
- unique_id
title: UtxoChain
EnrichedEvmChain:
properties:
chain_type:
type: string
const: evm
title: Chain Type
description: The type of the chain.
named_chain_id:
title: EvmChainName
description: The EVM chain name can be either one of those supported by the default chains below or a custom chain name if one was added to your organization. - `arbitrum_mainnet`
- `arbitrum_sepolia`
- `aster_mainnet`
- `avalanche_chain`
- `avalanche_fuji`
- `base_mainnet`
- `berachain_mainnet`
- `blast_mainnet`
- `bsc_mainnet`
- `canto_mainnet`
- `clink_mainnet`
- `clink_testnet`
- `conflux_mainnet`
- `dymension_mainnet`
- `ethereum_goerli`
- `ethereum_holesky`
- `ethereum_mainnet`
- `ethereum_sepolia`
- `fantom_mainnet`
- `flare_mainnet`
- `flare_testnet`
- `gnosis_mainnet`
- `hypercore_mainnet`
- `hyperevm_mainnet`
- `ink_mainnet`
- `kava_mainnet`
- `katana_mainnet`
- `linea_mainnet`
- `optimism_mainnet`
- `pharos_mainnet`
- `plasma_mainnet`
- `manta_pacific_mainnet`
- `mantle_mainnet`
- `merlin_mainnet`
- `monad_mainnet`
- `polygon_mainnet`
- `polygon_mumbai`
- `polygon_zkevm_mainnet`
- `reya_mainnet`
- `robinhood_mainnet`
- `rootstock_mainnet`
- `scroll_mainnet`
- `sei_mainnet`
- `sonic_mainnet`
- `tempo_mainnet`
- `unichain_mainnet`
- `xai_mainnet`
- `x_layer_mainnet`
- `zero_gravity_mainnet`
- `zeta_mainnet`
- `zklink_nova_mainnet`
- `zksync_era_mainnet`
type: string
minLength: 1
chain_id:
type: integer
minimum: 1.0
title: EvmChainId
description: The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. - 1=`ethereum_mainnet`
- 5=`ethereum_goerli`
- 10=`optimism_mainnet`
- 14=`flare_mainnet`
- 16=`flare_testnet`
- 30=`rootstock_mainnet`
- 56=`bsc_mainnet`
- 100=`gnosis_mainnet`
- 130=`unichain_mainnet`
- 137=`polygon_mainnet`
- 143=`monad_mainnet`
- 146=`sonic_mainnet`
- 169=`manta_pacific_mainnet`
- 196=`x_layer_mainnet`
- 250=`fantom_mainnet`
- 324=`zksync_era_mainnet`
- 999=`hyperevm_mainnet`
- 1030=`conflux_mainnet`
- 1100=`dymension_mainnet`
- 1101=`polygon_zkevm_mainnet`
- 1329=`sei_mainnet`
- 1337=`hypercore_mainnet`
- 1666=`aster_mainnet`
- 1672=`pharos_mainnet`
- 1729=`reya_mainnet`
- 2222=`kava_mainnet`
- 4200=`merlin_mainnet`
- 4217=`tempo_mainnet`
- 4663=`robinhood_mainnet`
- 5000=`mantle_mainnet`
- 7000=`zeta_mainnet`
- 7700=`canto_mainnet`
- 8453=`base_mainnet`
- 8818=`clink_mainnet`
- 8819=`clink_testnet`
- 9745=`plasma_mainnet`
- 16661=`zero_gravity_mainnet`
- 17000=`ethereum_holesky`
- 80001=`polygon_mumbai`
- 80094=`berachain_mainnet`
- 42161=`arbitrum_mainnet`
- 43113=`avalanche_fuji`
- 43114=`avalanche_chain`
- 57073=`ink_mainnet`
- 59144=`linea_mainnet`
- 81457=`blast_mainnet`
- 421614=`arbitrum_sepolia`
- 534352=`scroll_mainnet`
- 660279=`xai_mainnet`
- 747474=`katana_mainnet`
- 810180=`zklink_nova_mainnet`
- 11155111=`ethereum_sepolia`
unique_id:
type: string
minLength: 1
title: EvmChainUniqueId
description: The unique EVM chain ID. Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_` if one was added to your organization. - `"evm_1"`
- `"evm_5"`
- `"evm_10"`
- `"evm_14"`
- `"evm_16"`
- `"evm_30"`
- `"evm_56"`
- `"evm_100"`
- `"evm_130"`
- `"evm_137"`
- `"evm_143"`
- `"evm_146"`
- `"evm_169"`
- `"evm_196"`
- `"evm_250"`
- `"evm_324"`
- `"evm_999"`
- `"evm_1030"`
- `"evm_1100"`
- `"evm_1101"`
- `"evm_1329"`
- `"evm_1337"`
- `"evm_1666"`
- `"evm_1672"`
- `"evm_1729"`
- `"evm_2222"`
- `"evm_4200"`
- `"evm_4217"`
- `"evm_4663"`
- `"evm_5000"`
- `"evm_7000"`
- `"evm_7700"`
- `"evm_8453"`
- `"evm_8818"`
- `"evm_8819"`
- `"evm_9745"`
- `"evm_16661"`
- `"evm_17000"`
- `"evm_80001"`
- `"evm_80094"`
- `"evm_42161"`
- `"evm_43113"`
- `"evm_43114"`
- `"evm_57073"`
- `"evm_59144"`
- `"evm_81457"`
- `"evm_421614"`
- `"evm_534352"`
- `"evm_660279"`
- `"evm_747474"`
- `"evm_810180"`
- `"evm_11155111"`
- `"evm_ethereum_mainnet"`
- `"evm_ethereum_goerli"`
- `"evm_optimism_mainnet"`
- `"evm_flare_mainnet"`
- `"evm_flare_testnet"`
- `"evm_rootstock_mainnet"`
- `"evm_bsc_mainnet"`
- `"evm_gnosis_mainnet"`
- `"evm_unichain_mainnet"`
- `"evm_polygon_mainnet"`
- `"evm_monad_mainnet"`
- `"evm_sonic_mainnet"`
- `"evm_manta_pacific_mainnet"`
- `"evm_x_layer_mainnet"`
- `"evm_fantom_mainnet"`
- `"evm_zksync_era_mainnet"`
- `"evm_hyperevm_mainnet"`
- `"evm_conflux_mainnet"`
- `"evm_dymension_mainnet"`
- `"evm_polygon_zkevm_mainnet"`
- `"evm_sei_mainnet"`
- `"evm_hypercore_mainnet"`
- `"evm_aster_mainnet"`
- `"evm_pharos_mainnet"`
- `"evm_reya_mainnet"`
- `"evm_kava_mainnet"`
- `"evm_merlin_mainnet"`
- `"evm_tempo_mainnet"`
- `"evm_robinhood_mainnet"`
- `"evm_mantle_mainnet"`
- `"evm_zeta_mainnet"`
- `"evm_canto_mainnet"`
- `"evm_base_mainnet"`
- `"evm_clink_mainnet"`
- `"evm_clink_testnet"`
- `"evm_plasma_mainnet"`
- `"evm_zero_gravity_mainnet"`
- `"evm_ethereum_holesky"`
- `"evm_polygon_mumbai"`
- `"evm_berachain_mainnet"`
- `"evm_arbitrum_mainnet"`
- `"evm_avalanche_fuji"`
- `"evm_avalanche_chain"`
- `"evm_ink_mainnet"`
- `"evm_linea_mainnet"`
- `"evm_blast_mainnet"`
- `"evm_arbitrum_sepolia"`
- `"evm_scroll_mainnet"`
- `"evm_xai_mainnet"`
- `"evm_katana_mainnet"`
- `"evm_zklink_nova_mainnet"`
- `"evm_ethereum_sepolia"`
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
gas_type:
$ref: '#/components/schemas/GasType'
description: The type of gas used by the chain.
supports_secure_node:
title: Supports Secure Node
description: '`True` if the chain supports secure nodes, `False` otherwise.'
deprecated: true
type: boolean
supports_mev_protected_node:
type: boolean
title: Supports Mev Protected Node
description: '`True` if the chain supports MEV protected nodes, `False` otherwise.'
default: false
rpc_url:
title: Rpc Url
description: The URL of the chain's RPC. Exists only for custom chains.
type: string
source:
$ref: '#/components/schemas/ChainSource'
description: 'The source of the chain. Can be:- `default`: Chains with built-in support on Fordefi''s platform.
- `custom`: User-added chains with support on Fordefi''s platform.
'
supports_7702:
type: boolean
title: Supports 7702
description: '`True` if the chain supports 7702, `False` otherwise.'
default: false
type: object
required:
- chain_type
- chain_id
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
- gas_type
- source
title: EnrichedEvmChain
SuiNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Sui asset identifier type.
chain:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: SuiNativeAssetIdentifierRequest
UtxoAddress:
properties:
type:
type: string
const: utxo
title: Type
address:
type: string
maxLength: 74
minLength: 14
title: Address
description: The UTXO string address.
example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
address_type:
$ref: '#/components/schemas/UtxoAddressType'
description: The type of the address.
chain:
$ref: '#/components/schemas/UtxoChain'
description: The UTXO chain unique ID.
type: object
required:
- type
- address
- address_type
- chain
title: UtxoAddress
UtxoVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: utxo
title: Type
description: UTXO vault type.
chain:
$ref: '#/components/schemas/EnrichedUtxoChain'
description: The UTXO chain.
default_address:
$ref: '#/components/schemas/UtxoVaultAddress'
description: The default address of the vault on the chain.
default_next_address_name:
type: string
title: Default Next Address Name
description: The default name of the next address to be created.
taproot_key_public_compressed:
title: Taproot Key Public Compressed
description: 'The compressed public key of the second key (taproot key for UTXO vault). As defined in the SEC1 standard: https://www.secg.org/SEC1-Ver-1.0.pdf.'
type: string
example: SGVsbG8=
taproot_key_derivation_info:
description: The derivation info of the second key (taproot key for UTXO vault).
$ref: '#/components/schemas/VaultDerivationInfo'
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- chain
- default_address
- default_next_address_name
title: UtxoVault
description: Represents a Utxo vault in the Fordefi platform
UserState:
type: string
enum:
- active
- onboarding_pending_code_generation
- onboarding_pending_activation
- reset_device_pending_code_generation
- reset_device_pending_activation
- pending_approval
- deleted
title: UserState
CreateBlackBoxVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: black_box
title: Type
description: Black Box vault type.
key_type:
type: string
enum:
- ecdsa_stark
- ecdsa_secp256k1
- eddsa_ed25519
- schnorr_secp256k1
title: Key Type
description: 'The key type of the signing scheme used by the vault. Can be: - `ecdsa_stark`
- `ecdsa_secp256k1`
- `eddsa_ed25519`
- `schnorr_secp256k1`
'
type: object
required:
- name
- type
- key_type
title: CreateBlackBoxVaultRequest
ArchAplTokenAssetIdentifierRequest:
properties:
type:
type: string
const: apl_token
title: Type
description: APL token asset identifier type.
token:
$ref: '#/components/schemas/ArchAddressRequest'
description: The APL token details.
type: object
required:
- type
- token
title: ArchAplTokenAssetIdentifierRequest
ArchChainUniqueId:
type: string
enum:
- arch_mainnet
- arch_testnet
title: ArchChainUniqueId
CantonChainUniqueId:
type: string
enum:
- canton_mainnet
title: CantonChainUniqueId
PricedAsset:
properties:
type:
type: string
const: asset_price
title: Type
asset_info:
$ref: '#/components/schemas/AssetInfo'
description: The asset info.
price:
description: The price of the asset (if it exists in the system).
$ref: '#/components/schemas/Price'
type: object
required:
- type
- asset_info
title: PricedAsset
BoundCount:
properties:
count:
type: integer
minimum: 0.0
title: Count
description: The number of items in the bound count.
has_more:
type: boolean
title: Has More
description: Whether there are more items in the bound count.
type: object
required:
- count
- has_more
title: BoundCount
description: BoundCount represents a bound count of items.
StellarClassicAssetIdentifierRequest:
properties:
type:
type: string
const: classic_asset
title: Type
description: Stellar asset identifier type.
code:
type: string
maxLength: 12
minLength: 1
pattern: ^[A-Za-z0-9]{1,12}$
title: Code
description: The 1-4 character asset code.
issuer:
$ref: '#/components/schemas/StellarAddressRequest'
description: The issuer address.
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain of the Classic Asset.
type: object
required:
- type
- code
- issuer
- chain
title: StellarClassicAssetIdentifierRequest
StellarSorobanAssetIdentifierRequest:
properties:
type:
type: string
const: soroban_asset
title: Type
description: Stellar asset identifier type.
address:
type: string
maxLength: 56
minLength: 56
pattern: ^[GCL][A-Z2-7]{55}$
title: Address
description: The Soroban asset address.
example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain of the Soroban asset.
type: object
required:
- type
- address
- chain
title: StellarSorobanAssetIdentifierRequest
TronVaultEnergyAndBandwidthData:
properties:
energy_used:
type: integer
title: Energy Used
description: The amount of energy used by the vault.
energy_limit:
type: integer
title: Energy Limit
description: The energy limit of the vault.
bandwidth_used:
type: integer
title: Bandwidth Used
description: The amount of bandwidth used by the vault.
bandwidth_limit:
type: integer
title: Bandwidth Limit
description: The bandwidth limit of the vault.
type: object
required:
- energy_used
- energy_limit
- bandwidth_used
- bandwidth_limit
title: TronVaultEnergyAndBandwidthData
description: Represents the energy and bandwidth data of a TRON vault
SystemUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: system
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name is Fordefi CARE
type: object
required:
- id
- user_type
- name
title: SystemUserRef
TronNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: TRON asset identifier type.
chain:
$ref: '#/components/schemas/TronChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: TronNativeAssetIdentifierRequest
CreateVaultRequest:
oneOf:
- $ref: '#/components/schemas/CreateAptosVaultRequest'
- $ref: '#/components/schemas/CreateArchVaultRequest'
- $ref: '#/components/schemas/CreateBlackBoxVaultRequest'
- $ref: '#/components/schemas/CreateCantonVaultRequest'
- $ref: '#/components/schemas/CreateCosmosVaultRequest'
- $ref: '#/components/schemas/CreateEvmVaultRequest'
- $ref: '#/components/schemas/CreateSafeVaultRequest'
- $ref: '#/components/schemas/CreateSolanaVaultRequest'
- $ref: '#/components/schemas/CreateStacksVaultRequest'
- $ref: '#/components/schemas/CreateStarknetVaultRequest'
- $ref: '#/components/schemas/CreateStellarVaultRequest'
- $ref: '#/components/schemas/CreateSuiVaultRequest'
- $ref: '#/components/schemas/CreateTonVaultRequest'
- $ref: '#/components/schemas/CreateTronVaultRequest'
- $ref: '#/components/schemas/CreateUtxoVaultRequest'
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/CreateAptosVaultRequest'
arch: '#/components/schemas/CreateArchVaultRequest'
black_box: '#/components/schemas/CreateBlackBoxVaultRequest'
canton: '#/components/schemas/CreateCantonVaultRequest'
cosmos: '#/components/schemas/CreateCosmosVaultRequest'
evm: '#/components/schemas/CreateEvmVaultRequest'
safe: '#/components/schemas/CreateSafeVaultRequest'
solana: '#/components/schemas/CreateSolanaVaultRequest'
stacks: '#/components/schemas/CreateStacksVaultRequest'
starknet: '#/components/schemas/CreateStarknetVaultRequest'
stellar: '#/components/schemas/CreateStellarVaultRequest'
sui: '#/components/schemas/CreateSuiVaultRequest'
ton: '#/components/schemas/CreateTonVaultRequest'
tron: '#/components/schemas/CreateTronVaultRequest'
utxo: '#/components/schemas/CreateUtxoVaultRequest'
StellarAssetIdentifier:
properties:
type:
type: string
const: stellar
title: Type
description: Stellar asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StellarNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StellarClassicAssetIdentifierRequest'
- $ref: '#/components/schemas/StellarSorobanAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
classic_asset: '#/components/schemas/StellarClassicAssetIdentifierRequest'
native: '#/components/schemas/StellarNativeAssetIdentifierRequest'
soroban_asset: '#/components/schemas/StellarSorobanAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedStellarChain'
type: object
required:
- type
- details
- chain
title: StellarAssetIdentifier
Price:
properties:
price:
title: Price
description: The price in the given fiat currency.
deprecated: true
type: string
pattern: ^\d+$
example: '1000000000000000000'
price_float:
type: string
pattern: ^\d+(\.\d+)?$
title: Price Float
description: The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
example: '1000000000000000000'
is_negative:
type: boolean
title: Is Negative
description: Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.
default: false
fiat_currency:
$ref: '#/components/schemas/FiatCurrency'
type: object
required:
- price
- price_float
- fiat_currency
title: Price
description: Price represents a price in a given FiatCurrency.
DefinedPreconditionError_CreateVaultAddressErrorType_:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
error_type:
$ref: '#/components/schemas/CreateVaultAddressErrorType'
type: object
required:
- title
- detail
title: DefinedPreconditionError[CreateVaultAddressErrorType]
BlockchainExplorer:
properties:
transaction_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Transaction Url
example: https://etherscan.io/tx/
address_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Address Url
example: https://etherscan.io/address/
root_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Root Url
example: https://etherscan.io/
transaction_format_url:
title: Transaction Format Url
example: https://etherscan.io/tx/%s
type: string
maxLength: 2083
minLength: 1
format: uri
address_format_url:
title: Address Format Url
example: https://etherscan.io/address/%s
type: string
maxLength: 2083
minLength: 1
format: uri
asset_format_url:
title: Asset Format Url
example: https://etherscan.io/address/%s
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- transaction_url
- address_url
- root_url
title: BlockchainExplorer
description: A blockchain explorer entry point.
ListVaultsResponse:
properties:
total:
type: integer
title: Total
page:
type: integer
title: Page
size:
type: integer
title: Size
vaults:
items:
$ref: '#/components/schemas/Vault'
type: array
title: Vaults
type: object
required:
- total
- page
- size
- vaults
title: ListVaultsResponse
AssetInfo:
properties:
id:
type: string
format: uuid
title: Id
description: The asset ID.
asset_identifier:
$ref: '#/components/schemas/AssetIdentifier'
description: The asset identifier.
name:
type: string
title: Name
description: The name of the asset.
symbol:
type: string
title: Symbol
description: The symbol (ticker) of the asset.
decimals:
type: integer
minimum: 0.0
title: Decimals
verified:
type: boolean
title: Verified
description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
metadata_uri:
title: Metadata Uri
description: The URI of the asset metadata.
type: string
is_spam:
type: boolean
title: Is Spam
description: '`True` if this asset is spam, `False` otherwise.'
logo_url:
title: Logo Url
description: The URL of the asset logo.
type: string
minLength: 1
format: uri
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the asset.
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- id
- asset_identifier
- name
- symbol
- decimals
- verified
- is_spam
title: AssetInfo
VaultState:
type: string
enum:
- active
- archived
- deleted
- pending
- aborted
title: VaultState
CantonCip56TokenAssetIdentifierRequest:
properties:
type:
type: string
const: cip56_token
title: Type
description: CIP56 token asset identifier type.
token:
$ref: '#/components/schemas/CantonInstrumentIdRequest'
description: The CIP56 token details.
type: object
required:
- type
- token
title: CantonCip56TokenAssetIdentifierRequest
Resource:
type: string
enum:
- user
- user_change_proposals
- user_group
- user_group_change_proposal
- vault
- vault_address
- vault_group
- address_group
- transaction
- batch_transaction
- path
- keyset
- auth_token
- access_token
- asset
- asset_info
- vault_derivation_path
- blockchain
- export
- quote
- import_keys_request
- vault_address_account
- exchange_asset_mapping
- dapp_group
- safe_address
- audit_log
title: Resource
AptosAssetIdentifier:
properties:
type:
type: string
const: aptos
title: Type
description: Aptos asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/AptosNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/AptosCoinAssetIdentifierRequest'
- $ref: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
coin: '#/components/schemas/AptosCoinAssetIdentifierRequest'
native: '#/components/schemas/AptosNativeAssetIdentifierRequest'
new_coin: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedAptosChain'
type: object
required:
- type
- details
- chain
title: AptosAssetIdentifier
EvmErc20AssetIdentifierRequest:
properties:
type:
type: string
const: erc20
title: Type
description: EVM asset identifier type.
token:
$ref: '#/components/schemas/EvmAddressRequest'
description: The ERC-20 token contract.
type: object
required:
- type
- token
title: EvmErc20AssetIdentifierRequest
EvmErc1155AssetIdentifierRequest:
properties:
type:
type: string
const: erc1155
title: Type
description: EVM asset identifier type.
token:
$ref: '#/components/schemas/EvmAddressRequest'
description: The ERC-1155 token contract.
token_id:
type: string
pattern: ^\d+$
title: Token Id
description: The token id of the ERC-1155 token.
example: '1000000000000000000'
type: object
required:
- type
- token
- token_id
title: EvmErc1155AssetIdentifierRequest
EnrichedCosmosChain:
properties:
chain_type:
type: string
const: cosmos
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The Cosmos chain unique id.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
base_denom:
type: string
title: Base Denom
description: The base denom of the chain.
bech32_prefix:
$ref: '#/components/schemas/CosmosBech32Prefix'
description: The bech32 prefix for addresses on the chain.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
- base_denom
- bech32_prefix
title: EnrichedCosmosChain
CantonInstrumentIdRequest:
properties:
address:
$ref: '#/components/schemas/CantonAddressRequest'
description: The address of the instrument provider.
id:
type: string
title: Id
description: The instrument ID within the provider's namespace.
type: object
required:
- address
- id
title: CantonInstrumentIdRequest
description: Instrument ID represents a Canton instrument identifier (address + id).
Vault:
oneOf:
- $ref: '#/components/schemas/AptosVault'
- $ref: '#/components/schemas/ArchVault'
- $ref: '#/components/schemas/BlackBoxVault'
- $ref: '#/components/schemas/CantonVault'
- $ref: '#/components/schemas/CosmosVault'
- $ref: '#/components/schemas/EvmVault'
- $ref: '#/components/schemas/SolanaVault'
- $ref: '#/components/schemas/StacksVault'
- $ref: '#/components/schemas/StarknetVault'
- $ref: '#/components/schemas/StellarVault'
- $ref: '#/components/schemas/SuiVault'
- $ref: '#/components/schemas/TonVault'
- $ref: '#/components/schemas/TronVault'
- $ref: '#/components/schemas/UtxoVault'
- $ref: '#/components/schemas/ExchangeVault'
- $ref: '#/components/schemas/SafeVault'
description: Represents a vault in the Fordefi platform
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/AptosVault'
arch: '#/components/schemas/ArchVault'
black_box: '#/components/schemas/BlackBoxVault'
canton: '#/components/schemas/CantonVault'
cosmos: '#/components/schemas/CosmosVault'
evm: '#/components/schemas/EvmVault'
exchange: '#/components/schemas/ExchangeVault'
safe: '#/components/schemas/SafeVault'
solana: '#/components/schemas/SolanaVault'
stacks: '#/components/schemas/StacksVault'
starknet: '#/components/schemas/StarknetVault'
stellar: '#/components/schemas/StellarVault'
sui: '#/components/schemas/SuiVault'
ton: '#/components/schemas/TonVault'
tron: '#/components/schemas/TronVault'
utxo: '#/components/schemas/UtxoVault'
EcdsaStarkBlackBoxVault:
properties:
type:
type: string
const: ecdsa_stark
title: Type
description: ECDSA over the Stark curve signing scheme.
public_key:
title: Public Key
description: The stark public key, represented in hex format.
deprecated: true
type: string
maxLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
example: '0x19c78df8f4ff31e78de58575487ce1eaf19922ad9b8a714e61a441c12e0c8b2'
stark_key:
type: string
maxLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Stark Key
description: The stark public key, represented in hex format.
example: '0x19c78df8f4ff31e78de58575487ce1eaf19922ad9b8a714e61a441c12e0c8b2'
type: object
required:
- type
- stark_key
title: EcdsaStarkBlackBoxVault
CosmosVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: cosmos
title: Type
description: Cosmos vault type.
main_address:
type: string
minLength: 40
pattern: ^[a-fA-F0-9]+$
title: Main Address
description: The address of the vault on Cosmos chains (hex representation without chain prefix).
example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E
evm_address:
type: string
pattern: ^[a-fA-F0-9]+$
title: Evm Address
description: The address of the vault on Cosmos chains that uses ethermint public key format, (hex representation without 0x).
chains_addresses:
items:
$ref: '#/components/schemas/CosmosBechAddressEnrichedChain'
type: array
title: Chains Addresses
description: List of addresses of the vault on each chain (bech32 format) with chain info.
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- main_address
- evm_address
- chains_addresses
title: CosmosVault
description: Represents a Cosmos vault in the Fordefi platform
CreateCosmosVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: cosmos
title: Type
description: Cosmos vault type.
type: object
required:
- name
- type
title: CreateCosmosVaultRequest
SolanaAddressRequest:
properties:
chain:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
type: object
required:
- chain
- base58_repr
title: SolanaAddressRequest
description: Address represents a blockchain address.
OwnedAssetsSortableFields:
type: string
enum:
- asset_name_asc
- asset_name_desc
- chain_identifier_asc
- chain_identifier_desc
- balance_asc
- balance_desc
- market_value_asc
- market_value_desc
- price_asc
- price_desc
title: OwnedAssetsSortableFields
EnrichedArchChain:
properties:
chain_type:
type: string
const: arch
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/ArchChainUniqueId'
description: The type of the Arch-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedArchChain
EnrichedTonChain:
properties:
chain_type:
type: string
const: ton
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/TonChainUniqueId'
description: The type of the TON-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedTonChain
PreconditionFailedError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
type: object
required:
- title
- detail
title: PreconditionFailedError
SuiVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: sui
title: Type
description: Sui vault type.
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address of the vault on SUI chain types.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
title: SuiVault
description: Represents an SUI vault in the Fordefi platform
StacksSip10AssetIdentifierRequest:
properties:
type:
type: string
const: sip10
title: Type
description: Sip10 asset identifier type.
sip10:
$ref: '#/components/schemas/StacksAddressRequest'
description: The Sip10 details.
type: object
required:
- type
- sip10
title: StacksSip10AssetIdentifierRequest
CreateStacksVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
type:
type: string
const: stacks
title: Type
description: Stacks vault type.
type: object
required:
- name
- type
title: CreateStacksVaultRequest
SolanaAssetIdentifier:
properties:
type:
type: string
const: solana
title: Type
description: Solana asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
spl_token: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedSolanaChain'
type: object
required:
- type
- details
- chain
title: SolanaAssetIdentifier
CantonAddressRequest:
properties:
chain:
$ref: '#/components/schemas/CantonChainUniqueId'
description: The chain details this address is of.
account:
type: string
maxLength: 251
minLength: 70
title: Account
description: Party representation of the address in the chain.
example: 45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf
type: object
required:
- chain
- account
title: CantonAddressRequest
description: Address represents a blockchain address.
CreateUtxoVaultAddressRequest:
properties:
name:
title: Name
description: The name of the address.
type: string
minLength: 1
address_type:
$ref: '#/components/schemas/BitcoinVaultCreateAddressType'
description: The type of the address.
default: segwit
import_address:
description: Additional information when creating an address from an imported key. This field is relevant only for organizations using imported keys.Imported addresses much be either of type LEGACY or SEGWIT.
$ref: '#/components/schemas/ImportVaultAddressOptions'
type: object
title: CreateUtxoVaultAddressRequest
StellarAddressRequest:
properties:
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain details this address is of.
base32_repr:
type: string
maxLength: 56
minLength: 56
pattern: ^[GCL][A-Z2-7]{55}$
title: Base32 Repr
description: Hexadecimal representation of the address in the chain.
example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2
type: object
required:
- chain
- base32_repr
title: StellarAddressRequest
description: Address represents a blockchain address.
EvmErc721AssetIdentifierRequest:
properties:
type:
type: string
const: erc721
title: Type
description: EVM asset identifier type.
token:
$ref: '#/components/schemas/EvmAddressRequest'
description: The ERC-721 token contract.
token_id:
type: string
pattern: ^\d+$
title: Token Id
description: The token id of the ERC-721 token.
example: '1000000000000000000'
type: object
required:
- type
- token
- token_id
title: EvmErc721AssetIdentifierRequest
CosmosChainUniqueId:
type: string
enum:
- cosmos_agoric-3
- cosmos_akashnet-2
- cosmos_archway-1
- cosmos_axelar-dojo-1
- cosmos_bbn-1
- cosmos_celestia
- cosmos_cosmoshub-4
- cosmos_dydx-mainnet-1
- cosmos_dydx-testnet-4
- cosmos_dymension_1100-1
- cosmos_injective-1
- cosmos_neutron-1
- cosmos_nillion-1
- cosmos_noble-1
- cosmos_osmosis-1
- cosmos_provider
- cosmos_ssc-1
- cosmos_pacific-1
- cosmos_stride-1
- cosmos_thorchain-1
- cosmos_mantra-1
title: CosmosChainUniqueId
CosmosKeyType:
type: string
enum:
- secp256k1
- ethsecp256k1
title: CosmosKeyType
SafeVaultState:
type: string
enum:
- active
- pending
- aborted
title: SafeVaultState
UserRef:
oneOf:
- $ref: '#/components/schemas/PersonRef'
- $ref: '#/components/schemas/ApiUserRef'
- $ref: '#/components/schemas/ApiSignerRef'
- $ref: '#/components/schemas/EndUserRef'
- $ref: '#/components/schemas/SystemUserRef'
description: Represents a reference to a user in the Fordefi platform
discriminator:
propertyName: user_type
mapping:
api_signer: '#/components/schemas/ApiSignerRef'
api_user: '#/components/schemas/ApiUserRef'
end_user: '#/components/schemas/EndUserRef'
person: '#/components/schemas/PersonRef'
system: '#/components/schemas/SystemUserRef'
ApiUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: api_user
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name of the user.
state:
type: string
enum:
- active
- deleted
title: State
description: The state of the user.
role:
$ref: '#/components/schemas/UserRole'
description: The role of the user.
type: object
required:
- id
- user_type
- name
- state
- role
title: ApiUserRef
UtxoAddressType:
type: string
enum:
- legacy
- p2sh
- segwit
- taproot
- merkleroot
title: UtxoAddressType
EnrichedTronChain:
properties:
chain_type:
type: string
const: tron
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/TronChainUniqueId'
description: The type of the Tron-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedTronChain
SuiCoinTypeRequest:
properties:
chain:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The chain details this address is of.
coin_type_str:
type: string
title: Coin Type Str
description: Coin type string representation.
type: object
required:
- chain
- coin_type_str
title: SuiCoinTypeRequest
description: Coin type represents a blockchain coin type.
AptosNewCoinTypeRequest:
properties:
chain:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The chain details this address is of.
metadata_address:
type: string
title: Metadata Address
description: New coin's metadata address.
type: object
required:
- chain
- metadata_address
title: AptosNewCoinTypeRequest
description: New coin type represents a blockchain new coin type.
FiatCurrencySymbol:
type: string
enum:
- usd
title: FiatCurrencySymbol
description: FiatCurrencySymbol
SubAccount:
properties:
type:
type: string
const: sub
title: Type
description: Exchange vault for a sub account.
master_vault:
$ref: '#/components/schemas/VaultRef'
description: Reference to the master vault.
sub_account_id:
type: string
title: Sub Account Id
description: The ID of the sub account.
sub_account_name:
type: string
title: Sub Account Name
description: The name of the sub account.
type: object
required:
- type
- master_vault
- sub_account_id
- sub_account_name
title: SubAccount
ExportedResource:
type: string
enum:
- transaction
- backup_snapshot
- vault
title: ExportedResource
MasterPublicKey:
properties:
id:
type: string
format: uuid
title: Id
description: The ID of the key.
xpub:
type: string
title: Xpub
description: The xpub encoding of the key. For more details, see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#serialization-format
type: object
required:
- id
- xpub
title: MasterPublicKey
ArchVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: arch
title: Type
description: Arch vault type.
arch_address:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Arch Address
description: The address of the vault on Arch chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
arch_mainnet_deposit_address:
$ref: '#/components/schemas/UtxoAddressBalance'
description: The Arch deposit address of the vault on Bitcoin mainnet chain.
arch_testnet_deposit_address:
$ref: '#/components/schemas/UtxoAddressBalance'
description: The Arch deposit address of the vault on Bitcoin testnet chain.
bitcoin_mainnet_address:
$ref: '#/components/schemas/UtxoAddressBalance'
description: The Bitcoin mainnet address of the vault on Bitcoin mainnet chain.
bitcoin_testnet_address:
$ref: '#/components/schemas/UtxoAddressBalance'
description: The Bitcoin testnet address of the vault on Bitcoin testnet chain.
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- arch_address
- arch_mainnet_deposit_address
- arch_testnet_deposit_address
- bitcoin_mainnet_address
- bitcoin_testnet_address
title: ArchVault
description: Represents a Arch vault in the Fordefi platform
SubmitUpdateVaultChangeProposalRequest:
properties:
diff:
$ref: '#/components/schemas/UpdateVaultChangeRequestDiff'
description: The diff of the update vault change request.
type: object
required:
- diff
title: SubmitUpdateVaultChangeProposalRequest
CreateStellarVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: stellar
title: Type
description: Stellar vault type.
type: object
required:
- name
- type
title: CreateStellarVaultRequest
CreateEvmVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: evm
title: Type
description: EVM vault type.
type: object
required:
- name
- type
title: CreateEvmVaultRequest
TonAssetIdentifier:
properties:
type:
type: string
const: ton
title: Type
description: TON asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/TonNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/TonJettonAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
jetton: '#/components/schemas/TonJettonAssetIdentifierRequest'
native: '#/components/schemas/TonNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedTonChain'
type: object
required:
- type
- details
- chain
title: TonAssetIdentifier
VaultOriginType:
type: string
enum:
- native
- imported
title: VaultOriginType
ApiSignerRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: api_signer
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name of the user.
state:
type: string
enum:
- active
- onboarding_pending_code_generation
- onboarding_pending_activation
- deleted
title: State
description: The state of the user.
type: object
required:
- id
- user_type
- name
- state
title: ApiSignerRef
StarknetNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Starknet asset identifier type.
chain:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: StarknetNativeAssetIdentifierRequest
TronVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: tron
title: Type
description: TRON vault type.
address:
type: string
maxLength: 34
minLength: 34
pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The address of the vault on TRON chain types.
example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
energy_and_bandwidth_data_map:
additionalProperties:
$ref: '#/components/schemas/TronVaultEnergyAndBandwidthData'
type: object
title: Energy And Bandwidth Data Map
description: Resource usage tracking per chain type map. Key is the chain type (for example, MAINNET).
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
- energy_and_bandwidth_data_map
title: TronVault
description: Represents a TRON vault in the Fordefi platform
RenameVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The new name for the vault.
type: object
required:
- name
title: RenameVaultRequest
SmartContractState:
type: string
enum:
- enabled
- enabling
- disabling
title: SmartContractState
GetVaultResponse:
oneOf:
- $ref: '#/components/schemas/AptosVault'
- $ref: '#/components/schemas/ArchVault'
- $ref: '#/components/schemas/BlackBoxVault'
- $ref: '#/components/schemas/CantonVault'
- $ref: '#/components/schemas/CosmosVault'
- $ref: '#/components/schemas/EvmVault'
- $ref: '#/components/schemas/SolanaVault'
- $ref: '#/components/schemas/StacksVault'
- $ref: '#/components/schemas/StarknetVault'
- $ref: '#/components/schemas/StellarVault'
- $ref: '#/components/schemas/SuiVault'
- $ref: '#/components/schemas/TonVault'
- $ref: '#/components/schemas/TronVault'
- $ref: '#/components/schemas/UtxoVault'
- $ref: '#/components/schemas/ExchangeVault'
- $ref: '#/components/schemas/SafeVault'
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/AptosVault'
arch: '#/components/schemas/ArchVault'
black_box: '#/components/schemas/BlackBoxVault'
canton: '#/components/schemas/CantonVault'
cosmos: '#/components/schemas/CosmosVault'
evm: '#/components/schemas/EvmVault'
exchange: '#/components/schemas/ExchangeVault'
safe: '#/components/schemas/SafeVault'
solana: '#/components/schemas/SolanaVault'
stacks: '#/components/schemas/StacksVault'
starknet: '#/components/schemas/StarknetVault'
stellar: '#/components/schemas/StellarVault'
sui: '#/components/schemas/SuiVault'
ton: '#/components/schemas/TonVault'
tron: '#/components/schemas/TronVault'
utxo: '#/components/schemas/UtxoVault'
SchnorrSecp256k1BlackBoxValue:
properties:
type:
type: string
const: schnorr_secp256k1
title: Type
description: Schnorr over the secp256k1 curve signing scheme.
type: object
required:
- type
title: SchnorrSecp256k1BlackBoxValue
CreateSuiVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: sui
title: Type
description: Sui vault type.
type: object
required:
- name
- type
title: CreateSuiVaultRequest
StellarVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: stellar
title: Type
description: Stellar vault type.
address:
type: string
maxLength: 56
minLength: 56
pattern: ^[GCL][A-Z2-7]{55}$
title: Address
description: The address of the vault on Stellar chain types.
example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
title: StellarVault
EnrichedExchangeChain:
properties:
chain_type:
type: string
const: exchange
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/ExchangeChainUniqueId'
description: The type of the Exchange-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedExchangeChain
ExchangeVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
type:
type: string
const: exchange
title: Type
description: EXCHANGE vault type.
exchange_type:
$ref: '#/components/schemas/ExchangeType'
description: The exchange which holds this account.
portfolio:
description: The portfolio of the exchange.
$ref: '#/components/schemas/ExchangePortfolio'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo of the vault.
is_balance_data_outdated:
type: boolean
title: Is Balance Data Outdated
description: Whether the balance data is outdated.
account:
oneOf:
- $ref: '#/components/schemas/MasterAccount'
- $ref: '#/components/schemas/SubAccount'
description: The account details.
discriminator:
propertyName: type
mapping:
master: '#/components/schemas/MasterAccount'
sub: '#/components/schemas/SubAccount'
state:
$ref: '#/components/schemas/ExchangeVaultState'
description: State of the vault.
change_request_id:
type: string
format: uuid
title: Change Request Id
description: The ID of the change request.
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- type
- exchange_type
- logo_url
- is_balance_data_outdated
- account
- state
- change_request_id
title: ExchangeVault
description: Represents an exchange account vault in the Fordefi platform
CantonVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: canton
title: Type
description: Canton vault type.
address:
type: string
maxLength: 251
minLength: 70
title: Address
description: The address of the vault on Canton chain types.
example: 45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf
chain_state_map:
additionalProperties:
$ref: '#/components/schemas/CantonChainStateData'
type: object
title: Chain State Map
description: Map of Canton chain type to state data (registration and approval states).
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
- chain_state_map
title: CantonVault
SuiCoinAssetIdentifierRequest:
properties:
type:
type: string
const: coin
title: Type
description: Coin asset identifier type.
coin_type:
$ref: '#/components/schemas/SuiCoinTypeRequest'
description: The Coin details.
type: object
required:
- type
- coin_type
title: SuiCoinAssetIdentifierRequest
ListOwnedAssetsResponse:
properties:
total:
type: integer
title: Total
page:
type: integer
title: Page
size:
type: integer
title: Size
owned_assets:
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
title: Owned Assets
type: object
required:
- total
- page
- size
- owned_assets
title: ListOwnedAssetsResponse
BitcoinVaultCreateAddressType:
type: string
enum:
- legacy
- segwit
- taproot
title: BitcoinVaultCreateAddressType
StacksChainUniqueId:
type: string
enum:
- stacks_mainnet
title: StacksChainUniqueId
RateLimitError:
properties: {}
type: object
title: RateLimitError
CreateSolanaVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: solana
title: Type
description: Solana vault type.
type: object
required:
- name
- type
title: CreateSolanaVaultRequest
ArchNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Arch asset identifier type.
chain:
$ref: '#/components/schemas/ArchChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: ArchNativeAssetIdentifierRequest
ImportVaultAddressOptions:
properties:
derivation_path:
type: string
pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
title: Derivation Path
description: The BIP-32 derivation path of the address.
example: m/44/60/0/0/0
type: object
required:
- derivation_path
title: ImportVaultAddressOptions
ResourceError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
resource:
description: The type of resource.
$ref: '#/components/schemas/Resource'
type: object
required:
- title
- detail
title: ResourceError
DefinedPreconditionError_CreateVaultErrorType_:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
error_type:
$ref: '#/components/schemas/CreateVaultErrorType'
type: object
required:
- title
- detail
title: DefinedPreconditionError[CreateVaultErrorType]
TonAddressRequest:
properties:
chain:
$ref: '#/components/schemas/TonChainUniqueId'
description: The chain details this address is of.
address:
type: string
maxLength: 67
pattern: ^[-0-9]+:[A-Fa-f0-9]{64}$
title: Address
description: Contract address in a raw format.
type: object
required:
- chain
- address
title: TonAddressRequest
description: Address represents a blockchain address.
EnrichedStellarChain:
properties:
chain_type:
type: string
const: stellar
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The type of the Stellar chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedStellarChain
StarknetAddressRequest:
properties:
chain:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The chain details this address is of.
hex_repr:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Hex Repr
description: Hexadecimal representation of the address in the chain.
example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
type: object
required:
- chain
- hex_repr
title: StarknetAddressRequest
description: Address represents a blockchain address.
EvmAddressRequest:
properties:
chain:
type: string
minLength: 1
title: EvmChainUniqueId
description: The chain details this address is of.
hex_repr:
type: string
maxLength: 42
minLength: 42
pattern: ^0[xX][a-fA-F0-9]+$
title: Hex Repr
description: Hexadecimal representation of the address in the chain.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
type: object
required:
- chain
- hex_repr
title: EvmAddressRequest
description: Address represents a blockchain address.
StacksAddressRequest:
properties:
chain:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The chain details this address is of.
hex_repr:
type: string
maxLength: 171
pattern: ^S[0-9A-Za-z._-]+$
title: Hex Repr
description: Hexadecimal representation of the address in the chain.
example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
type: object
required:
- chain
- hex_repr
title: StacksAddressRequest
description: Address represents a blockchain address.
AptosNewCoinAssetIdentifierRequest:
properties:
type:
type: string
const: new_coin
title: Type
description: New coin asset identifier type.
new_coin_type:
$ref: '#/components/schemas/AptosNewCoinTypeRequest'
description: The new coin details.
type: object
required:
- type
- new_coin_type
title: AptosNewCoinAssetIdentifierRequest
UtxoChainUniqueId:
type: string
enum:
- bitcoin_mainnet
- bitcoin_testnet
- bitcoin_testnet_v4
- dogecoin_mainnet
- bitcoin_cash_mainnet
- pearl_testnet
- pearl_mainnet
title: UtxoChainUniqueId
EvmVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: evm
title: Type
description: EVM vault type.
address:
type: string
maxLength: 42
minLength: 42
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address of the vault on EVM chain types.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
smart_contract_states:
additionalProperties:
$ref: '#/components/schemas/SmartContractState'
type: object
title: Smart Contract States
description: A dictionary of chain IDs to smart contract states.
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
title: EvmVault
description: Represents an EVM vault in the Fordefi platform
CantonRegistrationState:
type: string
enum:
- not_registered
- in_progress
- registered
title: CantonRegistrationState
ListVaultsSortableFields:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
- vault_type_asc
- vault_type_desc
- is_favorite_asc
- is_favorite_desc
title: ListVaultsSortableFields
CreateVaultAddressRequest:
$ref: '#/components/schemas/CreateUtxoVaultAddressRequest'
title: CreateVaultAddressRequest
GetOwnedAssetResponse:
$ref: '#/components/schemas/OwnedAsset'
title: GetOwnedAssetResponse
StarknetVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: starknet
title: Type
description: Starknet vault type.
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address of the vault on Starknet chain types.
example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
activation_state:
$ref: '#/components/schemas/StarknetVaultState'
description: State of the vault on the Starknet chain.
activating_transaction_id:
title: Activating Transaction Id
description: The transaction id of the activating transaction.
type: string
format: uuid
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- address
- activation_state
title: StarknetVault
description: Represents a Starknet vault in the Fordefi platform
EnrichedAptosChain:
properties:
chain_type:
type: string
const: aptos
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The type of the Aptos-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedAptosChain
VaultAddressSortableFields:
type: string
enum:
- created_at_asc
- created_at_desc
- name_asc
- name_desc
title: VaultAddressSortableFields
ArchAddressRequest:
properties:
chain:
$ref: '#/components/schemas/ArchChainUniqueId'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
type: object
required:
- chain
- base58_repr
title: ArchAddressRequest
description: Address represents a blockchain address.
CosmosBech32Prefix:
type: string
enum:
- agoric
- akash
- archway
- axelar
- bbn
- celestia
- cosmos
- dydx
- dym
- inj
- neutron
- nillion
- noble
- osmo
- saga
- sei
- stride
- thor
- mantra
title: CosmosBech32Prefix
BlackBoxVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
derivation_path:
title: Derivation Path
description: The BIP 44 derivation path of the vault.
deprecated: true
example: m/44/60/0/0/0
type: string
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The public key of the vault in its compressed form: - For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf).
- For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032).
'
example: SGVsbG8=
derivation_info:
$ref: '#/components/schemas/VaultDerivationInfo'
description: The derivation info of the vault.
key_holder:
description: The user who owns the keyset of the vault. If not provided, the vault is owned by the organization.
$ref: '#/components/schemas/EndUserRef'
origin_type:
$ref: '#/components/schemas/VaultOriginType'
description: The origin type of the vault.
state:
$ref: '#/components/schemas/MpcVaultState'
description: New state of the vault.
type:
type: string
const: black_box
title: Type
description: Black Box vault type.
details:
oneOf:
- $ref: '#/components/schemas/EcdsaStarkBlackBoxVault'
- $ref: '#/components/schemas/EcdsaSecp256k1BlackBoxVault'
- $ref: '#/components/schemas/EddsaED25519BlackBoxVault'
- $ref: '#/components/schemas/SchnorrSecp256k1BlackBoxValue'
discriminator:
propertyName: type
mapping:
ecdsa_secp256k1: '#/components/schemas/EcdsaSecp256k1BlackBoxVault'
ecdsa_stark: '#/components/schemas/EcdsaStarkBlackBoxVault'
eddsa_ed25519: '#/components/schemas/EddsaED25519BlackBoxVault'
schnorr_secp256k1: '#/components/schemas/SchnorrSecp256k1BlackBoxValue'
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- derivation_path
- public_key_compressed
- derivation_info
- origin_type
- state
- type
- details
title: BlackBoxVault
description: Represents a Black Box vault in the Fordefi platform
AptosCoinTypeRequest:
properties:
chain:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The chain details this address is of.
coin_type_str:
type: string
title: Coin Type Str
description: Coin type string representation.
type: object
required:
- chain
- coin_type_str
title: AptosCoinTypeRequest
description: Coin type represents a blockchain legacy coin type.
CosmosBechAddressEnrichedChain:
properties:
type:
type: string
const: cosmos
title: Type
chain:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The Cosmos chain.
address:
type: string
title: Address
description: The address as bech32.
example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38
hex_repr:
title: Hex Repr
description: The hex representation of the address.
type: string
minLength: 40
pattern: ^[a-fA-F0-9]+$
example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E
key_type:
$ref: '#/components/schemas/CosmosKeyType'
description: The type of the key that this address is derived from.
default: secp256k1
enriched_chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: Enriched chain of the address.
type: object
required:
- type
- chain
- address
- enriched_chain
title: CosmosBechAddressEnrichedChain
VaultGroupRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the vault group in the Fordefi platform.
name:
type: string
title: Name
description: The name of the vault group.
vaults_count:
$ref: '#/components/schemas/BoundCount'
description: The number of vaults in the group.
can_current_user_create_or_edit_vaults:
type: boolean
title: Can Current User Create Or Edit Vaults
description: Can the current user create or edit vaults in the group's based on the group permissions
type: object
required:
- id
- name
- vaults_count
- can_current_user_create_or_edit_vaults
title: VaultGroupRef
description: Represents a reference to a vault group in the Fordefi platform
CantonAssetIdentifier:
properties:
type:
type: string
const: canton
title: Type
description: Canton asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/CantonNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/CantonCip56TokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
cip56_token: '#/components/schemas/CantonCip56TokenAssetIdentifierRequest'
native: '#/components/schemas/CantonNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedCantonChain'
type: object
required:
- type
- details
- chain
title: CantonAssetIdentifier
AptosChainUniqueId:
type: string
enum:
- aptos_mainnet
- aptos_testnet
- aptos_movement_mainnet
- aptos_movement_testnet
title: AptosChainUniqueId
EddsaED25519BlackBoxVault:
properties:
type:
type: string
const: eddsa_ed25519
title: Type
description: Ed25519 signing scheme.
type: object
required:
- type
title: EddsaED25519BlackBoxVault
UtxoVaultAddress:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
vault:
$ref: '#/components/schemas/VaultRef'
description: The vault this address belongs to.
name:
type: string
title: Name
description: The name of the address.
balances:
description: The balances of the address.
deprecated: true
$ref: '#/components/schemas/Balances'
public_key_compressed:
type: string
title: Public Key Compressed
description: 'The compressed public key of the address. As defined in the SEC1 standard: https://www.secg.org/SEC1-Ver-1.0.pdf.'
example: SGVsbG8=
derivation_path:
type: string
title: Derivation Path
description: The BIP-32 derivation path of the address.
example: m/44/60/0/0/0
type:
type: string
const: utxo
title: Type
description: The type of the vault address.
address:
$ref: '#/components/schemas/UtxoAddress'
description: The address on the chain.
type: object
required:
- id
- created_at
- modified_at
- vault
- name
- public_key_compressed
- derivation_path
- type
- address
title: UtxoVaultAddress
ExportType:
type: string
enum:
- csv
- zip
title: ExportType
TonChainUniqueId:
type: string
enum:
- ton_mainnet
title: TonChainUniqueId
StacksNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Stacks asset identifier type.
chain:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: StacksNativeAssetIdentifierRequest
SkipIndexingReason:
type: string
enum:
- spam
title: SkipIndexingReason
CantonChainStateData:
properties:
registration_state:
$ref: '#/components/schemas/CantonRegistrationState'
description: Registration state of the vault on this Canton chain.
activating_transaction_id:
title: Activating Transaction Id
description: The transaction id of the party allocation transaction activating the vault on this chain.
type: string
format: uuid
type: object
required:
- registration_state
title: CantonChainStateData
CosmosTokenAssetIdentifierRequest:
properties:
type:
type: string
const: token
title: Type
description: Token asset identifier type.
chain:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The unique id of the chain of the asset.
denom:
type: string
title: Denom
description: The denom of the asset.
type: object
required:
- type
- chain
- denom
title: CosmosTokenAssetIdentifierRequest
CreateVaultAddressResponse:
$ref: '#/components/schemas/UtxoVaultAddress'
title: CreateVaultAddressResponse
CreateUtxoVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
type:
type: string
const: utxo
title: Type
description: UTXO vault type.
chain:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The UTXO chain type.
import_options:
description: 'Import options: for organizations with imported keys for organizations with external signer keys.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options instead.'
$ref: '#/components/schemas/ImportVaultUtxoOptions'
type: object
required:
- name
- type
- chain
title: CreateUtxoVaultRequest
GasType:
type: string
enum:
- dynamic
- legacy
title: GasType
StellarChainUniqueId:
type: string
enum:
- stellar_mainnet
title: StellarChainUniqueId
SafeVault:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
metadata:
title: Metadata
description: 'Metadata in a form: .'
additionalProperties:
anyOf:
- items:
type: string
type: array
- type: string
- type: integer
- type: boolean
type: object
name:
type: string
title: Name
description: The name of the vault.
created_by:
$ref: '#/components/schemas/UserRef'
description: Details of the vault creator.
vault_group:
description: The vault group this vault belongs to.
deprecated: true
$ref: '#/components/schemas/VaultGroupRef'
vault_groups:
items:
$ref: '#/components/schemas/VaultGroupRef'
type: array
title: Vault Groups
description: The vault groups this vault belongs to.
skip_indexing_reason:
description: Reason why the vault is not being indexed.
$ref: '#/components/schemas/SkipIndexingReason'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
native_assets:
title: Native Assets
description: List of native asset information for requested chains. Chain info is in asset_identifier.
items:
$ref: '#/components/schemas/OwnedAsset'
type: array
type:
type: string
const: safe
title: Type
description: Safe vault type.
address:
type: string
maxLength: 42
minLength: 42
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address of the Safe multisig wallet.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo of the Safe vault.
state:
$ref: '#/components/schemas/SafeVaultState'
description: State of the vault.
change_request_id:
type: string
format: uuid
title: Change Request Id
description: The ID of the change request.
type: object
required:
- id
- created_at
- modified_at
- name
- created_by
- vault_groups
- are_all_chains_disabled
- type
- address
- logo_url
- state
- change_request_id
title: SafeVault
description: 'Represents a Safe (Gnosis Safe) vault in the Fordefi platform.
Safe vaults are read-only vaults that import existing Safe multisig wallets.
They do not have MPC keys and cannot execute transactions.'
StellarNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Stellar asset identifier type.
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain of the native asset.
type: object
required:
- type
- chain
title: StellarNativeAssetIdentifierRequest
EnrichedStacksChain:
properties:
chain_type:
type: string
const: stacks
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The type of the Stacks-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedStacksChain
AssetIdentifier:
oneOf:
- $ref: '#/components/schemas/AptosAssetIdentifier'
- $ref: '#/components/schemas/ArchAssetIdentifier'
- $ref: '#/components/schemas/CantonAssetIdentifier'
- $ref: '#/components/schemas/CosmosAssetIdentifier'
- $ref: '#/components/schemas/EvmAssetIdentifier'
- $ref: '#/components/schemas/ExchangeAssetIdentifier'
- $ref: '#/components/schemas/SolanaAssetIdentifier'
- $ref: '#/components/schemas/StacksAssetIdentifier'
- $ref: '#/components/schemas/StellarAssetIdentifier'
- $ref: '#/components/schemas/StarknetAssetIdentifier'
- $ref: '#/components/schemas/SuiAssetIdentifier'
- $ref: '#/components/schemas/TonAssetIdentifier'
- $ref: '#/components/schemas/TronAssetIdentifier'
- $ref: '#/components/schemas/UtxoAssetIdentifier'
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/AptosAssetIdentifier'
arch: '#/components/schemas/ArchAssetIdentifier'
canton: '#/components/schemas/CantonAssetIdentifier'
cosmos: '#/components/schemas/CosmosAssetIdentifier'
evm: '#/components/schemas/EvmAssetIdentifier'
exchange: '#/components/schemas/ExchangeAssetIdentifier'
solana: '#/components/schemas/SolanaAssetIdentifier'
stacks: '#/components/schemas/StacksAssetIdentifier'
starknet: '#/components/schemas/StarknetAssetIdentifier'
stellar: '#/components/schemas/StellarAssetIdentifier'
sui: '#/components/schemas/SuiAssetIdentifier'
ton: '#/components/schemas/TonAssetIdentifier'
tron: '#/components/schemas/TronAssetIdentifier'
utxo: '#/components/schemas/UtxoAssetIdentifier'
ImportVaultDefaultOptions:
properties:
origin:
type: string
const: imported_keys
title: Origin
description: Discriminator for imported-key vault creation.
derivation_path:
title: Derivation Path
description: The BIP-32 derivation path of the vault.
example: m/44/60/0/0/0
type: string
pattern: ^(m/44/[0-9]+/[0-9]+/[0-9]+/[0-9]+|m)$
key_id:
type: string
format: uuid
title: Key Id
description: The ID of the imported key to use for the vault.
type: object
required:
- origin
- key_id
title: ImportVaultDefaultOptions
FiatCurrency:
properties:
currency_symbol:
$ref: '#/components/schemas/FiatCurrencySymbol'
description: The symbol of the fiat currency.
decimals:
type: integer
minimum: 0.0
title: Decimals
description: The number of decimals in the fiat currency.
type: object
required:
- currency_symbol
- decimals
title: FiatCurrency
ExchangeType:
type: string
enum:
- binance
- bybit
- coinbase_international
- coinbase_us
- okx
- kraken
title: ExchangeType
UserRole:
type: string
enum:
- admin
- trader
- viewer
title: UserRole
UtxoAssetIdentifier:
properties:
type:
type: string
const: utxo
title: Type
description: Utxo asset identifier type.
details:
$ref: '#/components/schemas/UtxoNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedUtxoChain'
type: object
required:
- type
- details
- chain
title: UtxoAssetIdentifier
Balances:
properties:
total_mined:
type: string
pattern: ^\d+$
title: Total Mined
description: The value of all mined assets.
example: '1000000000000000000'
total_pending_incoming:
type: string
pattern: ^\d+$
title: Total Pending Incoming
description: The value of all pending incoming assets.
example: '1000000000000000000'
available_mined:
type: string
pattern: ^\d+$
title: Available Mined
description: The value of all available mined assets. Equals to total mined balance minus frozen mined.
example: '1000000000000000000'
available_pending_incoming:
type: string
pattern: ^\d+$
title: Available Pending Incoming
description: The value of all available pending incoming assets. Equals to total pending incoming minus frozen pending incoming.
example: '1000000000000000000'
frozen_mined:
type: string
pattern: ^\d+$
title: Frozen Mined
description: The value of all mined frozen assets.
example: '1000000000000000000'
frozen_pending_incoming:
type: string
pattern: ^\d+$
title: Frozen Pending Incoming
description: The value of all pending incoming frozen assets.
example: '1000000000000000000'
trustline_limit:
title: Trustline Limit
description: The trustline limit for Stellar assets. Nil for non-Stellar assets or assets without trustlines.
type: string
pattern: ^\d+$
example: '1000000000000000000'
is_auto_approved:
title: Is Auto Approved
description: (Canton) True if incoming transfers of this asset are auto-accepted via a pre-approval.
type: boolean
type: object
required:
- total_mined
- total_pending_incoming
- available_mined
- available_pending_incoming
- frozen_mined
- frozen_pending_incoming
title: Balances
description: The cryptocurrency balances of the asset.
AptosNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Aptos asset identifier type.
chain:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: AptosNativeAssetIdentifierRequest
CreateCantonVaultRequest:
properties:
name:
type: string
minLength: 1
title: Name
description: The name of the vault.
end_user_id:
title: End User Id
description: The end user id to create a vault for.This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.
type: string
format: uuid
vault_group_id:
title: Vault Group Id
description: The group to add this vault to. If not provided, the vault will be created in the Default vault group.
type: string
format: uuid
import_options:
description: 'Import options: use for organizations with imported keys, to create a vault from an external public key and chain code.'
oneOf:
- $ref: '#/components/schemas/ImportVaultDefaultOptions'
- $ref: '#/components/schemas/ExternalVaultImportOptions'
discriminator:
propertyName: origin
mapping:
external_signer: '#/components/schemas/ExternalVaultImportOptions'
imported_keys: '#/components/schemas/ImportVaultDefaultOptions'
import_vault:
description: 'Additional information when creating a vault from an imported key. This field is relevant only for organizations using imported keys. Deprecated: use import_options with origin=imported_keys instead.'
$ref: '#/components/schemas/ImportVaultDefaultOptions'
type:
type: string
const: canton
title: Type
description: Canton vault type.
type: object
required:
- name
- type
title: CreateCantonVaultRequest
EnrichedCantonChain:
properties:
chain_type:
type: string
const: canton
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/CantonChainUniqueId'
description: The type of the Canton chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedCantonChain
UpdateVaultChangeRequestDiff:
properties:
added_vault_group_ids:
items:
type: string
format: uuid
type: array
title: Added Vault Group Ids
description: The vault group ids to add the vault to.
removed_vault_group_ids:
items:
type: string
format: uuid
type: array
title: Removed Vault Group Ids
description: The vault group ids to remove the vault from.
type: object
title: UpdateVaultChangeRequestDiff
EvmHyperLiquidAssetIdentifierRequest:
properties:
type:
type: string
const: hyperliquid
title: Type
description: EVM asset identifier type.
chain:
type: string
minLength: 1
title: EvmChainUniqueId
description: Currently artificially set to Arbitrum.
token_id:
type: string
title: Token Id
description: The token id of the asset on Hyperliquid.
index:
type: integer
title: Index
description: The index of the asset on Hyperliquid.
type: object
required:
- type
- chain
- token_id
- index
title: EvmHyperLiquidAssetIdentifierRequest
EnrichedSuiChain:
properties:
chain_type:
type: string
const: sui
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The type of the Sui-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedSuiChain
BaseError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
type: object
required:
- title
- detail
title: BaseError
ValidationErrorDetail:
properties:
loc:
items:
anyOf:
- type: integer
- type: string
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationErrorDetail
ExchangeAssetIdentifier:
properties:
type:
type: string
const: exchange
title: Type
description: Asset identifier type.
exchange_type:
$ref: '#/components/schemas/ExchangeType'
description: exchange type.
asset_symbol:
type: string
title: Asset Symbol
description: The symbol of the asset on the exchange.
chain:
$ref: '#/components/schemas/EnrichedExchangeChain'
type: object
required:
- type
- exchange_type
- asset_symbol
- chain
title: ExchangeAssetIdentifier
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT