XFT API (0.2.0)

Download OpenAPI specification:Download

Authentication

bearerAuth

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

Users

This resource collection represents users.

User types and roles

There are several types of user in the XFT platform:
  • Person: A human user of the platform. Only a person can have an admin role.
  • API User: An API client key that is trying to interact with the platform.See Create an API user and token.
  • API Signer: Used to auto-sign transactions. See Automate Signing with API Signer.
  • End user: For Consumer Wallets. It represents the user of a third-party platform.
In addition, for all users (except end users in WaaS solutions) there are three possible user roles, which define the permissions that the user is given:
  • Admin: A user with high privileges in the organization. Only admins have permission to manage the policy, set up the backup, manage the address book, and add or remove users in the organization. Only a person can have an admin role.
  • Trader: A user who can create vaults and transactions.
  • Viewer: A user who has full view of the organization's users, addresses, and policies, as well as of the vaults and transactions, but does not have permissions to create them.


Users endpoints:

List Users

Get a list of users in the organization.

Authorizations:
query Parameters
sort_by
Array of strings (Sort By)
Items Enum: "role_asc" "role_desc" "email_asc" "email_desc" "created_asc" "created_desc" "name_asc" "name_desc" "last_keep_alive_asc" "last_keep_alive_desc" "state_asc" "state_desc" "type_asc" "type_desc"
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 400 ]
Default: 50

The number of items per page.

types
Array of strings (Types)
Items Enum: "person" "api_signer" "api_user"

The types of the users to filter on.

roles
Array of strings (Roles)
Items Enum: "admin" "trader" "viewer"

The roles of the users to filter on.

states
Array of strings (States)
Items Enum: "active" "onboarding" "pending_approval" "deleted"

The states of the users to filter on. Is one of:

  • active: The user can perform all actions in the XFT platform.
  • onboarding: The user has been approved but still needs to activate the account.
  • pending_approval: The user has been invited but not yet approved.
  • deleted: The user has been deleted.

include_deleted
boolean (Include Deleted)
Default: false

True to include deleted users in the response, False otherwise.

names
Array of strings (Names)

The names of the users.

emails
Array of strings (Emails)

The emails of the users.

user_ids
Array of strings <uuid> (User Ids)

The unique identifiers of the users.

external_ids
Array of strings (External Ids)

The IDs that you assign to the end user.

group_ids
Array of strings <uuid> (Group Ids)

The unique identifiers of the user groups.

group_ids__not
Array of strings <uuid> (Group Ids Not)

The unique identifiers of the user groups to exclude.

states_on_groups
Array of strings (States On Groups)
Items Enum: "active" "pending_addition" "pending_removal"

The states of the user groups to filter group_ids on. Is one of:

  • active: The user group is active.
  • pending_addition: The user is pending to be added to the group.
  • pending_removal: The user is pending to be removed from the group.

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "users": [
    ]
}

Get User

Gets the user that corresponds to the given ID.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the user to retrieve.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "user_type": "api_signer",
  • "name": "John Doe",
  • "state": "active",
  • "last_keep_alive_at": "2019-08-24T14:15:22Z"
}

Authorization Tokens

This resource collection represents authorization tokens.

These tokens allow end users to authenticate with XFT. Each end user can have a maximum of ten active authorization tokens at any time. Each token is valid for 24 hours only.

Instructions for creating an API user and token are provided here: Create an API user and token.

Authorization Tokens endpoints:

Issue Authorization Token

Issue authorization token for an end user.

Authorizations:
Request Body schema: application/json
user_type
required
string (User Type)
Value: "end_user"

The type of the user.

user_id
required
string <uuid> (User Id)

ID of the end user to issue the authorization token for.

expiration
integer (Expiration) [ 1 .. 315360000 ]
Default: 86400

Token expiration in seconds (default: 1 day).

Responses

Request samples

Content type
application/json
{
  • "user_type": "end_user",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "expiration": 86400
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "expired_at": "2019-08-24T14:15:22Z",
  • "user_type": "end_user",
  • "access_token": "string"
}

List Authorization Tokens

List authorization tokens of end users.

Authorizations:
query Parameters
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

user_ids
Array of strings <uuid> (User Ids)

The unique identifiers of the users.

user_types
Array of strings (User Types)
Items Value: "end_user"

User types to filter. Only end users are currently supported.

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "auth_tokens": [
    ]
}

Delete Authorization Token

Delete authorization token of an end user.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the authorization token to delete.

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Blockchains

This resource collection represents blockchains.

These Blockchains endpoints have been exposed:

List Chains

Get a list of supported blockchains.

Authorizations:
query Parameters
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

chain_types
Array of strings (Chain Types)
Items Enum: "cosmos" "evm" "solana" "sui" "utxo"
sources
Array of strings (Sources)
Items Enum: "default" "custom"

The source of the chain. Can be:

  • default: Chains with built-in support on XFT's platform.
  • custom: User-added chains with support on XFT's platform.

only_interacted_with
boolean (Only Interacted With)
Default: false

Filter and display only chains the organization have outgoing or incoming transactions.

Responses

Response samples

Content type
application/json
{}

Get Suggested Fees

Get the suggested fees in a specific network.

Authorizations:
query Parameters
chains
Array of strings (Chains)
Items Enum: "aptos_mainnet" "aptos_testnet" "cosmos_akashnet-2" "cosmos_archway-1" "cosmos_axelar-dojo-1" "cosmos_celestia" "cosmos_cosmoshub-4" "cosmos_dydx-mainnet-1" "cosmos_dydx-testnet-4" "cosmos_dymension_1100-1" "cosmos_noble-1" "cosmos_osmosis-1" "cosmos_pacific-1" "cosmos_stride-1" "evm_1" "evm_5" "evm_10" "evm_16" "evm_56" "evm_100" "evm_137" "evm_169" "evm_250" "evm_324" "evm_1030" "evm_1100" "evm_1101" "evm_1329" "evm_1729" "evm_2222" "evm_4200" "evm_5000" "evm_7000" "evm_7700" "evm_8453" "evm_17000" "evm_80001" "evm_42161" "evm_43114" "evm_59144" "evm_81457" "evm_421614" "evm_534352" "evm_660279" "evm_810180" "evm_11155111" "evm_ethereum_mainnet" "evm_ethereum_goerli" "evm_optimism_mainnet" "evm_flare_testnet" "evm_bsc_mainnet" "evm_gnosis_mainnet" "evm_polygon_mainnet" "evm_manta_pacific_mainnet" "evm_fantom_mainnet" "evm_zksync_era_mainnet" "evm_conflux_mainnet" "evm_dymension_mainnet" "evm_polygon_zkevm_mainnet" "evm_sei_mainnet" "evm_reya_mainnet" "evm_kava_mainnet" "evm_merlin_mainnet" "evm_mantle_mainnet" "evm_zeta_mainnet" "evm_canto_mainnet" "evm_base_mainnet" "evm_ethereum_holesky" "evm_polygon_mumbai" "evm_arbitrum_mainnet" "evm_avalanche_chain" "evm_linea_mainnet" "evm_blast_mainnet" "evm_arbitrum_sepolia" "evm_scroll_mainnet" "evm_xai_mainnet" "evm_zklink_nova_mainnet" "evm_ethereum_sepolia" "solana_mainnet" "solana_devnet" "sui_mainnet" "sui_testnet" "bitcoin_mainnet" "bitcoin_testnet"
chain_types
Array of strings (Chain Types)
Items Enum: "cosmos" "evm" "solana" "sui" "utxo"

Responses

Response samples

Content type
application/json
{
  • "suggested_fees": {
    }
}

Keysets

This resource collection represents keysets.

A keyset is a high-level object that includes the three different key types: EdDSA, ECDSA, and ECDSA-Stark.

These Keysets endpoints have been exposed:

List Keysets

Get a list of all keysets.

Authorizations:
query Parameters
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

keyset_ids
Array of strings <uuid> (Keyset Ids)
user_ids
Array of strings <uuid> (User Ids)
scopes
Array of strings (Scopes)
Items Enum: "organization" "user"
search
string (Search)
sort_by
Array of strings (Sort By)
Items Enum: "created_at_asc" "created_at_desc" "name_asc" "name_desc" "user_id_asc" "user_id_desc"

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "keysets": [
    ]
}

Create Keyset

Create a new keyset.

Authorizations:
Request Body schema: application/json
user_id
required
string <uuid> (User Id)

End user ID

name
required
string (Name) non-empty

Keyset name

Responses

Request samples

Content type
application/json
{
  • "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
  • "name": "string"
}

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "desired_key_types": [
    ],
  • "ecdsa": {
    },
  • "eddsa": {
    },
  • "ecdsa_stark": {
    },
  • "encrypted_device_shares_backups": [
    ],
  • "scope": "organization"
}

Get Keyset

Retrieve keyset details.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the keyset to retrieve.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "desired_key_types": [
    ],
  • "ecdsa": {
    },
  • "eddsa": {
    },
  • "ecdsa_stark": {
    },
  • "encrypted_device_shares_backups": [
    ],
  • "scope": "organization"
}

Webhooks

This resource collection represents webhooks.

Use Webhooks describes how to configure webhooks, validate them, and resend them.

These Webhooks endpoints have been exposed:

Test Webhook

Test a webhook.

Authorizations:
Request Body schema: application/json
url
required
string <uri> (Url) non-empty

The URL of the webhook endpoint.

Responses

Callbacks

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string",
  • "error_type": "http_error"
}

Callback payload samples

Callback
POST: Webhook Event
Content type
application/json
{
  • "webhook_id": "a47606a1-5b39-4a81-9480-c2cb738ff675",
  • "created_at": "2019-08-24T14:15:22Z",
  • "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7",
  • "attempt": 1,
  • "sent_at": "2019-08-24T14:15:22Z",
  • "event": {
    },
  • "event_type": "transaction_state_update"
}

Trigger Transaction Webhook

Trigger transaction create and latest state via webhooks.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the transaction to send events for.

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Address Book

This resource collection represents an address book.

Address Book is an object that represents a contact (saved blockchain address and its alias) in the platform. The Address Book object can either be queried directly or returned as part of a transaction.

These Address Book endpoints have been exposed:

List Contacts

Get a list of all contacts in an organization.

Authorizations:
query Parameters
sort_by
Array of strings (Sort By)
Items Enum: "created_at_asc" "created_at_desc" "modified_at_asc" "modified_at_desc" "name_asc" "name_desc"
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

contact_ids
Array of strings <uuid> (Contact Ids)

The contact IDs to filter by.

names
Array of strings (Names)

The names to filter by.

states
Array of strings (States)
Items Enum: "pending" "active" "deleted"

The states to filter by.

chain_types
Array of strings (Chain Types)
Items Enum: "cosmos" "evm" "solana" "sui" "utxo"

The chain types to filter by.

chains
Array of strings (Chains)
Items Enum: "aptos_mainnet" "aptos_testnet" "cosmos_akashnet-2" "cosmos_archway-1" "cosmos_axelar-dojo-1" "cosmos_celestia" "cosmos_cosmoshub-4" "cosmos_dydx-mainnet-1" "cosmos_dydx-testnet-4" "cosmos_dymension_1100-1" "cosmos_noble-1" "cosmos_osmosis-1" "cosmos_pacific-1" "cosmos_stride-1" "evm_1" "evm_5" "evm_10" "evm_16" "evm_56" "evm_100" "evm_137" "evm_169" "evm_250" "evm_324" "evm_1030" "evm_1100" "evm_1101" "evm_1329" "evm_1729" "evm_2222" "evm_4200" "evm_5000" "evm_7000" "evm_7700" "evm_8453" "evm_17000" "evm_80001" "evm_42161" "evm_43114" "evm_59144" "evm_81457" "evm_421614" "evm_534352" "evm_660279" "evm_810180" "evm_11155111" "evm_ethereum_mainnet" "evm_ethereum_goerli" "evm_optimism_mainnet" "evm_flare_testnet" "evm_bsc_mainnet" "evm_gnosis_mainnet" "evm_polygon_mainnet" "evm_manta_pacific_mainnet" "evm_fantom_mainnet" "evm_zksync_era_mainnet" "evm_conflux_mainnet" "evm_dymension_mainnet" "evm_polygon_zkevm_mainnet" "evm_sei_mainnet" "evm_reya_mainnet" "evm_kava_mainnet" "evm_merlin_mainnet" "evm_mantle_mainnet" "evm_zeta_mainnet" "evm_canto_mainnet" "evm_base_mainnet" "evm_ethereum_holesky" "evm_polygon_mumbai" "evm_arbitrum_mainnet" "evm_avalanche_chain" "evm_linea_mainnet" "evm_blast_mainnet" "evm_arbitrum_sepolia" "evm_scroll_mainnet" "evm_xai_mainnet" "evm_zklink_nova_mainnet" "evm_ethereum_sepolia" "solana_mainnet" "solana_devnet" "sui_mainnet" "sui_testnet" "bitcoin_mainnet" "bitcoin_testnet"

The chain unique ids to filter by.

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "contacts": [
    ]
}

Transactions

This resource collection represents a transaction.

A transaction is any object that can be signed cryptographically (with a private key).

In general, it can be one of the following types:

  • EVM Transaction: A native currency transfer or a smart contract call on an EVM-based chain.
  • EVM Message: In which a message is signed for off-chain use on an EVM-based chain.
  • Solana Transaction: A list of instructions to invoke on a Solana-based chain.
  • Cosmos Transaction: A transaction in the Cosmos ecosystem on Cosmos Hub or one of the supported app chains.
  • Black Box Signature: In which a payload is signed for use, external to the XFT platform.
  • Cosmos Message
  • Solana Message
For more information, see Transaction Types.

Monitor transactions

As transactions progress from creation through completion, they can follow several workflows, during which they take on various statuses. Status is returned in the state field of the Get Transaction and List Transaction requests.

For a list of possible statuses, see Transaction Lifecycle.

These Transaction endpoints have been exposed:

Export Transactions

Get a CSV-format list of transactions.

Authorizations:
query Parameters
limit
integer (Limit)
Default: 1000

The amount of transactions to export, 1000 if not set.

created_before
string <date-time> (Created Before)
created_after
string <date-time> (Created After)
modified_after
string <date-time> (Modified After)
vault_ids
Array of strings <uuid> (Vault Ids)

The filter applies both to transactions that have been signed by the vault and also to transactions that have interacted with the vault.

chains
Array of strings (Chains)
Items Enum: "aptos_mainnet" "aptos_testnet" "cosmos_akashnet-2" "cosmos_archway-1" "cosmos_axelar-dojo-1" "cosmos_celestia" "cosmos_cosmoshub-4" "cosmos_dydx-mainnet-1" "cosmos_dydx-testnet-4" "cosmos_dymension_1100-1" "cosmos_noble-1" "cosmos_osmosis-1" "cosmos_pacific-1" "cosmos_stride-1" "evm_1" "evm_5" "evm_10" "evm_16" "evm_56" "evm_100" "evm_137" "evm_169" "evm_250" "evm_324" "evm_1030" "evm_1100" "evm_1101" "evm_1329" "evm_1729" "evm_2222" "evm_4200" "evm_5000" "evm_7000" "evm_7700" "evm_8453" "evm_17000" "evm_80001" "evm_42161" "evm_43114" "evm_59144" "evm_81457" "evm_421614" "evm_534352" "evm_660279" "evm_810180" "evm_11155111" "evm_ethereum_mainnet" "evm_ethereum_goerli" "evm_optimism_mainnet" "evm_flare_testnet" "evm_bsc_mainnet" "evm_gnosis_mainnet" "evm_polygon_mainnet" "evm_manta_pacific_mainnet" "evm_fantom_mainnet" "evm_zksync_era_mainnet" "evm_conflux_mainnet" "evm_dymension_mainnet" "evm_polygon_zkevm_mainnet" "evm_sei_mainnet" "evm_reya_mainnet" "evm_kava_mainnet" "evm_merlin_mainnet" "evm_mantle_mainnet" "evm_zeta_mainnet" "evm_canto_mainnet" "evm_base_mainnet" "evm_ethereum_holesky" "evm_polygon_mumbai" "evm_arbitrum_mainnet" "evm_avalanche_chain" "evm_linea_mainnet" "evm_blast_mainnet" "evm_arbitrum_sepolia" "evm_scroll_mainnet" "evm_xai_mainnet" "evm_zklink_nova_mainnet" "evm_ethereum_sepolia" "solana_mainnet" "solana_devnet" "sui_mainnet" "sui_testnet" "bitcoin_mainnet" "bitcoin_testnet"
initiator_ids
Array of strings <uuid> (Initiator Ids)
types
Array of strings (Types)
Items Enum: "black_box_signature" "cosmos_message" "cosmos_transaction" "evm_message" "evm_transaction" "solana_message" "solana_transaction" "sui_message" "sui_transaction" "utxo_transaction"
sub_types
Array of strings (Sub Types)
Items Enum: "transfer" "allowance" "cross_chain_bridge" "transaction" "contract_call" "message_signature" "allowance_signature"
signer_types
Array of strings (Signer Types)
Items Enum: "initiator" "api_signer" "end_user"
transaction_ids
Array of strings <uuid> (Transaction Ids)
end_user_ids
Array of strings <uuid> (End User Ids)
direction
string (TransactionDirection)
Enum: "outgoing" "incoming"

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Get Transaction

Retrieve transaction details.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the transaction to retrieve.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "managed_transaction_data": {
    },
  • "signatures": [
    ],
  • "note": "string",
  • "spam_state": "unset",
  • "direction": "outgoing",
  • "type": "black_box_signature",
  • "state": "waiting_for_approval",
  • "state_changes": [
    ],
  • "payload": "SGVsbG8=",
  • "vault": {
    },
  • "details": {
    }
}

List Transactions

Get a list of all transactions in an organization.

Authorizations:
query Parameters
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

created_before
string <date-time> (Created Before)
created_after
string <date-time> (Created After)
modified_after
string <date-time> (Modified After)
vault_ids
Array of strings <uuid> (Vault Ids)

The filter applies both to transactions that have been signed by the vault and also to transactions that have interacted with the vault.

chains
Array of strings (Chains)
Items Enum: "aptos_mainnet" "aptos_testnet" "cosmos_akashnet-2" "cosmos_archway-1" "cosmos_axelar-dojo-1" "cosmos_celestia" "cosmos_cosmoshub-4" "cosmos_dydx-mainnet-1" "cosmos_dydx-testnet-4" "cosmos_dymension_1100-1" "cosmos_noble-1" "cosmos_osmosis-1" "cosmos_pacific-1" "cosmos_stride-1" "evm_1" "evm_5" "evm_10" "evm_16" "evm_56" "evm_100" "evm_137" "evm_169" "evm_250" "evm_324" "evm_1030" "evm_1100" "evm_1101" "evm_1329" "evm_1729" "evm_2222" "evm_4200" "evm_5000" "evm_7000" "evm_7700" "evm_8453" "evm_17000" "evm_80001" "evm_42161" "evm_43114" "evm_59144" "evm_81457" "evm_421614" "evm_534352" "evm_660279" "evm_810180" "evm_11155111" "evm_ethereum_mainnet" "evm_ethereum_goerli" "evm_optimism_mainnet" "evm_flare_testnet" "evm_bsc_mainnet" "evm_gnosis_mainnet" "evm_polygon_mainnet" "evm_manta_pacific_mainnet" "evm_fantom_mainnet" "evm_zksync_era_mainnet" "evm_conflux_mainnet" "evm_dymension_mainnet" "evm_polygon_zkevm_mainnet" "evm_sei_mainnet" "evm_reya_mainnet" "evm_kava_mainnet" "evm_merlin_mainnet" "evm_mantle_mainnet" "evm_zeta_mainnet" "evm_canto_mainnet" "evm_base_mainnet" "evm_ethereum_holesky" "evm_polygon_mumbai" "evm_arbitrum_mainnet" "evm_avalanche_chain" "evm_linea_mainnet" "evm_blast_mainnet" "evm_arbitrum_sepolia" "evm_scroll_mainnet" "evm_xai_mainnet" "evm_zklink_nova_mainnet" "evm_ethereum_sepolia" "solana_mainnet" "solana_devnet" "sui_mainnet" "sui_testnet" "bitcoin_mainnet" "bitcoin_testnet"
initiator_ids
Array of strings <uuid> (Initiator Ids)
types
Array of strings (Types)
Items Enum: "black_box_signature" "cosmos_message" "cosmos_transaction" "evm_message" "evm_transaction" "solana_message" "solana_transaction" "sui_message" "sui_transaction" "utxo_transaction"
sub_types
Array of strings (Sub Types)
Items Enum: "transfer" "allowance" "cross_chain_bridge" "transaction" "contract_call" "message_signature" "allowance_signature"
signer_types
Array of strings (Signer Types)
Items Enum: "initiator" "api_signer" "end_user"
transaction_ids
Array of strings <uuid> (Transaction Ids)
end_user_ids
Array of strings <uuid> (End User Ids)
direction
string (TransactionDirection)
Enum: "outgoing" "incoming"
states
Array of strings (States)
Items Enum: "pending" "finalized" "approved" "waiting_for_signing_trigger" "stuck" "completed" "completed_reverted"

State of the transaction. Can be one of:

  • pending
  • finalized, which can be one of:
    • completed
    • aborted
    • error_pushing_to_blockchain
    • reverted
    • accelerated
    • canceled
  • approved

is_hidden
boolean (Is Hidden)
include_full_response
boolean (Include Full Response)
Default: true
batch_ids
Array of strings <uuid> (Batch Ids)
sort_by
Array of strings (Sort By)
Items Enum: "created_at_asc" "created_at_desc" "modified_at_asc" "modified_at_desc" "type_asc" "type_desc" "chains_asc" "chains_desc" "initiators_asc" "initiators_desc" "state_asc" "state_desc"

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "transactions": [
    ]
}

Create Transaction

Create a new transaction.

Authorizations:
header Parameters
x-signature
string (X-Signature)
Example: SGVsbG8=

Signature of the body. Base64 encoded string. If the request is made programatically by an API user, signing of the request is required and is intended to protect you from malicious backends.

x-timestamp
integer (X-Timestamp)

Timestamp of the signature. Integer. Specify an Epoch date. If the request is made programatically by an API user, the timestamp of the request is required and is intended to protect you from replay attacks.

x-idempotence-id
string <uuid> (X-Idempotence-Id)

Optional idempotence ID of a transaction.

Request Body schema: application/json
vault_id
required
string <uuid> (Vault Id)

The unique identifier of the vault.

note
string (Note)

An optional transaction note.

signer_type
string
Default: "initiator"
Enum: "initiator" "api_signer" "end_user"

The signer of the transaction. Can be:

  • initiator: The creator of the transaction (default).
  • api_signer: A service that you run on your own network or cloud environment.
  • end_user: A mobile device using XFT's SDK.

sign_mode
string
Default: "auto"
Enum: "auto" "triggered"

The sign mode of the transaction determines when the transaction will transition to the signing phase. It can be one of the following:

  • auto: The transaction will move to signing automatically after approval.
  • triggered: The transaction will be in the waiting_for_signing_trigger state until "Trigger Transaction Signing" is called. Currently supported only for API Signer signer type.

type
required
string (Type)

Black Box signature type.

required
any (Details)

Responses

Request samples

Content type
application/json
Example
{
  • "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
  • "note": "string",
  • "signer_type": "initiator",
  • "sign_mode": "auto",
  • "type": "black_box_signature",
  • "details": {
    }
}

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "managed_transaction_data": {
    },
  • "signatures": [
    ],
  • "note": "string",
  • "spam_state": "unset",
  • "direction": "outgoing",
  • "type": "black_box_signature",
  • "state": "waiting_for_approval",
  • "state_changes": [
    ],
  • "payload": "SGVsbG8=",
  • "vault": {
    },
  • "details": {
    }
}

Create Transaction And Wait

Create a new transaction and wait until transaction reaches given state.

Authorizations:
header Parameters
x-signature
string (X-Signature)
Example: SGVsbG8=

Signature of the body. Base64 encoded string. If the request is made programatically by an API user, signing of the request is required and is intended to protect you from malicious backends.

x-timestamp
integer (X-Timestamp)

Timestamp of the signature. Integer. Specify an Epoch date. If the request is made programatically by an API user, the timestamp of the request is required and is intended to protect you from replay attacks.

x-idempotence-id
string <uuid> (X-Idempotence-Id)

Optional idempotence ID of a transaction.

Request Body schema: application/json
vault_id
required
string <uuid> (Vault Id)

The unique identifier of the vault.

note
string (Note)

An optional transaction note.

signer_type
string
Default: "initiator"
Enum: "initiator" "api_signer" "end_user"

The signer of the transaction. Can be:

  • initiator: The creator of the transaction (default).
  • api_signer: A service that you run on your own network or cloud environment.
  • end_user: A mobile device using XFT's SDK.

sign_mode
string
Default: "auto"
Enum: "auto" "triggered"

The sign mode of the transaction determines when the transaction will transition to the signing phase. It can be one of the following:

  • auto: The transaction will move to signing automatically after approval.
  • triggered: The transaction will be in the waiting_for_signing_trigger state until "Trigger Transaction Signing" is called. Currently supported only for API Signer signer type.

type
required
string (Type)

Black Box signature type.

required
any (Details)
timeout
integer (Timeout) [ 1 .. 50 ]
Default: 10

The maximum time in seconds to wait for the transaction to reach the specified state. For states that require more than 50 seconds, using webhooks or polling is preferable.

wait_for_state
required
string
Enum: "waiting_for_approval" "waiting_for_signing_trigger" "approved" "signed" "completed" "error_signing" "aborted"

The state to wait for.

Responses

Request samples

Content type
application/json
Example
{
  • "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
  • "note": "string",
  • "signer_type": "initiator",
  • "sign_mode": "auto",
  • "type": "black_box_signature",
  • "details": {
    },
  • "timeout": 10,
  • "wait_for_state": "waiting_for_approval"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "signatures": [
    ],
  • "state": "waiting_for_approval",
  • "has_timed_out": true
}

Approve Transaction

Approve a transaction.

A transaction awaits approval when the caller API user has been specified as a potential approver in the policy and the transaction is in the waiting_for_approval state.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the transaction to approve.

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string",
  • "error_type": "invalid_transaction_state"
}

Abort Transaction

Abort a transaction.

Abort is possible only for a transaction that is in one of the following states:

  • Waiting for approval
  • Approved

The aborting user must be one of the following:

  • The user who created the transaction
  • An admin
  • A legitimate approver

API users can abort only the transactions they created.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the transaction to abort.

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string",
  • "error_type": "invalid_transaction_state"
}

Release Transaction

Release a transaction.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the transaction to release.

header Parameters
x-signature
string (X-Signature)
Example: SGVsbG8=

Signature of the body. Base64 encoded string. If the request is made programatically by an API user, signing of the request is required and is intended to protect you from malicious backends.

x-timestamp
integer (X-Timestamp)

Timestamp of the signature. Integer. Specify an Epoch date. If the request is made programatically by an API user, the timestamp of the request is required and is intended to protect you from replay attacks.

Request Body schema: application/json
type
required
string (Type)

The type of the transaction.

release_type
required
string
Enum: "cancel" "accelerate"

The type of the release.

signer_type
string
Default: "initiator"
Enum: "initiator" "api_signer" "end_user"

Set who should sign the transaction.

fail_on_prediction_failure
boolean (Fail On Prediction Failure)
Default: true

True if transaction creation should fail in case prediction failed, False otherwise.

Responses

Request samples

Content type
application/json
{
  • "type": "evm_transaction",
  • "release_type": "cancel",
  • "signer_type": "initiator",
  • "fail_on_prediction_failure": true
}

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "managed_transaction_data": {
    },
  • "signatures": [
    ],
  • "note": "string",
  • "spam_state": "unset",
  • "direction": "outgoing",
  • "type": "black_box_signature",
  • "state": "waiting_for_approval",
  • "state_changes": [
    ],
  • "payload": "SGVsbG8=",
  • "vault": {
    },
  • "details": {
    }
}

Describe Transaction

Get the current blockchain fee price and estimate the total transaction fee.

Authorizations:
Request Body schema: application/json
vault_id
required
string <uuid> (Vault Id)

The unique identifier of the vault.

type
required
string (Type)

The type of the transaction.

required
object (CosmosArbitraryMessageRequest)

Responses

Request samples

Content type
application/json
Example
{
  • "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
  • "type": "cosmos_message",
  • "details": {
    }
}

Response samples

Content type
application/json
Example
{
  • "type": "cosmos_message",
  • "vault": {
    },
  • "cosmos_message_type": "arbitrary_message_type",
  • "chain": {},
  • "data": {
    }
}

Predict Transaction

Simulate the transaction and show the exact token's balance change, in addition to the fee estimation.

Authorizations:
Request Body schema: application/json
vault_id
required
string <uuid> (Vault Id)

The unique identifier of the vault.

type
required
string (Type)

The type of the transaction.

required
object (CosmosArbitraryMessageRequest)

Responses

Request samples

Content type
application/json
Example
{
  • "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
  • "type": "cosmos_message",
  • "details": {
    }
}

Response samples

Content type
application/json
Example
{
  • "policy_match": {
    },
  • "approval_request": {
    },
  • "risks": [
    ],
  • "type": "cosmos_message",
  • "chain": {}
}

Update Transaction Spam State

Update transaction's spam state.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the transaction to update spam state.

Request Body schema: application/json
is_spam
required
boolean (Is Spam)

Responses

Request samples

Content type
application/json
{
  • "is_spam": true
}

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Trigger Transaction Signing

Trigger transaction signing.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the transaction to trigger.

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Vaults

This resource collection represents a vault.

The vault is the basic unit to manage funds. A vault has a single public address but is multi-chain, meaning you can use it across all chains that are compatible with the address and are supported by XFT.

In general, XFT supports the following vault types:

  • EVM: A vault to be used in supported EVM chains.
  • Solana: A vault to be used in supported Solana chains.
  • Black Box: In which the user can leverage XFT for MPC and policy, but is responsible for managing the transaction lifecycle.
  • Cosmos: A vault to be used in supported Cosmos chains.


These Vault endpoints have been exposed:

List Vaults

Get a list of all vaults in an organization.

Authorizations:
query Parameters
sort_by
Array of strings (Sort By)
Items Enum: "created_at_asc" "created_at_desc" "name_asc" "name_desc" "vault_type_asc" "vault_type_desc"
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

vault_ids
Array of strings <uuid> (Vault Ids)

Vault IDs to filter on.

names
Array of strings (Names)

List of full names to filter on.

vault_types
Array of strings (Vault Types)
Items Enum: "black_box" "cosmos" "evm" "solana" "sui" "utxo"

Vault types to filter on.

vault_states
Array of strings (Vault States)
Items Enum: "active" "archived"

Vault states to filter on.

keyset_ids
Array of strings <uuid> (Keyset Ids)

List of keyset IDs to filter on.

key_holder_ids
Array of strings <uuid> (Key Holder Ids)

List of key holder IDs to filter on.

vault_group_ids
Array of strings <uuid> (Vault Group Ids)

List of vault group IDs to filter on. Filter applies to current and pending vault groups.

exclude_vault_group_ids
Array of strings <uuid> (Exclude Vault Group Ids)

List of vault group IDs to exclude.

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "vaults": [
    ]
}

Create Vault

Create a new vault.

Authorizations:
Request Body schema: application/json
name
required
string (Name) non-empty

The name of the vault.

keyset_id
string <uuid> (Keyset Id)

The keyset id of the vault. This field is required for end-user vault creation, otherwise, it's optional. If not provided, the organization's default keyset will be used.

vault_group_id
string <uuid> (Vault Group Id)

The group to add this vault to. If not provided, the vault will be created in the Default vault group.

type
required
string (Type)

Black Box vault type.

key_type
required
string (Key Type)
Enum: "ecdsa_stark" "ecdsa_secp256k1" "eddsa_ed25519"

The key type of the signing scheme used by the vault. Can be:

  • ecdsa_stark
  • ecdsa_secp256k1
  • eddsa_ed25519

Responses

Request samples

Content type
application/json
Example
{
  • "name": "string",
  • "keyset_id": "0fd01f45-0fa7-45d1-9121-c431104386a5",
  • "vault_group_id": "948d8050-0dde-409f-985b-6d7b133fc9e8",
  • "type": "black_box",
  • "key_type": "ecdsa_stark"
}

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "metadata": {
    },
  • "name": "string",
  • "created_by": {
    },
  • "derivation_path": "m/44/60/0/0/0",
  • "public_key_compressed": "SGVsbG8=",
  • "derivation_info": {
    },
  • "keyset": {
    },
  • "key_holder": {
    },
  • "vault_group": {
    },
  • "pending_vault_group_action": {
    },
  • "state": "active",
  • "type": "black_box",
  • "details": {
    }
}

Export Vaults With Assets

Get a CSV-format list of balances of all vaults and their assets.

Authorizations:
query Parameters
vaults_ids
Array of strings <uuid> (Vaults Ids)

Vault IDs to filter on.

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Get Vault

Retrieve vault details.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the vault to retrieve.

Responses

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "metadata": {
    },
  • "name": "string",
  • "created_by": {
    },
  • "derivation_path": "m/44/60/0/0/0",
  • "public_key_compressed": "SGVsbG8=",
  • "derivation_info": {
    },
  • "keyset": {
    },
  • "key_holder": {
    },
  • "vault_group": {
    },
  • "pending_vault_group_action": {
    },
  • "state": "active",
  • "type": "black_box",
  • "details": {
    }
}

Get Vault Asset

Get a specific asset in a vault.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the vault to retrieve.

asset_id
required
string <uuid> (Asset Id)

ID of the asset to retrieve.

query Parameters
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

Responses

Response samples

Content type
application/json
{
  • "asset": {
    },
  • "priced_asset": {
    },
  • "balance": "1000000000000000000",
  • "balances": {
    }
}

Get Vault Assets

Get a list of all assets in a vault.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the vault to retrieve.

query Parameters
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

chains
Array of strings (Chains)
Items Enum: "aptos_mainnet" "aptos_testnet" "cosmos_akashnet-2" "cosmos_archway-1" "cosmos_axelar-dojo-1" "cosmos_celestia" "cosmos_cosmoshub-4" "cosmos_dydx-mainnet-1" "cosmos_dydx-testnet-4" "cosmos_dymension_1100-1" "cosmos_noble-1" "cosmos_osmosis-1" "cosmos_pacific-1" "cosmos_stride-1" "evm_1" "evm_5" "evm_10" "evm_16" "evm_56" "evm_100" "evm_137" "evm_169" "evm_250" "evm_324" "evm_1030" "evm_1100" "evm_1101" "evm_1329" "evm_1729" "evm_2222" "evm_4200" "evm_5000" "evm_7000" "evm_7700" "evm_8453" "evm_17000" "evm_80001" "evm_42161" "evm_43114" "evm_59144" "evm_81457" "evm_421614" "evm_534352" "evm_660279" "evm_810180" "evm_11155111" "evm_ethereum_mainnet" "evm_ethereum_goerli" "evm_optimism_mainnet" "evm_flare_testnet" "evm_bsc_mainnet" "evm_gnosis_mainnet" "evm_polygon_mainnet" "evm_manta_pacific_mainnet" "evm_fantom_mainnet" "evm_zksync_era_mainnet" "evm_conflux_mainnet" "evm_dymension_mainnet" "evm_polygon_zkevm_mainnet" "evm_sei_mainnet" "evm_reya_mainnet" "evm_kava_mainnet" "evm_merlin_mainnet" "evm_mantle_mainnet" "evm_zeta_mainnet" "evm_canto_mainnet" "evm_base_mainnet" "evm_ethereum_holesky" "evm_polygon_mumbai" "evm_arbitrum_mainnet" "evm_avalanche_chain" "evm_linea_mainnet" "evm_blast_mainnet" "evm_arbitrum_sepolia" "evm_scroll_mainnet" "evm_xai_mainnet" "evm_zklink_nova_mainnet" "evm_ethereum_sepolia" "solana_mainnet" "solana_devnet" "sui_mainnet" "sui_testnet" "bitcoin_mainnet" "bitcoin_testnet"
asset_ids
Array of strings <uuid> (Asset Ids)
is_hidden
boolean (Is Hidden)
search
string (Search)
sort_by
Array of strings (Sort By)
Items 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"

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "owned_assets": [
    ]
}

Rename Vault

Rename an existing vault.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the vault to rename.

Request Body schema: application/json
name
required
string (Name) non-empty

The new name for the vault.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Create Address

Create a new address.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the vault to create address in.

Request Body schema: application/json
name
string (Name) non-empty

The name of the address.

address_type
string
Default: "segwit"
Enum: "legacy" "segwit"

The type of the address.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "address_type": "legacy"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "vault": {
    },
  • "name": "string",
  • "balance": "1000000000000000000",
  • "balances": {
    },
  • "public_key_compressed": "SGVsbG8=",
  • "type": "utxo",
  • "address": {
    }
}

List Vault Addresses

Get a list of all addresses in a vault.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the vault.

query Parameters
sort_by
Array of strings (Sort By)
Items Enum: "created_at_asc" "created_at_desc" "name_asc" "name_desc"
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

search
string (Search)
addresses
Array of strings (Addresses)

List of addresses to filter on.

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "addresses": [
    ]
}

Rename Vault Address

Rename an existing vault address.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the vault address to rename.

Request Body schema: application/json
name
required
string (Name) non-empty

The new name for the vault.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Vault Groups

This resource collection represents a vault group.

These Vault Group endpoints have been exposed:

List Vault Groups

Get a list of vault groups in the organization.

Authorizations:
query Parameters
sort_by
Array of strings (Sort By)
Items Enum: "created_at_asc" "created_at_desc" "name_asc" "name_desc" "vault_count_asc" "vault_count_desc"
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

vault_group_ids
Array of strings <uuid> (Vault Group Ids)

Vault group IDs to filter on.

search
string (Search)
access_level
string (Access Level)
Default: "view"
Enum: "view" "create_edit" "all"

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "vault_groups": [
    ]
}

Assets

This resource collection represents assets.

  • 'Assets', in general, refer to the assets that are supported by XFT and can be held by an organization. The Fetch Asset Prices API, for example, returns the current prices of all the assets that are recognized by the system.
  • 'Owned assets' reflects the balance of specific assets that are owned by an organization.

    These Assets endpoints have been exposed:

Get Owned Asset

Get a a specific asset owned by an organization.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the asset to retrieve.

Responses

Response samples

Content type
application/json
{
  • "asset": {
    },
  • "priced_asset": {
    },
  • "balance": "1000000000000000000",
  • "balances": {
    }
}

List Owned Assets

Get a list of all assets owned by an organization.

Authorizations:
query Parameters
chains
Array of strings (Chains)
Items Enum: "aptos_mainnet" "aptos_testnet" "cosmos_akashnet-2" "cosmos_archway-1" "cosmos_axelar-dojo-1" "cosmos_celestia" "cosmos_cosmoshub-4" "cosmos_dydx-mainnet-1" "cosmos_dydx-testnet-4" "cosmos_dymension_1100-1" "cosmos_noble-1" "cosmos_osmosis-1" "cosmos_pacific-1" "cosmos_stride-1" "evm_1" "evm_5" "evm_10" "evm_16" "evm_56" "evm_100" "evm_137" "evm_169" "evm_250" "evm_324" "evm_1030" "evm_1100" "evm_1101" "evm_1329" "evm_1729" "evm_2222" "evm_4200" "evm_5000" "evm_7000" "evm_7700" "evm_8453" "evm_17000" "evm_80001" "evm_42161" "evm_43114" "evm_59144" "evm_81457" "evm_421614" "evm_534352" "evm_660279" "evm_810180" "evm_11155111" "evm_ethereum_mainnet" "evm_ethereum_goerli" "evm_optimism_mainnet" "evm_flare_testnet" "evm_bsc_mainnet" "evm_gnosis_mainnet" "evm_polygon_mainnet" "evm_manta_pacific_mainnet" "evm_fantom_mainnet" "evm_zksync_era_mainnet" "evm_conflux_mainnet" "evm_dymension_mainnet" "evm_polygon_zkevm_mainnet" "evm_sei_mainnet" "evm_reya_mainnet" "evm_kava_mainnet" "evm_merlin_mainnet" "evm_mantle_mainnet" "evm_zeta_mainnet" "evm_canto_mainnet" "evm_base_mainnet" "evm_ethereum_holesky" "evm_polygon_mumbai" "evm_arbitrum_mainnet" "evm_avalanche_chain" "evm_linea_mainnet" "evm_blast_mainnet" "evm_arbitrum_sepolia" "evm_scroll_mainnet" "evm_xai_mainnet" "evm_zklink_nova_mainnet" "evm_ethereum_sepolia" "solana_mainnet" "solana_devnet" "sui_mainnet" "sui_testnet" "bitcoin_mainnet" "bitcoin_testnet"
asset_ids
Array of strings <uuid> (Asset Ids)
is_hidden
boolean (Is Hidden)
search
string (Search)
vault_ids
Array of strings <uuid> (Vault Ids)
end_user_ids
Array of strings <uuid> (End User Ids)
sort_by
Array of strings (Sort By)
Items 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"
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "owned_assets": [
    ]
}

Update Asset Configuration

Update the asset's configuration under the entire organization.

Authorizations:
Request Body schema: application/json
required
any

The address of the ERC-20 asset to update.

hidden
required
boolean (Hidden)

True to hide the token when listing assets, False otherwise.

Responses

Request samples

Content type
application/json
{
  • "asset": {
    },
  • "hidden": true
}

Response samples

Content type
application/json
{
  • "title": "string",
  • "detail": "string",
  • "request_id": "string",
  • "system_error_code": "string"
}

Fetch Asset Prices

Fetch the prices of assets.

Authorizations:
Request Body schema: application/json
required
Array of any (Asset Identifiers) non-empty

The assets to price.

Responses

Request samples

Content type
application/json
{
  • "asset_identifiers": [
    ]
}

Response samples

Content type
application/json
{
  • "priced_assets": [
    ]
}

Create Asset Info

Create asset infos in the XFT platform.

Authorizations:
Request Body schema: application/json
required
any

The asset identifier to enrich.

Responses

Request samples

Content type
application/json
{
  • "asset_identifier": {
    }
}

Response samples

Content type
application/json
{}

End Users

This resource collection represents end users.

End users are the users of a third-party app that embeds cryptographic technology provided by XFT. Each end user's mobile device can have a unique key-share, where XFT holds the matching key-share.

These End Users endpoints have been exposed:

List End Users

Get a list of end users in the organization.

Authorizations:
query Parameters
sort_by
Array of strings (Sort By)
Items Enum: "created_asc" "created_desc" "end_user_last_login_asc" "end_user_last_login_desc"
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

user_ids
Array of strings <uuid> (User Ids)

The unique identifiers of the users.

external_ids
Array of strings (External Ids)

The external IDs of the users.

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "end_users": [
    ]
}

Create End User

Create a new end user.

Authorizations:
Request Body schema: application/json
external_id
required
string (External Id)

The ID that you assign to an end user.

Responses

Request samples

Content type
application/json
{
  • "external_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "external_id": "user|1234",
  • "last_login_at": "2019-08-24T14:15:22Z"
}

Get End User

Gets the end user that corresponds to the given ID.

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the end user to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "external_id": "user|1234",
  • "last_login_at": "2019-08-24T14:15:22Z"
}

User Groups

This resource collection represents user groups.

These User Groups endpoints have been exposed:

List User Groups

Get a list of user groups

Authorizations:
query Parameters
page
integer (Page) >= 1
Default: 1

The page number to fetch.

size
integer (Size) [ 0 .. 100 ]
Default: 50

The number of items per page.

states
Array of strings (States)
Items Enum: "active" "deleted"
user_group_ids
Array of strings <uuid> (User Group Ids)
user_ids
Array of strings <uuid> (User Ids)
modified_by
Array of strings <uuid> (Modified By)
name
string (Name) non-empty
search
string (Search) non-empty
sort_by
Array of strings (Sort By)
Items Enum: "created_at_asc" "created_at_desc" "modified_at_asc" "modified_at_desc" "name_asc" "name_desc" "users_count_asc" "users_count_desc"

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "page": 0,
  • "size": 0,
  • "user_groups": [
    ]
}

Get User Group

Retrieve user group details

Authorizations:
path Parameters
id
required
string <uuid> (Id)

ID of the user group to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created_at": "2019-08-24T14:15:22Z",
  • "modified_at": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "users_count": 0,
  • "state": "active",
  • "modified_by": {
    },
  • "proposed_change": {
    }
}