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](https://docs.fordefi.com/docs/transaction-lifecycle).">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](https://docs.fordefi.com/docs/transaction-lifecycle).">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](https://docs.fordefi.com/docs/transaction-lifecycle).">

Fordefi API (0.2.0)

Download OpenAPI description
Languages
Servers
Production
https://api.fordefi.com/

Users

This resource collection represents users.

User types and roles

There are several types of user in the Fordefi 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.

Operations

Authorization Tokens

This resource collection represents authorization tokens.

These tokens allow end users to authenticate with Fordefi. 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.

Operations

Blockchains

This resource collection represents blockchains.

Operations

Webhooks

This resource collection represents webhooks.

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

Operations

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.

Operations

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 Fordefi 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.

Operations

Export Transactions

Request

Start the export process for filtered transactions

Query
limitinteger

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

created_beforestring(date-time)
created_afterstring(date-time)
modified_afterstring(date-time)
vault_idsArray of strings(uuid)

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

chainsArray of strings
initiator_idsArray of strings(uuid)
typesArray of strings
Items Enum"aptos_message""aptos_transaction""black_box_signature""cosmos_message""cosmos_transaction""evm_message""evm_transaction""solana_message""solana_transaction""starknet_message"
sub_typesArray of strings
Items Enum"transfer""allowance""cross_chain_bridge""transaction""contract_call""contract_deployment""message_signature""allowance_signature"
signer_typesArray of strings
Items Enum"initiator""api_signer""end_user""multiple_signers"
transaction_idsArray of strings(uuid)
end_user_idsArray of strings(uuid)
directionstring
Enum"outgoing""incoming"
curl -i -X GET \
  'https://api.fordefi.com/api/v1/transactions/export?chains=string&created_after=2019-08-24T14%3A15%3A22Z&created_before=2019-08-24T14%3A15%3A22Z&direction=outgoing&end_user_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&initiator_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&limit=0&modified_after=2019-08-24T14%3A15%3A22Z&signer_types=initiator&sub_types=transfer&transaction_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&types=aptos_message&vault_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful Response

Bodyapplication/json
idstring(uuid)required

ID of the export.

creation_timestring(date-time)required

The date and time when the object was created.

typestringrequired

Type of the export.

Value"csv"
statestringrequired

The current state of the export.

Enum"created""in_progress""aborted""ready""error"
organization_idstring(uuid)required

The id of the organization.

user_emailstringrequired

The email of the user.

resource_typestringrequired

The type of the resource being exported.

Enum"user""user_change_proposals""user_group""user_group_change_proposal""vault""vault_address""vault_group""transaction""batch_transaction""path"
successful_items_countintegerrequired

The number of items that were successfully exported.

failed_items_countintegerrequired

The number of items that failed to be exported.

total_items_countintegerrequired

The total number of items to be exported.

request_idstringrequired

The request id of the export.

download_urlstringrequired

The download url of the export.

expiration_timestring(date-time)required

The date and time when the object will expire.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "creation_time": "2019-08-24T14:15:22Z", "type": "csv", "state": "created", "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6", "user_email": "string", "resource_type": "user", "successful_items_count": 0, "failed_items_count": 0, "total_items_count": 0, "request_id": "string", "download_url": "string", "expiration_time": "2019-08-24T14:15:22Z" }

Get Transaction

Request

Retrieve transaction details.

Path
idstring(uuid)required

ID of the transaction to retrieve.

curl -i -X GET \
  'https://api.fordefi.com/api/v1/transactions/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

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.

managed_transaction_dataobject

Managed transaction data. Presented if the transaction was initiated from the Fordefi system itself, in contrast to unmanaged transactions (which are, for example, transfers of funds into a vault visible to Fordefi).

signaturesArray of objectsrequired

The transaction signatures.

notestring

An optional transaction note.

spam_statestring

automatically_set if the transaction was automatically set as spam by Fordefi, manually_set if the transaction was manually set as spam by a user, and unset if the transaction was not set as spam.

Default "unset"
Enum"unset""manually_set""automatically_set"
directionstringrequired

The direction of the transaction.

Enum"outgoing""incoming"
typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
aptos_message_typestringrequired

The type of the Aptos message.

Value"personal_message_type"
statestringrequired

The state of the message.

Enum"waiting_for_approval""waiting_for_signing_trigger""approved""signed""completed""error_signing""aborted"
state_changesArray of objectsrequired

The state changes of the message.

raw_original_message_to_signstringrequired

The original message that was requested to be signed, encoded in base64.

Example: "SGVsbG8="
string_original_message_to_signstringrequired

The original message that was requested to be signed.

raw_full_message_to_signstringrequired

The full message to be signed, encoded in base64.

Example: "SGVsbG8="
string_full_message_to_signstringrequired

The full message to be signed.

chainobjectrequired

The details of the chain that this message is on.

senderobjectrequired

The sender of the message.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created_at": "2019-08-24T14:15:22Z", "modified_at": "2019-08-24T14:15:22Z", "managed_transaction_data": { "created_by": { … }, "aborted_by": { … }, "device_signing_request": { … }, "approval_request": { … }, "policy_match": { … }, "signer_type": "initiator", "risks": [ … ], "error_pushing_to_blockchain_message": "string", "original_error_pushing_to_blockchain_message": "string", "vault": { … }, "idempotence_id": "20a3c79f-f547-44b3-bdfc-d8aea82ad496", "has_current_user_vault_permissions": true, "batch_data": { … }, "push_mode": "auto", "last_pushed_at": "2019-08-24T14:15:22Z", "sign_mode": "auto" }, "signatures": [ { … } ], "note": "string", "spam_state": "unset", "direction": "outgoing", "type": "aptos_message", "aptos_message_type": "personal_message_type", "state": "waiting_for_approval", "state_changes": [ { … } ], "raw_original_message_to_sign": "SGVsbG8=", "string_original_message_to_sign": "string", "raw_full_message_to_sign": "SGVsbG8=", "string_full_message_to_sign": "string", "chain": { "chain_type": "aptos", "unique_id": "aptos_mainnet", "name": "string", "native_currency_symbol": "ETH", "native_currency_name": "Ether", "blockchain_explorer": { … }, "logo_url": "http://example.com", "is_testnet": true, "is_enabled": true }, "sender": { "vault": { … }, "explorer_url": "http://example.com", "contact": { … }, "type": "aptos", "address": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a" } }

List Transactions

Request

Get a list of all transactions in an organization.

Query
pageinteger>= 1

The page number to fetch.

Default 1
sizeinteger[ 0 .. 100 ]

The number of items per page.

Default 50
created_beforestring(date-time)
created_afterstring(date-time)
modified_afterstring(date-time)
vault_idsArray of strings(uuid)

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

chainsArray of strings
initiator_idsArray of strings(uuid)
typesArray of strings
Items Enum"aptos_message""aptos_transaction""black_box_signature""cosmos_message""cosmos_transaction""evm_message""evm_transaction""solana_message""solana_transaction""starknet_message"
sub_typesArray of strings
Items Enum"transfer""allowance""cross_chain_bridge""transaction""contract_call""contract_deployment""message_signature""allowance_signature"
signer_typesArray of strings
Items Enum"initiator""api_signer""end_user""multiple_signers"
transaction_idsArray of strings(uuid)
end_user_idsArray of strings(uuid)
directionstring
Enum"outgoing""incoming"
statesArray of strings

State of the transaction. Can be one of:

  • pending
  • error, which can be one of:
    • error_pushing_to_blockchain
    • completed_reverted
    • error_signing
    • insufficient_funds
    • dropped
  • finalized, which can be one of:
    • completed
    • completed_reverted
    • aborted
    • error_pushing_to_blockchain
    • reverted
    • accelerated
    • canceled
    • dropped
    • error_signing
    • insufficient_funds
  • approved

Items Enum"pending""finalized""approved""waiting_for_signing_trigger""stuck""completed""completed_reverted""error"
is_hiddenboolean
include_full_responseboolean
Default true
batch_idsArray of strings(uuid)
include_blackboxboolean
sort_byArray of strings
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"
curl -i -X GET \
  'https://api.fordefi.com/api/v1/transactions?batch_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&chains=string&created_after=2019-08-24T14%3A15%3A22Z&created_before=2019-08-24T14%3A15%3A22Z&direction=outgoing&end_user_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&include_blackbox=true&include_full_response=true&initiator_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&is_hidden=true&modified_after=2019-08-24T14%3A15%3A22Z&page=1&signer_types=initiator&size=50&sort_by=created_at_asc&states=pending&sub_types=transfer&transaction_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08&types=aptos_message&vault_ids=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful Response

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

Create Transaction

Request

Create a new transaction.

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.

x-idempotence-idstring(uuid)

Optional idempotence ID of a transaction.

Bodyapplication/jsonrequired
vault_idstring(uuid)required

The unique identifier of the vault.

notestring

An optional transaction note.

signer_typestring

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 Fordefi's SDK.

Default "initiator"
Enum"initiator""api_signer""end_user""multiple_signers"
sign_modestring

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.

Default "auto"
Enum"auto""triggered"
typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
detailsobjectrequired
curl -i -X POST \
  https://api.fordefi.com/api/v1/transactions \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-idempotence-id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-signature: SGVsbG8=' \
  -H 'x-timestamp: 0' \
  -d '{
    "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
    "note": "string",
    "signer_type": "initiator",
    "sign_mode": "auto",
    "type": "aptos_message",
    "details": {
      "type": "personal_message_type",
      "should_include_address": true,
      "application": "string",
      "should_include_application": true,
      "chain": "aptos_mainnet",
      "should_include_chain": true,
      "message_to_sign": "SGVsbG8=",
      "nonce": "string"
    }
  }'

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.

managed_transaction_dataobject

Managed transaction data. Presented if the transaction was initiated from the Fordefi system itself, in contrast to unmanaged transactions (which are, for example, transfers of funds into a vault visible to Fordefi).

signaturesArray of objectsrequired

The transaction signatures.

notestring

An optional transaction note.

spam_statestring

automatically_set if the transaction was automatically set as spam by Fordefi, manually_set if the transaction was manually set as spam by a user, and unset if the transaction was not set as spam.

Default "unset"
Enum"unset""manually_set""automatically_set"
directionstringrequired

The direction of the transaction.

Enum"outgoing""incoming"
typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
aptos_message_typestringrequired

The type of the Aptos message.

Value"personal_message_type"
statestringrequired

The state of the message.

Enum"waiting_for_approval""waiting_for_signing_trigger""approved""signed""completed""error_signing""aborted"
state_changesArray of objectsrequired

The state changes of the message.

raw_original_message_to_signstringrequired

The original message that was requested to be signed, encoded in base64.

Example: "SGVsbG8="
string_original_message_to_signstringrequired

The original message that was requested to be signed.

raw_full_message_to_signstringrequired

The full message to be signed, encoded in base64.

Example: "SGVsbG8="
string_full_message_to_signstringrequired

The full message to be signed.

chainobjectrequired

The details of the chain that this message is on.

senderobjectrequired

The sender of the message.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created_at": "2019-08-24T14:15:22Z", "modified_at": "2019-08-24T14:15:22Z", "managed_transaction_data": { "created_by": { … }, "aborted_by": { … }, "device_signing_request": { … }, "approval_request": { … }, "policy_match": { … }, "signer_type": "initiator", "risks": [ … ], "error_pushing_to_blockchain_message": "string", "original_error_pushing_to_blockchain_message": "string", "vault": { … }, "idempotence_id": "20a3c79f-f547-44b3-bdfc-d8aea82ad496", "has_current_user_vault_permissions": true, "batch_data": { … }, "push_mode": "auto", "last_pushed_at": "2019-08-24T14:15:22Z", "sign_mode": "auto" }, "signatures": [ { … } ], "note": "string", "spam_state": "unset", "direction": "outgoing", "type": "aptos_message", "aptos_message_type": "personal_message_type", "state": "waiting_for_approval", "state_changes": [ { … } ], "raw_original_message_to_sign": "SGVsbG8=", "string_original_message_to_sign": "string", "raw_full_message_to_sign": "SGVsbG8=", "string_full_message_to_sign": "string", "chain": { "chain_type": "aptos", "unique_id": "aptos_mainnet", "name": "string", "native_currency_symbol": "ETH", "native_currency_name": "Ether", "blockchain_explorer": { … }, "logo_url": "http://example.com", "is_testnet": true, "is_enabled": true }, "sender": { "vault": { … }, "explorer_url": "http://example.com", "contact": { … }, "type": "aptos", "address": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a" } }

Create Transaction And Wait

Request

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

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.

x-idempotence-idstring(uuid)

Optional idempotence ID of a transaction.

Bodyapplication/jsonrequired
vault_idstring(uuid)required

The unique identifier of the vault.

notestring

An optional transaction note.

signer_typestring

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 Fordefi's SDK.

Default "initiator"
Enum"initiator""api_signer""end_user""multiple_signers"
sign_modestring

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.

Default "auto"
Enum"auto""triggered"
typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
detailsobjectrequired
timeoutinteger[ 1 .. 50 ]

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.

Default 10
wait_for_statestringrequired

The state to wait for.

Enum"waiting_for_approval""waiting_for_signing_trigger""approved""signed""completed""error_signing""aborted"
curl -i -X POST \
  https://api.fordefi.com/api/v1/transactions/create-and-wait \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-idempotence-id: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-signature: SGVsbG8=' \
  -H 'x-timestamp: 0' \
  -d '{
    "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
    "note": "string",
    "signer_type": "initiator",
    "sign_mode": "auto",
    "type": "aptos_message",
    "details": {
      "type": "personal_message_type",
      "should_include_address": true,
      "application": "string",
      "should_include_application": true,
      "chain": "aptos_mainnet",
      "should_include_chain": true,
      "message_to_sign": "SGVsbG8=",
      "nonce": "string"
    },
    "timeout": 10,
    "wait_for_state": "waiting_for_approval"
  }'

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.

signaturesArray of stringsrequired

The transaction signatures.

Example: ["SGVsbG8="]
stateAptosMessageState (string) or AptosTransactionState (string) or BlackBoxSignatureState (string) or CosmosTransactionState (string) or CosmosMessageState (string) or EvmMessageState (string) or EvmTransactionState (string) or SolanaMessageState (string) or SolanaTransactionState (string) or StarknetMessageState (string) or StarknetTransactionState (string) or SuiMessageState (string) or SuiTransactionState (string) or TonMessageState (string) or TonTransactionState (string) or UtxoMessageState (string) or UtxoTransactionState (string)required

The state of the transaction.

Any of:

The state of the transaction.

string

The state of the transaction.

Enum"waiting_for_approval""waiting_for_signing_trigger""approved""signed""completed""error_signing""aborted"
has_timed_outbooleanrequired

Whether the transaction has timed out while waiting for the requested state.

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

Approve Transaction

Request

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.

Path
idstring(uuid)required

ID of the transaction to approve.

curl -i -X POST \
  'https://api.fordefi.com/api/v1/transactions/{id}/approve' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful Response

Response
No content

Abort Transaction

Request

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.

Path
idstring(uuid)required

ID of the transaction to abort.

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

Responses

Successful Response

Response
No content

Release Transaction

Request

Release a transaction.

Path
idstring(uuid)required

ID of the transaction to release.

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
typestringrequired

The type of the transaction.

Discriminator
Value "evm_transaction"
release_typestringrequired

The type of the release.

Enum"cancel""accelerate"
signer_typestring

Set who should sign the transaction.

Default "initiator"
Enum"initiator""api_signer""end_user""multiple_signers"
fail_on_prediction_failureboolean

True if transaction creation should fail in case prediction failed, False otherwise.
In case simulation has failed upon continuation, the expected result of the transaction will be partial and policy will be applied on information that can be extracted statically from the transaction only. This might result in falling back to the default policy rule.

Default true
notestring

An optional transaction note.

curl -i -X POST \
  'https://api.fordefi.com/api/v1/transactions/{id}/release' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-signature: SGVsbG8=' \
  -H 'x-timestamp: 0' \
  -d '{
    "type": "evm_transaction",
    "release_type": "cancel",
    "signer_type": "initiator",
    "fail_on_prediction_failure": true,
    "note": "string"
  }'

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.

managed_transaction_dataobject

Managed transaction data. Presented if the transaction was initiated from the Fordefi system itself, in contrast to unmanaged transactions (which are, for example, transfers of funds into a vault visible to Fordefi).

signaturesArray of objectsrequired

The transaction signatures.

notestring

An optional transaction note.

spam_statestring

automatically_set if the transaction was automatically set as spam by Fordefi, manually_set if the transaction was manually set as spam by a user, and unset if the transaction was not set as spam.

Default "unset"
Enum"unset""manually_set""automatically_set"
directionstringrequired

The direction of the transaction.

Enum"outgoing""incoming"
typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
aptos_message_typestringrequired

The type of the Aptos message.

Value"personal_message_type"
statestringrequired

The state of the message.

Enum"waiting_for_approval""waiting_for_signing_trigger""approved""signed""completed""error_signing""aborted"
state_changesArray of objectsrequired

The state changes of the message.

raw_original_message_to_signstringrequired

The original message that was requested to be signed, encoded in base64.

Example: "SGVsbG8="
string_original_message_to_signstringrequired

The original message that was requested to be signed.

raw_full_message_to_signstringrequired

The full message to be signed, encoded in base64.

Example: "SGVsbG8="
string_full_message_to_signstringrequired

The full message to be signed.

chainobjectrequired

The details of the chain that this message is on.

senderobjectrequired

The sender of the message.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created_at": "2019-08-24T14:15:22Z", "modified_at": "2019-08-24T14:15:22Z", "managed_transaction_data": { "created_by": { … }, "aborted_by": { … }, "device_signing_request": { … }, "approval_request": { … }, "policy_match": { … }, "signer_type": "initiator", "risks": [ … ], "error_pushing_to_blockchain_message": "string", "original_error_pushing_to_blockchain_message": "string", "vault": { … }, "idempotence_id": "20a3c79f-f547-44b3-bdfc-d8aea82ad496", "has_current_user_vault_permissions": true, "batch_data": { … }, "push_mode": "auto", "last_pushed_at": "2019-08-24T14:15:22Z", "sign_mode": "auto" }, "signatures": [ { … } ], "note": "string", "spam_state": "unset", "direction": "outgoing", "type": "aptos_message", "aptos_message_type": "personal_message_type", "state": "waiting_for_approval", "state_changes": [ { … } ], "raw_original_message_to_sign": "SGVsbG8=", "string_original_message_to_sign": "string", "raw_full_message_to_sign": "SGVsbG8=", "string_full_message_to_sign": "string", "chain": { "chain_type": "aptos", "unique_id": "aptos_mainnet", "name": "string", "native_currency_symbol": "ETH", "native_currency_name": "Ether", "blockchain_explorer": { … }, "logo_url": "http://example.com", "is_testnet": true, "is_enabled": true }, "sender": { "vault": { … }, "explorer_url": "http://example.com", "contact": { … }, "type": "aptos", "address": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a" } }

Predict Transaction

Request

Simulate the transaction and changes in token balances, in addition to the fee estimation.

Bodyapplication/jsonrequired
vault_idstring(uuid)required

The unique identifier of the vault.

notestring

An optional transaction note.

typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
detailsobjectrequired
curl -i -X POST \
  https://api.fordefi.com/api/v1/transactions/predict \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "vault_id": "432b199b-1f71-42bf-ba0b-33d512afa9de",
    "note": "string",
    "type": "aptos_message",
    "details": {
      "type": "personal_message_type",
      "should_include_address": true,
      "application": "string",
      "should_include_application": true,
      "chain": "aptos_mainnet",
      "should_include_chain": true,
      "message_to_sign": "SGVsbG8=",
      "nonce": "string"
    }
  }'

Responses

Successful Response

Bodyapplication/json
policy_matchobjectrequired

The policy match.

approval_requestobject

The approval request.

risksArray of objectsrequired

The list of risks associated with this transaction.

notestring

An optional transaction note.

typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
chainobjectrequired

The details of the chain that this message is on.

senderobjectrequired

The sender of the message.

aptos_message_typestringrequired

The type of the Aptos message.

Value"personal_message_type"
message_to_displaystringrequired

User-friendly formatting of the message to be signed.

Response
application/json
{ "policy_match": { "is_default": true, "rule_id": "728c1541-d6d1-4290-9a53-cdf01dd32d60", "rule_name": "string", "action_type": "allow" }, "approval_request": { "state": "created", "quorum_size": 0, "approvers": [ … ], "approval_groups": [ … ], "error_message": "string" }, "risks": [ { … } ], "note": "string", "type": "aptos_message", "chain": { "chain_type": "aptos", "unique_id": "aptos_mainnet", "name": "string", "native_currency_symbol": "ETH", "native_currency_name": "Ether", "blockchain_explorer": { … }, "logo_url": "http://example.com", "is_testnet": true, "is_enabled": true }, "sender": { "vault": { … }, "explorer_url": "http://example.com", "contact": { … }, "type": "aptos", "address": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a" }, "aptos_message_type": "personal_message_type", "message_to_display": "string" }

Push Transaction

Request

Push a transaction to the chain.

Path
idstring(uuid)required

ID of the transaction to be pushed to chain.

Bodyapplication/jsonrequired
push_dataobject
curl -i -X POST \
  'https://api.fordefi.com/api/v1/transactions/{id}/push' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "push_data": {
      "type": "cosmos_transaction",
      "transaction_body": "SGVsbG8="
    }
  }'

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.

managed_transaction_dataobject

Managed transaction data. Presented if the transaction was initiated from the Fordefi system itself, in contrast to unmanaged transactions (which are, for example, transfers of funds into a vault visible to Fordefi).

signaturesArray of objectsrequired

The transaction signatures.

notestring

An optional transaction note.

spam_statestring

automatically_set if the transaction was automatically set as spam by Fordefi, manually_set if the transaction was manually set as spam by a user, and unset if the transaction was not set as spam.

Default "unset"
Enum"unset""manually_set""automatically_set"
directionstringrequired

The direction of the transaction.

Enum"outgoing""incoming"
typestringrequired

Aptos message type.

Discriminator
Value "aptos_message"
aptos_message_typestringrequired

The type of the Aptos message.

Value"personal_message_type"
statestringrequired

The state of the message.

Enum"waiting_for_approval""waiting_for_signing_trigger""approved""signed""completed""error_signing""aborted"
state_changesArray of objectsrequired

The state changes of the message.

raw_original_message_to_signstringrequired

The original message that was requested to be signed, encoded in base64.

Example: "SGVsbG8="
string_original_message_to_signstringrequired

The original message that was requested to be signed.

raw_full_message_to_signstringrequired

The full message to be signed, encoded in base64.

Example: "SGVsbG8="
string_full_message_to_signstringrequired

The full message to be signed.

chainobjectrequired

The details of the chain that this message is on.

senderobjectrequired

The sender of the message.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "created_at": "2019-08-24T14:15:22Z", "modified_at": "2019-08-24T14:15:22Z", "managed_transaction_data": { "created_by": { … }, "aborted_by": { … }, "device_signing_request": { … }, "approval_request": { … }, "policy_match": { … }, "signer_type": "initiator", "risks": [ … ], "error_pushing_to_blockchain_message": "string", "original_error_pushing_to_blockchain_message": "string", "vault": { … }, "idempotence_id": "20a3c79f-f547-44b3-bdfc-d8aea82ad496", "has_current_user_vault_permissions": true, "batch_data": { … }, "push_mode": "auto", "last_pushed_at": "2019-08-24T14:15:22Z", "sign_mode": "auto" }, "signatures": [ { … } ], "note": "string", "spam_state": "unset", "direction": "outgoing", "type": "aptos_message", "aptos_message_type": "personal_message_type", "state": "waiting_for_approval", "state_changes": [ { … } ], "raw_original_message_to_sign": "SGVsbG8=", "string_original_message_to_sign": "string", "raw_full_message_to_sign": "SGVsbG8=", "string_full_message_to_sign": "string", "chain": { "chain_type": "aptos", "unique_id": "aptos_mainnet", "name": "string", "native_currency_symbol": "ETH", "native_currency_name": "Ether", "blockchain_explorer": { … }, "logo_url": "http://example.com", "is_testnet": true, "is_enabled": true }, "sender": { "vault": { … }, "explorer_url": "http://example.com", "contact": { … }, "type": "aptos", "address": "0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a" } }

Update Transaction Spam State

Request

Update transaction's spam state.

Path
idstring(uuid)required

ID of the transaction to update spam state for.

Bodyapplication/jsonrequired
is_spambooleanrequired
curl -i -X PUT \
  'https://api.fordefi.com/api/v1/transactions/{id}/update-spam-state' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "is_spam": true
  }'

Responses

Successful Response

Response
No content

Trigger Transaction Signing

Request

Trigger transaction signing.

Path
idstring(uuid)required

ID of the transaction to trigger.

curl -i -X POST \
  'https://api.fordefi.com/api/v1/transactions/{id}/trigger-signing' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Successful Response

Response
No content

Batch Transactions

This resource collection represents a batch transaction.

Operations

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 Fordefi.

Operations

Vault Groups

This resource collection represents a vault group.

Operations

Assets

This resource collection represents assets.

  • 'Assets', in general, refer to the assets that are supported by Fordefi 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.

Operations

End Users

This resource collection represents end users.

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

Operations

User Groups

This resource collection represents user groups.

Operations

Exports

This resource collection represents asynchronous export states.

Operations

Organizations

Operations