Fordefi API (0.2.0)

Download OpenAPI description
Languages
Servers
Production

https://api.fordefi.com/

Users

These endpoints allow you to get information about users in your Fordefi organization.

There are several types of users in the Fordefi platform:

Users can have one of three possible 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 or modify them.

The Users API is currently read-only. To add/remove users, visit the Fordefi web console.

Operations

Authorization Tokens

These endpoints allow you to manage end-user authorization tokens used for Fordefi's WaaS solution.

Authorization tokens allow end users to authenticate with Fordefi. Each end user can have a maximum of ten active authorization tokens at any time.

More information on authenticating end users is provided in the WaaS developer guide.

Operations

Blockchains

These endpoints allow you to get information about blockchains supported by Fordefi.

Operations

Webhooks

These endpoints allow you to manually trigger your pre-configured webhooks.

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

Operations

Address Book

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.

Operations

Create Contact

Request

Create a new address book contact in an organization.

Headers
x-signaturestring

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.

Example: SGVsbG8=
x-timestampinteger

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.

Bodyapplication/jsonrequired
namestringnon-emptyrequired

The name of the contact.

typestringrequired

The type of the chain.

Discriminator
Value "aptos"
addressstring= 66 characters^0[xX][a-fA-F0-9]+$required

The address on the Aptos chain.

Example: "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a"
chainsArray of stringsrequired

The chains the contact belongs to.

Items Enum"aptos_mainnet""aptos_testnet""aptos_movement_mainnet""aptos_movement_testnet"
assets_identifiersArray of objects

The assets identifiers of the contact.

curl -i -X POST \
  https://api.fordefi.com/api/v1/addressbook/contacts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-signature: SGVsbG8=' \
  -H 'x-timestamp: 0' \
  -d '{
    "name": "string",
    "type": "aptos",
    "address": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a",
    "chains": [
      "aptos_mainnet"
    ],
    "assets_identifiers": [
      {
        "type": "aptos",
        "details": {
          "type": "native",
          "chain": "aptos_mainnet"
        }
      }
    ]
  }'

Responses

Successful Response

Bodyapplication/json
idstring(uuid)required

The unique identifier of the object in the Fordefi platform.

created_atstring(date-time)required

The date and time when the object was created.

modified_atstring(date-time)required

The date and time when the object was last modified. Any change to any field of the resource is considered a modification.

namestringrequired

The name of the contact.

modified_byPersonRef (object) or ApiUserRef (object) or ApiSignerRef (object) or EndUserRef (object) or SystemUserRef (object)required
One of:

Address last modifier.

statestringrequired

The state of the contact.

Enum"pending""active""deleted"
groupsArray of objectsrequired

List of contact's groups.

pending_changesobject

Pending changes for the contact.

asset_infosArray of objectsrequired

A list of asset infos for the contact. Can be used to enforce trading of specific assets intransfers to this address

chain_typestringrequired

The type of the chain.

Discriminator
Value "aptos"
addressstring= 66 characters^0[xX][a-fA-F0-9]+$required

The address on the aptos chain.

Example: "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a"
chainsArray of objectsrequired

The chains the contact belongs to.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created_at": "2019-08-24T14:15:22Z", "modified_at": "2019-08-24T14:15:22Z", "name": "string", "modified_by": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "user_type": "person", "name": "John Doe", "email": "string", "state": "active", "role": "admin" }, "state": "pending", "groups": [ {} ], "pending_changes": { "is_being_edited": true, "change_request_id": "f90819c3-6f40-44d9-9518-d77c485c0c12", "change_request_reason": "creation" }, "asset_infos": [ {} ], "chain_type": "aptos", "address": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a", "chains": [ {} ] }

List Contacts

Request

Get a list of all contacts in an organization.

Query
sort_byArray of strings
Items Enum"created_at_asc""created_at_desc""modified_at_asc""modified_at_desc""name_asc""name_desc"
pageinteger>= 1

The page number to fetch.

Default 1
sizeinteger[ 0 .. 100 ]

The number of items per page.

Default 50
contact_idsArray of strings(uuid)

The contact IDs to filter by.

namesArray of strings

The names to filter by.

statesArray of strings

The states to filter by.

Items Enum"pending""active""deleted"
chain_typesArray of strings

The chain types to filter by.

Items Enum"aptos""cosmos""evm""exchange""solana""stacks""starknet""sui""ton""tron"
chainsArray of strings

The chain unique ids to filter by.

asset_idsArray of strings(uuid)

List of asset identifiers to filter on.

address_group_idsArray of strings(uuid)

The address group IDs to filter by.

exclude_address_group_idsArray of strings(uuid)

List of address group IDs to exclude.

curl -i -X GET \
  'https://api.fordefi.com/api/v1/addressbook/contacts?address_group_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&asset_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&chain_types=aptos&chains=string&contact_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&exclude_address_group_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&names=string&page=1&size=50&sort_by=created_at_asc&states=pending' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful Response

Bodyapplication/json
totalintegerrequired
pageintegerrequired
sizeintegerrequired
contactsArray of anyrequired
Response
application/json
{ "total": 0, "page": 0, "size": 0, "contacts": [ {} ] }

Abort Contact

Request

Abort a contact change proposal.

Path
idstring(uuid)required

ID of the address book contact to abort its proposal.

proposal_idstring(uuid)required

ID of the address book contact proposal to abort.

curl -i -X POST \
  'https://api.fordefi.com/api/v1/addressbook/contacts/{id}/proposals/{proposal_id}/abort' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful Response

Response
No content

Edit Contact

Request

Edit address book contact.

Path
idstring(uuid)required

ID of the address book contact.

Headers
x-signaturestring

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.

Example: SGVsbG8=
x-timestampinteger

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.

Bodyapplication/jsonrequired
namestringnon-emptyrequired

The name of the contact.

typestringrequired

The type of the chain.

Discriminator
Value "aptos"
chainsArray of stringsrequired

The Aptos chain's unique ID.

Items Enum"aptos_mainnet""aptos_testnet""aptos_movement_mainnet""aptos_movement_testnet"
assets_identifiersArray of objects

The assets identifiers of the contact.

curl -i -X POST \
  'https://api.fordefi.com/api/v1/addressbook/contacts/{id}/proposals' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-signature: SGVsbG8=' \
  -H 'x-timestamp: 0' \
  -d '{
    "name": "string",
    "type": "aptos",
    "chains": [
      "aptos_mainnet"
    ],
    "assets_identifiers": [
      {
        "type": "aptos",
        "details": {
          "type": "native",
          "chain": "aptos_mainnet"
        }
      }
    ]
  }'

Responses

Successful Response

Bodyapplication/json
any
Response
application/json
null

Transactions

These endpoints allow you to manage transactions on the Fordefi platform.

A transaction represents an operation that can be one of the following:

  • An on-chain action that modifies blockchain state
  • An off-chain cryptographically signed message or data
Consult the developer guide for more information on creating, monitoring, and simulating tranasctions.
Operations

Batch Transactions

These endpoints allow you to manage batch transactions on the Fordefi platform.

Batch transactions are currently supported only on Solana, for the purpose of supporting the signAllTransactions flow used by certain Solana DApps. Batch transactions undergo policy evaluation as a whole: the policy is applied to a “virtual transaction” whose list of instructions is the union of the instructions of the individual transactions in the batch, and whose balance changes are the aggregation of balance changes of the individual transactions.

Operations

Vaults

These endpoints allow you to manage vaults.

A vault is the basic unit to manage funds. Each vault supports a single "chain family", such as EVM, Bitcoin, Solana, Cosmos, etc., determined by the vault's type. A vault supports all the chains within the chain family (e.g., an EVM vault supports all EVM chains).

Operations

Vault Groups

These endpoints allow you to view your vault groups.

Vault Groups are used to collectively manage policies and view permissions for a group of vaults.

The API is read-only. To manage vault groups, visit the Fordefi web console. See more info in the user guide.

Operations

Assets

These endpoints allow you to get information about the assets in your organization, including metadata, balances, and prices.

Fordefi supports native assets and fungible tokens on each of the supported blockchains, and on many chains also non-fungible tokens.

Assets are chain-specific, meaning that USDC on Ethereum is different from USDC on Polygon.

Operations

End Users

These endpoints allow you to manage WaaS end-users.

End users correspond to users of the platform who has integrated the Fordefi WaaS solution. For example, in the case of a retail platform, these would be the retail consumers of the platform.

Operations

User Groups

These endpoints allow you to view your user groups.

User Groups are used to collectively manage policies and view permissions for a group of users.

The API is read-only. To manage user groups, visit the Fordefi web console. See more info in the user guide.

Operations

Audit Log

These endpoints allow you to manage audit logs.

Audit logs are used to track the actions of users in your organization.

Operations

Exports

These endpoints allow you to manage asynchronous actions such as data exports.

Operations

Organizations

Operations