openapi: 3.1.0
info:
title: Fordefi Address Book Swaps API
version: 0.2.0
description: These endpoints allow you to list the contacts in your address book.
To add/remove contacts, visit the Fordefi web console. See the user guide for more info.
servers:
- url: https://api.fordefi.com/
description: Production
security:
- bearerAuth: []
tags:
- name: Swaps
description: These endpoints allow you to manage swaps.
paths:
/api/v1/swaps/providers/{chain_type}:
get:
tags:
- Swaps
summary: Get Providers
description: Get providers for a chain type.
operationId: get_providers_api_v1_swaps_providers__chain_type__get
parameters:
- name: chain_type
in: path
required: true
schema:
$ref: '#/components/schemas/ChainType'
description: Chain type to get providers for.
description: Chain type to get providers for.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetProvidersResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/swaps/quotes:
post:
tags:
- Swaps
summary: Get Quotes
description: Get available quotes for a swap between two assets.
operationId: get_quotes_api_v1_swaps_quotes_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetQuotesRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GetQuotesResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/PreconditionFailedError'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/swaps:
post:
tags:
- Swaps
summary: Create Transaction
description: Create a new spot swap.
operationId: create_transaction_api_v1_swaps_post
parameters:
- name: x-signature
in: header
required: false
schema:
description: 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_signature` is valid for 120 seconds.
title: X-Signature
type: string
example: SGVsbG8=
description: 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_signature` is valid for 120 seconds.
- name: x-timestamp
in: header
required: false
schema:
description: 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.
title: X-Timestamp
type: integer
description: 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.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSpotSwapRequest'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SpotSwap'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/DefinedPreconditionError_CreateSwapErrorType_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
/api/v1/swaps/predict:
post:
tags:
- Swaps
summary: Predict Transaction
description: 'Simulate the spot swap and changes in token
balances, in addition to the fee estimation.'
operationId: predict_transaction_api_v1_swaps_predict_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PredictSpotSwapRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PredictedSpotSwap'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/DefinedPreconditionError_PredictSwapErrorType_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'500':
description: Unexpected Error
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'401':
description: Unauthorized User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'403':
description: Forbidden User
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'408':
description: Request Timeout
content:
application/json:
schema:
$ref: '#/components/schemas/BaseError'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitError'
components:
schemas:
TonTransactionMessage:
properties:
address:
$ref: '#/components/schemas/TonAccountRepr'
description: The sender of the message in a user friendly format.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of nano tons to send.
example: '1000000000000000000'
payload:
title: Payload
description: The payload of the message.
type: string
state_init:
title: State Init
description: The state_init structure contains all the necessary information required to create the initial state of a smart contract.
type: string
comment:
title: Comment
description: A comment that is attached to the message.
type: string
type: object
required:
- address
- amount
title: TonTransactionMessage
StarknetTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/StarknetReversion'
description: Details whether the transaction was reverted or not.
fees:
$ref: '#/components/schemas/StarknetFees'
description: The total fee of the first transaction on the trace.
effects:
$ref: '#/components/schemas/StarknetEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- fees
- effects
title: StarknetTransactionResult
SuiCommandGasCoinArgument:
properties:
type:
type: string
const: gas_coin
title: Type
description: The type of the command argument.
type: object
required:
- type
title: SuiCommandGasCoinArgument
description: The object for the SUI coin used to pay for gas.
SuiObjectRef:
properties:
digest:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Digest
description: The digest of the object.
example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
object_id:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Object Id
description: The id of the object.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
version:
type: string
pattern: ^0*[1-9]\d*$
title: Version
description: The version of the object.
example: '1000000000000000000'
type: object
required:
- digest
- object_id
- version
title: SuiObjectRef
SolanaJitoFeeTypeRequest:
properties:
type:
type: string
const: jito
title: Type
description: Jito broadcast mode.
details:
oneOf:
- $ref: '#/components/schemas/JitoCustomFeeRequest'
- $ref: '#/components/schemas/JitoPriorityFeeRequest'
description: The details of the Jito fee.
discriminator:
propertyName: type
mapping:
custom: '#/components/schemas/JitoCustomFeeRequest'
priority: '#/components/schemas/JitoPriorityFeeRequest'
type: object
required:
- type
- details
title: SolanaJitoFeeTypeRequest
DynamicGasFields:
properties:
max_priority_fee_per_gas:
type: string
pattern: ^\d+$
title: Max Priority Fee Per Gas
description: The maximum tip amount for mining the transaction.
example: '1000000000000000000'
max_fee_per_gas:
type: string
pattern: ^\d+$
title: Max Fee Per Gas
description: The maximum amount paid for the fee.
example: '1000000000000000000'
type: object
required:
- max_priority_fee_per_gas
- max_fee_per_gas
title: DynamicGasFields
StacksAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: stacks
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 171
pattern: ^S[0-9A-Za-z._-]+$
title: Address
description: The address on the Stacks chain.
example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
chains:
items:
$ref: '#/components/schemas/StacksChain'
type: array
title: Chains
description: The chains the contact belongs to.
memo:
title: Memo
description: Memo is an additional address feature used for identifying a recipient.
type: string
type: object
required:
- chain_type
- address
- chains
title: StacksAddressBookContactAddressRef
SuiFundsWithdrawalSource:
type: string
enum:
- sender
- sponsor
title: SuiFundsWithdrawalSource
SuiPureStringInput:
properties:
type:
type: string
const: string_pure_input
title: Type
description: The type of the pure input.
value:
type: string
title: Value
description: The string value of the pure input argument.
type: object
required:
- type
- value
title: SuiPureStringInput
ApprovalRequestState:
type: string
enum:
- created
- approved
- insufficient_approvers
- auto_approved
- failed
title: ApprovalRequestState
description: Represents the whole approval request state
SuiBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: SuiBalanceChangeEffect
PredictedSolanaTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
expected_result:
$ref: '#/components/schemas/SolanaTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedSolanaChain'
description: The details of the chain that this message is on.
solana_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/SolanaNativeTransferDetails'
- $ref: '#/components/schemas/SolanaTokenTransferDetails'
- $ref: '#/components/schemas/SolanaRawTransactionDetails'
- $ref: '#/components/schemas/PredictedSolanaSpotSwapDetails'
description: Details of the Solana transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/SolanaNativeTransferDetails'
raw_transaction: '#/components/schemas/SolanaRawTransactionDetails'
spot_swap: '#/components/schemas/PredictedSolanaSpotSwapDetails'
token_transfer: '#/components/schemas/SolanaTokenTransferDetails'
sender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the transaction.
suggested_fees:
$ref: '#/components/schemas/PrioritySolanaSuggestedFees'
description: The suggested fees.
instructions:
items:
$ref: '#/components/schemas/SolanaCompiledInstruction'
type: array
title: Instructions
description: The instructions of the transaction.
raw_transaction:
title: Raw Transaction
description: The serialized transaction encoded as a base64 string
type: string
example: SGVsbG8=
was_fee_set_in_request:
type: boolean
title: Was Fee Set In Request
description: Whether the priority fee was already set in the request with a ComputeBudget instruction.
fee_payer:
description: The address that pays the fee for this transaction (first account in the transaction).
$ref: '#/components/schemas/EnrichedSolanaAddress'
type:
type: string
const: solana_transaction
title: Type
description: The type of the transaction.
type: object
required:
- matched_policies
- risks
- expected_result
- chain
- solana_transaction_type_details
- sender
- suggested_fees
- instructions
- was_fee_set_in_request
- type
title: PredictedSolanaTransaction
ArchAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: arch
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The address on the Arch chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
chains:
items:
$ref: '#/components/schemas/ArchChain'
type: array
title: Chains
description: The chains the contact belongs to.
type: object
required:
- chain_type
- address
- chains
title: ArchAddressBookContactAddressRef
StellarReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- insufficient_funds_gas_and_value
title: StellarReversionState
SuiPublishCommand:
properties:
type:
type: string
const: publish
title: Type
description: The type of the command.
modules:
items:
type: string
example: SGVsbG8=
type: array
title: Modules
description: The modules to publish.
dependencies:
items:
type: string
type: array
title: Dependencies
description: The dependencies of the modules.
type: object
required:
- type
- modules
- dependencies
title: SuiPublishCommand
description: Publish a Move module.
UtxoEffects:
properties:
inputs:
items:
$ref: '#/components/schemas/UtxoInput'
type: array
title: Inputs
description: The inputs of the transaction.
outputs:
items:
$ref: '#/components/schemas/UtxoOutput'
type: array
title: Outputs
description: The outputs of the transaction.
balance_changes:
items:
$ref: '#/components/schemas/UtxoBalanceChangeEffect'
type: array
title: Balance Changes
description: The aggregated balance changes of vaults.
total_value:
type: string
pattern: ^\d+$
title: Total Value
description: The total value of the transaction.
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
type: object
required:
- inputs
- outputs
- balance_changes
- total_value
- priced_asset
title: UtxoEffects
AptosEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/AptosBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/AptosTransferEffect'
type: array
title: Transfers
type: object
required:
- balance_changes
- transfers
title: AptosEffects
TransactionPolicyMatchActionType:
type: string
enum:
- allow
- block
- require_approval
title: TransactionPolicyMatchActionType
ExchangeInternalTransferDetails:
properties:
is_internal:
type: boolean
title: Is Internal
description: Is this transfer an internal transfer between two vaults.
sender:
$ref: '#/components/schemas/EnrichedExchangeAddress'
description: The sender of the transaction.
type:
type: string
const: internal_transfer
title: Type
description: A transaction from one exchange vault to another.
recipient:
$ref: '#/components/schemas/EnrichedExchangeAddress'
description: The recipient of the transfer.
type: object
required:
- is_internal
- sender
- type
- recipient
title: ExchangeInternalTransferDetails
DirectMessagesList:
properties:
format:
type: string
const: direct
title: Format
messages:
items:
$ref: '#/components/schemas/DirectMessage'
type: array
title: Messages
description: List of messages in direct format.
type: object
required:
- format
- messages
title: DirectMessagesList
SolanaMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: solana_message
title: Type
description: Solana message type.
solana_message_type:
$ref: '#/components/schemas/SolanaMessageType'
description: The type of the Solana message.
solana_message_type_details:
oneOf:
- $ref: '#/components/schemas/PersonalMessageDetails'
- $ref: '#/components/schemas/CreateSessionDetails'
description: The details of the Solana message.
discriminator:
propertyName: type
mapping:
create_session_message_type: '#/components/schemas/CreateSessionDetails'
personal_message_type: '#/components/schemas/PersonalMessageDetails'
expected_result:
description: Predicted result of the message execution. Only available for intents that Fordefi knows how to simulate, like ERC20 allowances and swaps created in the Fordefi app.
$ref: '#/components/schemas/SolanaMessageResult'
string_data:
type: string
title: String Data
description: The message as a string.
raw_data:
type: string
title: Raw Data
description: The raw data of the message, encoded in base64
example: SGVsbG8=
chain:
$ref: '#/components/schemas/EnrichedSolanaChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the message.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- solana_message_type
- solana_message_type_details
- string_data
- raw_data
- chain
- sender
title: SolanaMessage
GetQuotesResponse:
properties:
providers_with_quote:
items:
$ref: '#/components/schemas/ProviderWithQuote'
type: array
title: Providers With Quote
description: The providers with quote.
type: object
required:
- providers_with_quote
title: GetQuotesResponse
PersonRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: person
title: User Type
description: The type of user. Can be a person, or (in programmatic scenarios) an API user or API Signer.
name:
title: Name
description: The name of the user.
example: John Doe
type: string
email:
type: string
title: Email
description: The email of the user.
state:
$ref: '#/components/schemas/UserState'
description: The state of the user in the organization.
role:
$ref: '#/components/schemas/UserRole'
description: The role of the user.
type: object
required:
- id
- user_type
- email
- state
- role
title: PersonRef
EvmChain:
properties:
chain_type:
type: string
const: evm
title: Chain Type
description: The type of the chain.
named_chain_id:
title: EvmChainName
description: The EVM chain name can be either one of those supported by the default chains below or a custom chain name if one was added to your organization.
- `arbitrum_mainnet`
- `arbitrum_sepolia`
- `aster_mainnet`
- `avalanche_chain`
- `avalanche_fuji`
- `base_mainnet`
- `berachain_mainnet`
- `blast_mainnet`
- `bsc_mainnet`
- `canto_mainnet`
- `clink_mainnet`
- `clink_testnet`
- `conflux_mainnet`
- `dymension_mainnet`
- `ethereum_goerli`
- `ethereum_holesky`
- `ethereum_mainnet`
- `ethereum_sepolia`
- `fantom_mainnet`
- `flare_mainnet`
- `flare_testnet`
- `gnosis_mainnet`
- `hypercore_mainnet`
- `hyperevm_mainnet`
- `ink_mainnet`
- `kava_mainnet`
- `katana_mainnet`
- `linea_mainnet`
- `optimism_mainnet`
- `pharos_mainnet`
- `plasma_mainnet`
- `manta_pacific_mainnet`
- `mantle_mainnet`
- `merlin_mainnet`
- `monad_mainnet`
- `polygon_mainnet`
- `polygon_mumbai`
- `polygon_zkevm_mainnet`
- `reya_mainnet`
- `robinhood_mainnet`
- `rootstock_mainnet`
- `scroll_mainnet`
- `sei_mainnet`
- `sonic_mainnet`
- `tempo_mainnet`
- `unichain_mainnet`
- `xai_mainnet`
- `x_layer_mainnet`
- `zero_gravity_mainnet`
- `zeta_mainnet`
- `zklink_nova_mainnet`
- `zksync_era_mainnet`
type: string
minLength: 1
chain_id:
type: integer
minimum: 1.0
title: EvmChainId
description: The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. - 1=`ethereum_mainnet`
- 5=`ethereum_goerli`
- 10=`optimism_mainnet`
- 14=`flare_mainnet`
- 16=`flare_testnet`
- 30=`rootstock_mainnet`
- 56=`bsc_mainnet`
- 100=`gnosis_mainnet`
- 130=`unichain_mainnet`
- 137=`polygon_mainnet`
- 143=`monad_mainnet`
- 146=`sonic_mainnet`
- 169=`manta_pacific_mainnet`
- 196=`x_layer_mainnet`
- 250=`fantom_mainnet`
- 324=`zksync_era_mainnet`
- 999=`hyperevm_mainnet`
- 1030=`conflux_mainnet`
- 1100=`dymension_mainnet`
- 1101=`polygon_zkevm_mainnet`
- 1329=`sei_mainnet`
- 1337=`hypercore_mainnet`
- 1666=`aster_mainnet`
- 1672=`pharos_mainnet`
- 1729=`reya_mainnet`
- 2222=`kava_mainnet`
- 4200=`merlin_mainnet`
- 4217=`tempo_mainnet`
- 4663=`robinhood_mainnet`
- 5000=`mantle_mainnet`
- 7000=`zeta_mainnet`
- 7700=`canto_mainnet`
- 8453=`base_mainnet`
- 8818=`clink_mainnet`
- 8819=`clink_testnet`
- 9745=`plasma_mainnet`
- 16661=`zero_gravity_mainnet`
- 17000=`ethereum_holesky`
- 80001=`polygon_mumbai`
- 80094=`berachain_mainnet`
- 42161=`arbitrum_mainnet`
- 43113=`avalanche_fuji`
- 43114=`avalanche_chain`
- 57073=`ink_mainnet`
- 59144=`linea_mainnet`
- 81457=`blast_mainnet`
- 421614=`arbitrum_sepolia`
- 534352=`scroll_mainnet`
- 660279=`xai_mainnet`
- 747474=`katana_mainnet`
- 810180=`zklink_nova_mainnet`
- 11155111=`ethereum_sepolia`
unique_id:
type: string
minLength: 1
title: EvmChainUniqueId
description: The unique EVM chain ID. Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_` if one was added to your organization. - `"evm_1"`
- `"evm_5"`
- `"evm_10"`
- `"evm_14"`
- `"evm_16"`
- `"evm_30"`
- `"evm_56"`
- `"evm_100"`
- `"evm_130"`
- `"evm_137"`
- `"evm_143"`
- `"evm_146"`
- `"evm_169"`
- `"evm_196"`
- `"evm_250"`
- `"evm_324"`
- `"evm_999"`
- `"evm_1030"`
- `"evm_1100"`
- `"evm_1101"`
- `"evm_1329"`
- `"evm_1337"`
- `"evm_1666"`
- `"evm_1672"`
- `"evm_1729"`
- `"evm_2222"`
- `"evm_4200"`
- `"evm_4217"`
- `"evm_4663"`
- `"evm_5000"`
- `"evm_7000"`
- `"evm_7700"`
- `"evm_8453"`
- `"evm_8818"`
- `"evm_8819"`
- `"evm_9745"`
- `"evm_16661"`
- `"evm_17000"`
- `"evm_80001"`
- `"evm_80094"`
- `"evm_42161"`
- `"evm_43113"`
- `"evm_43114"`
- `"evm_57073"`
- `"evm_59144"`
- `"evm_81457"`
- `"evm_421614"`
- `"evm_534352"`
- `"evm_660279"`
- `"evm_747474"`
- `"evm_810180"`
- `"evm_11155111"`
- `"evm_ethereum_mainnet"`
- `"evm_ethereum_goerli"`
- `"evm_optimism_mainnet"`
- `"evm_flare_mainnet"`
- `"evm_flare_testnet"`
- `"evm_rootstock_mainnet"`
- `"evm_bsc_mainnet"`
- `"evm_gnosis_mainnet"`
- `"evm_unichain_mainnet"`
- `"evm_polygon_mainnet"`
- `"evm_monad_mainnet"`
- `"evm_sonic_mainnet"`
- `"evm_manta_pacific_mainnet"`
- `"evm_x_layer_mainnet"`
- `"evm_fantom_mainnet"`
- `"evm_zksync_era_mainnet"`
- `"evm_hyperevm_mainnet"`
- `"evm_conflux_mainnet"`
- `"evm_dymension_mainnet"`
- `"evm_polygon_zkevm_mainnet"`
- `"evm_sei_mainnet"`
- `"evm_hypercore_mainnet"`
- `"evm_aster_mainnet"`
- `"evm_pharos_mainnet"`
- `"evm_reya_mainnet"`
- `"evm_kava_mainnet"`
- `"evm_merlin_mainnet"`
- `"evm_tempo_mainnet"`
- `"evm_robinhood_mainnet"`
- `"evm_mantle_mainnet"`
- `"evm_zeta_mainnet"`
- `"evm_canto_mainnet"`
- `"evm_base_mainnet"`
- `"evm_clink_mainnet"`
- `"evm_clink_testnet"`
- `"evm_plasma_mainnet"`
- `"evm_zero_gravity_mainnet"`
- `"evm_ethereum_holesky"`
- `"evm_polygon_mumbai"`
- `"evm_berachain_mainnet"`
- `"evm_arbitrum_mainnet"`
- `"evm_avalanche_fuji"`
- `"evm_avalanche_chain"`
- `"evm_ink_mainnet"`
- `"evm_linea_mainnet"`
- `"evm_blast_mainnet"`
- `"evm_arbitrum_sepolia"`
- `"evm_scroll_mainnet"`
- `"evm_xai_mainnet"`
- `"evm_katana_mainnet"`
- `"evm_zklink_nova_mainnet"`
- `"evm_ethereum_sepolia"`
type: object
required:
- chain_type
- chain_id
- unique_id
title: EvmChain
Erc721:
properties:
address:
$ref: '#/components/schemas/EvmAddress'
description: The token address
name:
type: string
title: Name
description: The token name
symbol:
type: string
title: Symbol
description: The token symbol or ticker
type:
type: string
const: erc721
title: Type
description: The type of the token
type: object
required:
- address
- name
- symbol
- type
title: Erc721
SuiChainUniqueId:
type: string
enum:
- sui_mainnet
- sui_testnet
title: SuiChainUniqueId
TonRawTransactionDetails:
properties:
type:
type: string
const: raw_transaction
title: Type
description: A transaction with a contract call.
recipients:
items:
$ref: '#/components/schemas/EnrichedTonAddress'
type: array
title: Recipients
description: The called contract.
type: object
required:
- type
- recipients
title: TonRawTransactionDetails
HyperliquidUsdClassTransferAction:
properties:
action_type:
type: string
const: usd_class_transfer
title: Action Type
description: The Hyperliquid action type.
amount:
type: string
pattern: ^\d+(\.\d+)?$
title: Amount
description: Transfer amount as a decimal string.
example: '1000000000000000000'
to_perp:
type: boolean
title: To Perp
description: Whether to move funds to perp (`true`) or to spot (`false`).
nonce:
type: integer
title: Nonce
description: Replay-protection nonce.
type: object
required:
- action_type
- amount
- to_perp
- nonce
title: HyperliquidUsdClassTransferAction
description: Move funds between spot and perp margin.
SetCodeDetails:
properties:
type:
type: string
const: set_code
title: Type
description: A transaction that makes an EOA smart contract or disables it.
type: object
required:
- type
title: SetCodeDetails
EndUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: end_user
title: User Type
description: The type of the user.
external_id:
type: string
title: External Id
description: External id of the user.
example: user|1234
state:
type: string
enum:
- active
- deleted
title: State
description: The state of the user.
type: object
required:
- id
- user_type
- external_id
- state
title: EndUserRef
CosmosGasDebit:
properties:
gas_used:
type: string
pattern: ^\d+$
title: Gas Used
description: Gas used while processing the transaction.
example: '1000000000000000000'
total_fee:
items:
$ref: '#/components/schemas/CosmosCoinWithAmount'
type: array
title: Total Fee
description: The total fee paid.
fiat_prices:
items:
$ref: '#/components/schemas/Price'
type: array
title: Fiat Prices
description: The prices of the coins used to pay the fee.
type: object
required:
- gas_used
- total_fee
- fiat_prices
title: CosmosGasDebit
ExchangeAssetIdentifierRequest:
properties:
type:
type: string
const: exchange
title: Type
description: Asset identifier type.
exchange_type:
$ref: '#/components/schemas/ExchangeType'
description: exchange type.
asset_symbol:
type: string
title: Asset Symbol
description: The symbol of the asset on the exchange.
type: object
required:
- type
- exchange_type
- asset_symbol
title: ExchangeAssetIdentifierRequest
CantonApproveTransferDetails:
properties:
type:
type: string
const: approve_transfer
title: Type
description: A transaction that approves pending incoming transfers.
type: object
required:
- type
title: CantonApproveTransferDetails
Signature:
properties:
data:
type: string
title: Data
description: Signature on the transaction, encoded in base64 format.
example: SGVsbG8=
signed_by:
description: The user who created this signature, `null` if the signature wasn't created by a Fordefi user.
oneOf:
- $ref: '#/components/schemas/PersonRef'
- $ref: '#/components/schemas/ApiSignerRef'
- $ref: '#/components/schemas/EndUserRef'
- $ref: '#/components/schemas/ApiUserRef'
discriminator:
propertyName: user_type
mapping:
api_signer: '#/components/schemas/ApiSignerRef'
api_user: '#/components/schemas/ApiUserRef'
end_user: '#/components/schemas/EndUserRef'
person: '#/components/schemas/PersonRef'
type: object
required:
- data
title: Signature
EnrichedSolanaChain:
properties:
chain_type:
type: string
const: solana
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The type of the Solana-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedSolanaChain
PredictedStacksTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: stacks_transaction
title: Type
description: Stacks transaction type.
post_conditions:
$ref: '#/components/schemas/StacksPostConditions'
description: The post conditions of the transaction.
expected_result:
$ref: '#/components/schemas/StacksTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedStacksChain'
description: The details of the chain that this transaction is on.
stacks_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/StacksNativeTransferDetails'
- $ref: '#/components/schemas/StacksTokenTransferDetails'
- $ref: '#/components/schemas/StacksRawTransactionDetails'
description: Details of the stacks transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/StacksNativeTransferDetails'
raw_transaction: '#/components/schemas/StacksRawTransactionDetails'
token_transfer: '#/components/schemas/StacksTokenTransferDetails'
serialized_payload:
type: string
pattern: ^0[xX][a-fA-F0-9]+$
title: Serialized Payload
description: The serialized payload of the transaction.
memo:
title: Memo
description: The memo of the transaction.
type: string
suggested_fees:
$ref: '#/components/schemas/StacksSuggestedFees'
description: The suggested fees.
sender:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The sender of the transaction.
type: object
required:
- matched_policies
- risks
- type
- post_conditions
- expected_result
- chain
- stacks_transaction_type_details
- serialized_payload
- suggested_fees
- sender
title: PredictedStacksTransaction
PredictedEvmTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: evm_transaction
title: Type
description: The type of the transaction.
expected_result:
$ref: '#/components/schemas/EvmTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedEvmChain'
description: The details of the chain that this message is on.
evm_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/EvmNativeTransferDetails'
- $ref: '#/components/schemas/TokenTransferDetails'
- $ref: '#/components/schemas/AllowanceDetails'
- $ref: '#/components/schemas/ContractCallDetails'
- $ref: '#/components/schemas/ContractDeploymentDetails'
- $ref: '#/components/schemas/BridgeDetails'
- $ref: '#/components/schemas/SetCodeDetails'
description: Details of the EVM transaction based on its type.
discriminator:
propertyName: type
mapping:
allowance: '#/components/schemas/AllowanceDetails'
contract_call: '#/components/schemas/ContractCallDetails'
contract_deployment: '#/components/schemas/ContractDeploymentDetails'
cross_chain_bridge: '#/components/schemas/BridgeDetails'
native_transfer: '#/components/schemas/EvmNativeTransferDetails'
set_code: '#/components/schemas/SetCodeDetails'
token_transfer: '#/components/schemas/TokenTransferDetails'
parsed_data:
$ref: '#/components/schemas/EvmTransactionParsedData'
description: The parsed data of the transaction.
gas_estimation:
description: The gas estimation.
$ref: '#/components/schemas/EvmGasEstimation'
suggested_fees:
description: The suggested fees.
$ref: '#/components/schemas/EvmSuggestedFees'
sender:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The sender of the transaction.
to:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address of the recipient of the transaction.
hex_data:
title: Hex Data
description: The hex data of the contract call, as a serialized method-call with its arguments.
type: string
pattern: ^0[xX][a-fA-F0-9]+$
gas_submitted:
oneOf:
- $ref: '#/components/schemas/LegacyGas'
- $ref: '#/components/schemas/DynamicGas'
description: The gas details submitted for the transaction.
discriminator:
propertyName: type
mapping:
dynamic: '#/components/schemas/DynamicGas'
legacy: '#/components/schemas/LegacyGas'
fee_payer:
description: The address that pays the fee for this transaction (from address).
$ref: '#/components/schemas/EnrichedEvmAddress'
allowed_mev_protected_states:
title: Allowed Mev Protected States
description: The MEV-protection states permitted for this transaction. Because all pending transactions on a vault must use the same MEV-protection setting, this set may be restricted by existing pending transactions.
items:
$ref: '#/components/schemas/MevProtectedState'
type: array
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- evm_transaction_type_details
- parsed_data
- sender
- to
- gas_submitted
title: PredictedEvmTransaction
CantonNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: A transaction involving the transfer of native Canton currency from one address to another.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the recipient is unknown.
type: boolean
type: object
required:
- type
title: CantonNativeTransferDetails
PredictedStarknetMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: starknet_message
title: Type
description: Starknet message type.
chain:
$ref: '#/components/schemas/EnrichedStarknetChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The sender of the message.
starknet_message_type:
$ref: '#/components/schemas/StarknetMessageType'
description: The type of the Starknet message.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- starknet_message_type
- message_to_display
title: PredictedStarknetMessage
CosmosAssetIdentifier:
properties:
type:
type: string
const: cosmos
title: Type
description: Cosmos asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
token: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
type: object
required:
- type
- details
- chain
title: CosmosAssetIdentifier
EnrichedEvmChain:
properties:
chain_type:
type: string
const: evm
title: Chain Type
description: The type of the chain.
named_chain_id:
title: EvmChainName
description: The EVM chain name can be either one of those supported by the default chains below or a custom chain name if one was added to your organization. - `arbitrum_mainnet`
- `arbitrum_sepolia`
- `aster_mainnet`
- `avalanche_chain`
- `avalanche_fuji`
- `base_mainnet`
- `berachain_mainnet`
- `blast_mainnet`
- `bsc_mainnet`
- `canto_mainnet`
- `clink_mainnet`
- `clink_testnet`
- `conflux_mainnet`
- `dymension_mainnet`
- `ethereum_goerli`
- `ethereum_holesky`
- `ethereum_mainnet`
- `ethereum_sepolia`
- `fantom_mainnet`
- `flare_mainnet`
- `flare_testnet`
- `gnosis_mainnet`
- `hypercore_mainnet`
- `hyperevm_mainnet`
- `ink_mainnet`
- `kava_mainnet`
- `katana_mainnet`
- `linea_mainnet`
- `optimism_mainnet`
- `pharos_mainnet`
- `plasma_mainnet`
- `manta_pacific_mainnet`
- `mantle_mainnet`
- `merlin_mainnet`
- `monad_mainnet`
- `polygon_mainnet`
- `polygon_mumbai`
- `polygon_zkevm_mainnet`
- `reya_mainnet`
- `robinhood_mainnet`
- `rootstock_mainnet`
- `scroll_mainnet`
- `sei_mainnet`
- `sonic_mainnet`
- `tempo_mainnet`
- `unichain_mainnet`
- `xai_mainnet`
- `x_layer_mainnet`
- `zero_gravity_mainnet`
- `zeta_mainnet`
- `zklink_nova_mainnet`
- `zksync_era_mainnet`
type: string
minLength: 1
chain_id:
type: integer
minimum: 1.0
title: EvmChainId
description: The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. - 1=`ethereum_mainnet`
- 5=`ethereum_goerli`
- 10=`optimism_mainnet`
- 14=`flare_mainnet`
- 16=`flare_testnet`
- 30=`rootstock_mainnet`
- 56=`bsc_mainnet`
- 100=`gnosis_mainnet`
- 130=`unichain_mainnet`
- 137=`polygon_mainnet`
- 143=`monad_mainnet`
- 146=`sonic_mainnet`
- 169=`manta_pacific_mainnet`
- 196=`x_layer_mainnet`
- 250=`fantom_mainnet`
- 324=`zksync_era_mainnet`
- 999=`hyperevm_mainnet`
- 1030=`conflux_mainnet`
- 1100=`dymension_mainnet`
- 1101=`polygon_zkevm_mainnet`
- 1329=`sei_mainnet`
- 1337=`hypercore_mainnet`
- 1666=`aster_mainnet`
- 1672=`pharos_mainnet`
- 1729=`reya_mainnet`
- 2222=`kava_mainnet`
- 4200=`merlin_mainnet`
- 4217=`tempo_mainnet`
- 4663=`robinhood_mainnet`
- 5000=`mantle_mainnet`
- 7000=`zeta_mainnet`
- 7700=`canto_mainnet`
- 8453=`base_mainnet`
- 8818=`clink_mainnet`
- 8819=`clink_testnet`
- 9745=`plasma_mainnet`
- 16661=`zero_gravity_mainnet`
- 17000=`ethereum_holesky`
- 80001=`polygon_mumbai`
- 80094=`berachain_mainnet`
- 42161=`arbitrum_mainnet`
- 43113=`avalanche_fuji`
- 43114=`avalanche_chain`
- 57073=`ink_mainnet`
- 59144=`linea_mainnet`
- 81457=`blast_mainnet`
- 421614=`arbitrum_sepolia`
- 534352=`scroll_mainnet`
- 660279=`xai_mainnet`
- 747474=`katana_mainnet`
- 810180=`zklink_nova_mainnet`
- 11155111=`ethereum_sepolia`
unique_id:
type: string
minLength: 1
title: EvmChainUniqueId
description: The unique EVM chain ID. Can be either one of those supported by the default chains below or a custom numeric chain ID `evm_` if one was added to your organization. - `"evm_1"`
- `"evm_5"`
- `"evm_10"`
- `"evm_14"`
- `"evm_16"`
- `"evm_30"`
- `"evm_56"`
- `"evm_100"`
- `"evm_130"`
- `"evm_137"`
- `"evm_143"`
- `"evm_146"`
- `"evm_169"`
- `"evm_196"`
- `"evm_250"`
- `"evm_324"`
- `"evm_999"`
- `"evm_1030"`
- `"evm_1100"`
- `"evm_1101"`
- `"evm_1329"`
- `"evm_1337"`
- `"evm_1666"`
- `"evm_1672"`
- `"evm_1729"`
- `"evm_2222"`
- `"evm_4200"`
- `"evm_4217"`
- `"evm_4663"`
- `"evm_5000"`
- `"evm_7000"`
- `"evm_7700"`
- `"evm_8453"`
- `"evm_8818"`
- `"evm_8819"`
- `"evm_9745"`
- `"evm_16661"`
- `"evm_17000"`
- `"evm_80001"`
- `"evm_80094"`
- `"evm_42161"`
- `"evm_43113"`
- `"evm_43114"`
- `"evm_57073"`
- `"evm_59144"`
- `"evm_81457"`
- `"evm_421614"`
- `"evm_534352"`
- `"evm_660279"`
- `"evm_747474"`
- `"evm_810180"`
- `"evm_11155111"`
- `"evm_ethereum_mainnet"`
- `"evm_ethereum_goerli"`
- `"evm_optimism_mainnet"`
- `"evm_flare_mainnet"`
- `"evm_flare_testnet"`
- `"evm_rootstock_mainnet"`
- `"evm_bsc_mainnet"`
- `"evm_gnosis_mainnet"`
- `"evm_unichain_mainnet"`
- `"evm_polygon_mainnet"`
- `"evm_monad_mainnet"`
- `"evm_sonic_mainnet"`
- `"evm_manta_pacific_mainnet"`
- `"evm_x_layer_mainnet"`
- `"evm_fantom_mainnet"`
- `"evm_zksync_era_mainnet"`
- `"evm_hyperevm_mainnet"`
- `"evm_conflux_mainnet"`
- `"evm_dymension_mainnet"`
- `"evm_polygon_zkevm_mainnet"`
- `"evm_sei_mainnet"`
- `"evm_hypercore_mainnet"`
- `"evm_aster_mainnet"`
- `"evm_pharos_mainnet"`
- `"evm_reya_mainnet"`
- `"evm_kava_mainnet"`
- `"evm_merlin_mainnet"`
- `"evm_tempo_mainnet"`
- `"evm_robinhood_mainnet"`
- `"evm_mantle_mainnet"`
- `"evm_zeta_mainnet"`
- `"evm_canto_mainnet"`
- `"evm_base_mainnet"`
- `"evm_clink_mainnet"`
- `"evm_clink_testnet"`
- `"evm_plasma_mainnet"`
- `"evm_zero_gravity_mainnet"`
- `"evm_ethereum_holesky"`
- `"evm_polygon_mumbai"`
- `"evm_berachain_mainnet"`
- `"evm_arbitrum_mainnet"`
- `"evm_avalanche_fuji"`
- `"evm_avalanche_chain"`
- `"evm_ink_mainnet"`
- `"evm_linea_mainnet"`
- `"evm_blast_mainnet"`
- `"evm_arbitrum_sepolia"`
- `"evm_scroll_mainnet"`
- `"evm_xai_mainnet"`
- `"evm_katana_mainnet"`
- `"evm_zklink_nova_mainnet"`
- `"evm_ethereum_sepolia"`
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
gas_type:
$ref: '#/components/schemas/GasType'
description: The type of gas used by the chain.
supports_secure_node:
title: Supports Secure Node
description: '`True` if the chain supports secure nodes, `False` otherwise.'
deprecated: true
type: boolean
supports_mev_protected_node:
type: boolean
title: Supports Mev Protected Node
description: '`True` if the chain supports MEV protected nodes, `False` otherwise.'
default: false
rpc_url:
title: Rpc Url
description: The URL of the chain's RPC. Exists only for custom chains.
type: string
source:
$ref: '#/components/schemas/ChainSource'
description: 'The source of the chain. Can be:- `default`: Chains with built-in support on Fordefi''s platform.
- `custom`: User-added chains with support on Fordefi''s platform.
'
supports_7702:
type: boolean
title: Supports 7702
description: '`True` if the chain supports 7702, `False` otherwise.'
default: false
type: object
required:
- chain_type
- chain_id
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
- gas_type
- source
title: EnrichedEvmChain
SuiPartialObjectRefInputArgument:
properties:
type:
type: string
const: partial
title: Type
description: The type of the object.
object_id:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Object Id
description: The id of the object.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
type: object
required:
- type
- object_id
title: SuiPartialObjectRefInputArgument
GetQuotesRequest:
properties:
vault_id:
type: string
format: uuid
title: Vault Id
description: The unique identifier of the vault.
input_asset_identifier:
$ref: '#/components/schemas/AssetIdentifierRequest'
description: The input asset identifier.
output_asset_identifier:
$ref: '#/components/schemas/AssetIdentifierRequest'
description: The output asset identifier.
amount:
type: string
pattern: ^0*[1-9]\d*$
title: Amount
description: The amount to swap.
example: '1000000000000000000'
slippage_bps:
title: Slippage Bps
description: The slippage tolerance in basis points.
type: string
pattern: ^\d+(\.\d+)?$
example: '1000000000000000000'
signer_type:
$ref: '#/components/schemas/SignerType'
description: 'The signer of the quote request. Can be: - `initiator`: The creator of the quote request (default).
- `api_signer`: A service that you run on your own network or cloud environment.
'
default: initiator
requested_provider_ids:
items:
$ref: '#/components/schemas/ProviderId'
type: array
title: Requested Provider Ids
description: The provider ids to use for the quote. If empty, all providers will be used.
type: object
required:
- vault_id
- input_asset_identifier
- output_asset_identifier
- amount
title: GetQuotesRequest
UtxoAddress:
properties:
type:
type: string
const: utxo
title: Type
address:
type: string
maxLength: 74
minLength: 14
title: Address
description: The UTXO string address.
example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
address_type:
$ref: '#/components/schemas/UtxoAddressType'
description: The type of the address.
chain:
$ref: '#/components/schemas/UtxoChain'
description: The UTXO chain unique ID.
type: object
required:
- type
- address
- address_type
- chain
title: UtxoAddress
SolanaBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: SolanaBalanceChangeEffect
ArchAplTokenAssetIdentifierRequest:
properties:
type:
type: string
const: apl_token
title: Type
description: APL token asset identifier type.
token:
$ref: '#/components/schemas/ArchAddressRequest'
description: The APL token details.
type: object
required:
- type
- token
title: ArchAplTokenAssetIdentifierRequest
TonAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: ton
title: Chain Type
description: The type of the chain.
address:
type: string
title: Address
description: The address on the TON chain.
chains:
items:
$ref: '#/components/schemas/TonChain'
type: array
title: Chains
description: The chains the contact belongs to.
comment:
title: Comment
description: Comment is an additional address feature used for identifying a recipient.
type: string
type: object
required:
- chain_type
- address
- chains
title: TonAddressBookContactAddressRef
CosmosAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: cosmos
title: Chain Type
description: The type of the chain.
address:
type: string
title: Address
description: The address on the cosmos chain.
example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38
chain:
$ref: '#/components/schemas/CosmosChain'
description: The chain the contact belongs to.
memo:
title: Memo
description: Memo is an additional address feature used for identifying a recipient.
type: string
type: object
required:
- chain_type
- address
- chain
title: CosmosAddressBookContactAddressRef
Category:
properties:
id:
type: integer
title: Id
description: The category ID.
name:
type: string
title: Name
description: The category name.
type: object
required:
- id
- name
title: Category
Price:
properties:
price:
title: Price
description: The price in the given fiat currency.
deprecated: true
type: string
pattern: ^\d+$
example: '1000000000000000000'
price_float:
type: string
pattern: ^\d+(\.\d+)?$
title: Price Float
description: The absolute price in the given fiat currency. When is_negative is true the asset's value is the negative of this (e.g. a debt token).
example: '1000000000000000000'
is_negative:
type: boolean
title: Is Negative
description: Whether the asset's value is negative (e.g. a debt token). price_float holds the absolute value.
default: false
fiat_currency:
$ref: '#/components/schemas/FiatCurrency'
type: object
required:
- price
- price_float
- fiat_currency
title: Price
description: Price represents a price in a given FiatCurrency.
LegacyGasFields:
properties:
price:
type: string
pattern: ^\d+$
title: Price
description: The price of a gas unit.
example: '1000000000000000000'
type: object
required:
- price
title: LegacyGasFields
SuiTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: sui_transaction
title: Type
description: Sui transaction type.
sui_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/SuiNativeTransferDetails'
- $ref: '#/components/schemas/SuiCoinTransferDetails'
- $ref: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
description: Details of the Sui transaction based on its type.
discriminator:
propertyName: type
mapping:
coin_transfer: '#/components/schemas/SuiCoinTransferDetails'
native_transfer: '#/components/schemas/SuiNativeTransferDetails'
programmable_transaction_block: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
chain:
$ref: '#/components/schemas/EnrichedSuiChain'
description: The details of the chain this transaction is on.
version:
$ref: '#/components/schemas/SuiMessageVersion'
description: The version of the transaction message.
inputs:
items:
$ref: '#/components/schemas/SuiInput'
type: array
title: Inputs
description: The inputs of the transaction.
commands:
items:
$ref: '#/components/schemas/SuiCommand'
type: array
title: Commands
description: The commands of the transactions.
sender:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the transaction.
$ref: '#/components/schemas/EnrichedSuiAddress'
digest:
title: Digest
description: The digest of the transaction.
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
tx_bytes:
title: Tx Bytes
description: The tx_bytes param encoded as a base64 string.
type: string
example: SGVsbG8=
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The json representation of the transaction's data
type: string
epoch:
title: Epoch
description: The epoch of the transaction.
type: integer
gas_submitted:
$ref: '#/components/schemas/SuiGasConfig'
description: The gas details submitted for the transaction.
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/SuiTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/SuiTransactionResult'
transaction_block_data:
title: Transaction Block Data
description: The json representation of the transaction's data which contains the inputs and commands.
type: string
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, Suiscan.
example: https://suiscan.xyz/mainnet/tx/9K8mnqJdxf3B7v...xvSgWk5faGshEta
type: string
maxLength: 2083
minLength: 1
format: uri
fee_payer:
description: The address that pays the fee for this transaction (gas owner).
$ref: '#/components/schemas/EnrichedSuiAddress'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- sui_transaction_type_details
- chain
- version
- inputs
- commands
- sender
- gas_submitted
title: SuiTransaction
AssetInfo:
properties:
id:
type: string
format: uuid
title: Id
description: The asset ID.
asset_identifier:
$ref: '#/components/schemas/AssetIdentifier'
description: The asset identifier.
name:
type: string
title: Name
description: The name of the asset.
symbol:
type: string
title: Symbol
description: The symbol (ticker) of the asset.
decimals:
type: integer
minimum: 0.0
title: Decimals
verified:
type: boolean
title: Verified
description: '`True` if this asset is verified by Fordefi, `False` otherwise.'
metadata_uri:
title: Metadata Uri
description: The URI of the asset metadata.
type: string
is_spam:
type: boolean
title: Is Spam
description: '`True` if this asset is spam, `False` otherwise.'
logo_url:
title: Logo Url
description: The URL of the asset logo.
type: string
minLength: 1
format: uri
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the asset.
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- id
- asset_identifier
- name
- symbol
- decimals
- verified
- is_spam
title: AssetInfo
VaultState:
type: string
enum:
- active
- archived
- deleted
- pending
- aborted
title: VaultState
CantonCip56TokenAssetIdentifierRequest:
properties:
type:
type: string
const: cip56_token
title: Type
description: CIP56 token asset identifier type.
token:
$ref: '#/components/schemas/CantonInstrumentIdRequest'
description: The CIP56 token details.
type: object
required:
- type
- token
title: CantonCip56TokenAssetIdentifierRequest
ExchangeTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/ExchangeTransactionState'
description: The state of the exchange transaction.
state_changes:
items:
$ref: '#/components/schemas/ExchangeTransactionStateChange'
type: array
title: State Changes
description: The state changes of the exchange transaction.
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: exchange_transaction
title: Type
description: The type of the transaction.
exchange_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/ExchangeExternalWithdrawDetails'
- $ref: '#/components/schemas/ExchangeInternalTransferDetails'
description: Details of the Exchange transaction based on its type.
discriminator:
propertyName: type
mapping:
external_withdraw: '#/components/schemas/ExchangeExternalWithdrawDetails'
internal_transfer: '#/components/schemas/ExchangeInternalTransferDetails'
exchange_nonce:
title: Exchange Nonce
description: The nonce of the transaction. `None` if not required by the exchange
type: string
exchange_transaction_id:
title: Exchange Transaction Id
description: The ID of the transaction as returned by the exchange
type: string
expected_result:
description: The expected result of the transaction in case it's executed.
$ref: '#/components/schemas/ExchangeTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/ExchangeTransactionResult'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- exchange_transaction_type_details
title: ExchangeTransaction
EvmErc1155AssetIdentifierRequest:
properties:
type:
type: string
const: erc1155
title: Type
description: EVM asset identifier type.
token:
$ref: '#/components/schemas/EvmAddressRequest'
description: The ERC-1155 token contract.
token_id:
type: string
pattern: ^\d+$
title: Token Id
description: The token id of the ERC-1155 token.
example: '1000000000000000000'
type: object
required:
- type
- token
- token_id
title: EvmErc1155AssetIdentifierRequest
EnrichedCosmosChain:
properties:
chain_type:
type: string
const: cosmos
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The Cosmos chain unique id.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
base_denom:
type: string
title: Base Denom
description: The base denom of the chain.
bech32_prefix:
$ref: '#/components/schemas/CosmosBech32Prefix'
description: The bech32 prefix for addresses on the chain.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
- base_denom
- bech32_prefix
title: EnrichedCosmosChain
CantonInstrumentIdRequest:
properties:
address:
$ref: '#/components/schemas/CantonAddressRequest'
description: The address of the instrument provider.
id:
type: string
title: Id
description: The instrument ID within the provider's namespace.
type: object
required:
- address
- id
title: CantonInstrumentIdRequest
description: Instrument ID represents a Canton instrument identifier (address + id).
SafeOperation:
type: string
enum:
- call
- delegate_call
title: SafeOperation
TronAssetIdentifierRequest:
properties:
type:
type: string
const: tron
title: Type
description: TRON asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/TronNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/TronTrc20AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/TronNativeAssetIdentifierRequest'
trc20: '#/components/schemas/TronTrc20AssetIdentifierRequest'
type: object
required:
- type
- details
title: TronAssetIdentifierRequest
AptosCoinTransferDetails:
properties:
type:
type: string
const: coin_transfer
title: Type
description: 'A transaction involving the transfer of non-APT coin from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The sender of the coins.
recipient:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The recipient of the coins.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: AptosCoinTransferDetails
EnrichedTonChain:
properties:
chain_type:
type: string
const: ton
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/TonChainUniqueId'
description: The type of the TON-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedTonChain
StellarAssetIdentifierRequest:
properties:
type:
type: string
const: stellar
title: Type
description: Stellar asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StellarNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StellarClassicAssetIdentifierRequest'
- $ref: '#/components/schemas/StellarSorobanAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
classic_asset: '#/components/schemas/StellarClassicAssetIdentifierRequest'
native: '#/components/schemas/StellarNativeAssetIdentifierRequest'
soroban_asset: '#/components/schemas/StellarSorobanAssetIdentifierRequest'
type: object
required:
- type
- details
title: StellarAssetIdentifierRequest
StarknetContractCreationDetails:
properties:
type:
type: string
const: contract_deployment
title: Type
description: A transaction that created a contract.
type: object
required:
- type
title: StarknetContractCreationDetails
JitoCustomFeeRequest:
properties:
type:
type: string
const: custom
title: Type
jito_tip:
type: string
pattern: ^0*[1-9]\d*$
title: Jito Tip
description: The Jito tip to use in the transaction (In lamports).
example: '1000000000000000000'
type: object
required:
- type
- jito_tip
title: JitoCustomFeeRequest
CosmosMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: cosmos_message
title: Type
description: Cosmos message type.
cosmos_message_type:
$ref: '#/components/schemas/CosmosMessageType'
description: The type of the Cosmos message.
data:
$ref: '#/components/schemas/CosmosMessageData'
description: The raw data of the message, encoded in base64 if bytes, else plain string.
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The sender of the message.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- cosmos_message_type
- data
- chain
- sender
title: CosmosMessage
StacksChain:
properties:
chain_type:
type: string
const: stacks
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The type of the Stacks-based chain.
type: object
required:
- chain_type
- unique_id
title: StacksChain
ExchangeReversionState:
type: string
enum:
- not_reverted
- insufficient_exchange_withdraw_funds
title: ExchangeReversionState
EvmLegacySuggestedFees:
properties:
type:
type: string
const: legacy
title: Type
low:
$ref: '#/components/schemas/LegacyGasFields'
description: The low suggested gas fees.
medium:
$ref: '#/components/schemas/LegacyGasFields'
description: The medium suggested gas fees.
high:
$ref: '#/components/schemas/LegacyGasFields'
description: The high suggested gas fees.
type: object
required:
- type
- low
- medium
- high
title: EvmLegacySuggestedFees
CosmosTokenWithAmount:
properties:
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the coin in base unit (for example uatom).
example: '1000000000000000000'
type:
type: string
const: token
title: Type
coin:
$ref: '#/components/schemas/CosmosToken'
description: The coin.
type: object
required:
- amount
- type
- coin
title: CosmosTokenWithAmount
AptosNewCoinTypeRequest:
properties:
chain:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The chain details this address is of.
metadata_address:
type: string
title: Metadata Address
description: New coin's metadata address.
type: object
required:
- chain
- metadata_address
title: AptosNewCoinTypeRequest
description: New coin type represents a blockchain new coin type.
EvmGasEstimation:
properties:
gas_limit:
type: string
pattern: ^0*[1-9]\d*$
title: Gas Limit
description: The gas limit.
example: '1000000000000000000'
fiat_price:
description: The price of the asset used to pay the fee.
$ref: '#/components/schemas/Price'
type: object
required:
- gas_limit
title: EvmGasEstimation
StarknetErc20TransferDetails:
properties:
type:
type: string
const: erc20_transfer
title: Type
description: 'A transaction involving the transfer of an erc20 from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: StarknetErc20TransferDetails
SuiCommand:
oneOf:
- $ref: '#/components/schemas/SuiTransferObjectsCommand'
- $ref: '#/components/schemas/SuiSplitCoinsCommand'
- $ref: '#/components/schemas/SuiMergeCoinsCommand'
- $ref: '#/components/schemas/SuiMakeMoveVecCommand'
- $ref: '#/components/schemas/SuiMoveCallCommand'
- $ref: '#/components/schemas/SuiPublishCommand'
- $ref: '#/components/schemas/SuiUpgradeCommand'
discriminator:
propertyName: type
mapping:
make_move_vec: '#/components/schemas/SuiMakeMoveVecCommand'
merge_coins: '#/components/schemas/SuiMergeCoinsCommand'
move_call: '#/components/schemas/SuiMoveCallCommand'
publish: '#/components/schemas/SuiPublishCommand'
split_coins: '#/components/schemas/SuiSplitCoinsCommand'
transfer_objects: '#/components/schemas/SuiTransferObjectsCommand'
upgrade: '#/components/schemas/SuiUpgradeCommand'
MinedResultStatus:
type: string
enum:
- success
- missing
- potentially_partial
title: MinedResultStatus
NonPushableTransactionState:
type: string
enum:
- waiting_for_approval
- waiting_for_signing_trigger
- approved
- finalized_for_signing
- signed
- sent_to_provider
- completed
- error_signing
- aborted
- error_submitting_to_provider
- dropped
title: NonPushableTransactionState
VaultAddressRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the vault address in the Fordefi platform.
vault_id:
type: string
format: uuid
title: Vault Id
description: The unique identifier of the vault this address belongs to.
name:
type: string
title: Name
description: The name of the vault address.
address:
type: string
title: Address
description: The address of the vault address.
type: object
required:
- id
- vault_id
- name
- address
title: VaultAddressRef
description: Represents a reference to a vault address in the Fordefi platform
SuiReversion:
properties:
state:
$ref: '#/components/schemas/SuiReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: Insufficient coin balance.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
- `invalid_input`: The input data was invalid.
- `transaction_failed_to_reach_finality`: The transaction failed to reach finality state.
- `out_of_gas`: The transaction ran out of gas.
- `transaction_locked_objects_failure`: The transaction failed due to locked objects on validator.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: SuiReversion
SolanaCompiledInstruction:
properties:
program_index:
type: integer
title: Program Index
description: The program index.
data:
type: string
title: Data
description: The instruction data in Base64 format.
example: SGVsbG8=
account_indexes:
items:
type: integer
type: array
title: Account Indexes
description: The indexes of the instruction accounts in the transaction accounts list.
program:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The address of the program account.
base58_data:
title: Base58 Data
description: The instruction data encoded in Base58 format.
type: string
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
type: object
required:
- program_index
- data
- account_indexes
- program
title: SolanaCompiledInstruction
AptosMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: aptos_message
title: Type
description: Aptos message type.
aptos_message_type:
$ref: '#/components/schemas/AptosMessageType'
description: The type of the Aptos message.
raw_original_message_to_sign:
type: string
title: Raw Original Message To Sign
description: The original message that was requested to be signed, encoded in base64.
example: SGVsbG8=
string_original_message_to_sign:
type: string
title: String Original Message To Sign
description: The original message that was requested to be signed.
raw_full_message_to_sign:
type: string
title: Raw Full Message To Sign
description: The full message to be signed, encoded in base64.
example: SGVsbG8=
string_full_message_to_sign:
type: string
title: String Full Message To Sign
description: The full message to be signed.
chain:
$ref: '#/components/schemas/EnrichedAptosChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The sender of the message.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- aptos_message_type
- raw_original_message_to_sign
- string_original_message_to_sign
- raw_full_message_to_sign
- string_full_message_to_sign
- chain
- sender
title: AptosMessage
SignerType:
type: string
enum:
- initiator
- api_signer
- end_user
- multiple_signers
- api_user
title: SignerType
TronContractCallDetails:
properties:
type:
type: string
const: contract_call
title: Type
description: A TRON contract call transaction.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the transaction.
$ref: '#/components/schemas/EnrichedTronAddress'
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The json representation of the transaction's data
type: string
type: object
required:
- type
- sender
title: TronContractCallDetails
StarknetNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Starknet asset identifier type.
chain:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: StarknetNativeAssetIdentifierRequest
TonTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/TonReversion'
description: Details whether the transaction was reverted or not.
address_fees:
items:
$ref: '#/components/schemas/TonAddressFee'
type: array
title: Address Fees
description: The fees paid for this transaction by managed addresses.
effects:
$ref: '#/components/schemas/TonEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- address_fees
- effects
title: TonTransactionResult
TonAddressFee:
properties:
address:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The address that paid the fee.
total_fee:
type: integer
title: Total Fee
description: The total fee paid by this address, in nano tons.
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- address
- total_fee
- priced_asset
title: TonAddressFee
ArchFee:
properties:
base_fee:
type: string
pattern: ^0*[1-9]\d*$
title: Base Fee
description: The base fee of the transaction (in lamports).
example: '1000000000000000000'
total_fee:
type: string
pattern: ^0*[1-9]\d*$
title: Total Fee
description: The total fee of the transaction (in lamports).
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- base_fee
- total_fee
- priced_asset
title: ArchFee
PredictedSolanaMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: solana_message
title: Type
description: The type of the transaction.
chain:
$ref: '#/components/schemas/EnrichedSolanaChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the message.
solana_message_type:
$ref: '#/components/schemas/SolanaMessageType'
description: The type of the Solana message.
solana_message_type_details:
oneOf:
- $ref: '#/components/schemas/PersonalMessageDetails'
- $ref: '#/components/schemas/CreateSessionDetails'
description: The details of the Solana message.
discriminator:
propertyName: type
mapping:
create_session_message_type: '#/components/schemas/CreateSessionDetails'
personal_message_type: '#/components/schemas/PersonalMessageDetails'
expected_result:
$ref: '#/components/schemas/SolanaMessageResult'
description: Simulation is supported only for Fogo session intent messages. Is empty when simulation is not available for the intent type.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- solana_message_type
- solana_message_type_details
- expected_result
- message_to_display
title: PredictedSolanaMessage
EvmTransactionParsedData:
properties:
method:
type: string
title: Method
description: The method name, in case of contract call.
method_arguments:
items:
$ref: '#/components/schemas/EvmTransactionMethodArgument'
type: array
title: Method Arguments
description: The method arguments, in case of contract call.
type: object
required:
- method
- method_arguments
title: EvmTransactionParsedData
PredictSpotSwapRequest:
properties:
quote_id:
type: string
format: uuid
title: Quote Id
description: The ID of the quote.
vault_id:
type: string
format: uuid
title: Vault Id
description: The unique identifier of the vault.
input_asset_identifier:
$ref: '#/components/schemas/AssetIdentifierRequest'
description: The input asset identifier.
output_asset_identifier:
$ref: '#/components/schemas/AssetIdentifierRequest'
description: The output asset identifier.
amount:
type: string
pattern: ^0*[1-9]\d*$
title: Amount
description: The amount to swap.
example: '1000000000000000000'
slippage_bps:
title: Slippage Bps
description: The slippage tolerance in basis points.
type: string
pattern: ^\d+(\.\d+)?$
example: '1000000000000000000'
fee:
description: The fee configuration for the transaction.
$ref: '#/components/schemas/SpotSwapFeeRequest'
fee_payer:
description: The vault that pays the fee for this transaction.
$ref: '#/components/schemas/TransactionFeePayerVault'
should_run_policy_check:
type: boolean
title: Should Run Policy Check
description: Should run a policy check
default: true
fail_on_prediction_failure:
type: boolean
title: Fail On Prediction Failure
description: '`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
use_mev_protected_node:
type: boolean
title: Use Mev Protected Node
description: Use a MEV protected node to send the transaction. By using a MEV protected node, you avoid maximal extractable value (MEV) attacks.
default: false
type: object
required:
- quote_id
- vault_id
- input_asset_identifier
- output_asset_identifier
- amount
title: PredictSpotSwapRequest
TonChain:
properties:
chain_type:
type: string
const: ton
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/TonChainUniqueId'
description: The type of the TON-based chain.
type: object
required:
- chain_type
- unique_id
title: TonChain
StarknetFeeDetails:
properties:
l1_gas_consumed:
type: string
pattern: ^\d+$
title: L1 Gas Consumed
description: L1 gas consumed by the transaction.
example: '1000000000000000000'
l1_gas_price:
type: string
pattern: ^0*[1-9]\d*$
title: L1 Gas Price
description: L1 gas unit price.
example: '1000000000000000000'
l2_gas_consumed:
type: string
pattern: ^\d+$
title: L2 Gas Consumed
description: L2 gas consumed by the transaction.
example: '1000000000000000000'
l2_gas_price:
type: string
pattern: ^0*[1-9]\d*$
title: L2 Gas Price
description: L2 gas unit price.
example: '1000000000000000000'
l1_data_gas_consumed:
type: string
pattern: ^\d+$
title: L1 Data Gas Consumed
description: L1 data gas consumed by the transaction.
example: '1000000000000000000'
l1_data_gas_price:
type: string
pattern: ^0*[1-9]\d*$
title: L1 Data Gas Price
description: L1 data gas unit price.
example: '1000000000000000000'
type: object
required:
- l1_gas_consumed
- l1_gas_price
- l2_gas_consumed
- l2_gas_price
- l1_data_gas_consumed
- l1_data_gas_price
title: StarknetFeeDetails
RateLimitError:
properties: {}
type: object
title: RateLimitError
AddressLookupTableState:
properties:
addresses:
items:
$ref: '#/components/schemas/EnrichedSolanaAddress'
type: array
title: Addresses
description: The addresses that are stored in the table.
authority:
description: The authority address which must sign for each modification.
$ref: '#/components/schemas/EnrichedSolanaAddress'
deactivation_slot:
type: string
pattern: ^0*[1-9]\d*$
title: Deactivation Slot
description: The table can be closed when the deactivation slot is no longer the recent slot.
example: '1000000000000000000'
last_extended_slot:
type: string
pattern: ^0*[1-9]\d*$
title: Last Extended Slot
description: The number of the last slot in which a change constitutes an extension of the table.
example: '1000000000000000000'
last_extended_slot_start_index:
type: string
pattern: ^\d+$
title: Last Extended Slot Start Index
description: The start index where the table was last extended from during the `last_extended_slot`.
example: '1000000000000000000'
type: object
required:
- addresses
- deactivation_slot
- last_extended_slot
- last_extended_slot_start_index
title: AddressLookupTableState
ArchNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Arch asset identifier type.
chain:
$ref: '#/components/schemas/ArchChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: ArchNativeAssetIdentifierRequest
PredictedCosmosMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: cosmos_message
title: Type
description: The type of the transaction.
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The sender of the message.
cosmos_message_type:
$ref: '#/components/schemas/CosmosMessageType'
description: The type of the Cosmos message.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- cosmos_message_type
- message_to_display
title: PredictedCosmosMessage
EnrichedStacksAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: stacks
title: Type
address:
type: string
maxLength: 171
pattern: ^S[0-9A-Za-z._-]+$
title: Address
description: The Stacks address represented in hex format.
example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
type: object
required:
- type
- address
title: EnrichedStacksAddress
StellarTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: stellar_transaction
title: Type
description: Stellar transaction type.
stellar_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/StellarNativeTransferDetails'
- $ref: '#/components/schemas/StellarClassicAssetTransferDetails'
- $ref: '#/components/schemas/StellarSorobanTokenTransferDetails'
- $ref: '#/components/schemas/StellarChangeTrustDetails'
- $ref: '#/components/schemas/StellarRawTransactionDetails'
- $ref: '#/components/schemas/StellarClaimClaimableBalanceDetails'
description: Details of the Stellar transaction based on its type.
discriminator:
propertyName: type
mapping:
change_trust: '#/components/schemas/StellarChangeTrustDetails'
claim_claimable_balance: '#/components/schemas/StellarClaimClaimableBalanceDetails'
classic_asset_transfer: '#/components/schemas/StellarClassicAssetTransferDetails'
native_transfer: '#/components/schemas/StellarNativeTransferDetails'
raw_transaction: '#/components/schemas/StellarRawTransactionDetails'
soroban_token_transfer: '#/components/schemas/StellarSorobanTokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedStellarChain'
description: The details of the chain this transaction is on.
sender:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the transaction.
hash:
title: Hash
description: The hash of the transaction.
type: string
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, https://stellar.expert/
example: https://stellar.expert/explorer/public/tx/abc123def456...
type: string
maxLength: 2083
minLength: 1
format: uri
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/StellarTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/StellarTransactionResult'
serialized_signed_transaction:
title: Serialized Signed Transaction
description: The serialized signed transaction.
type: string
claim_status:
description: The claim status of the transaction. Set to 'claimable' for transactions with claimable balances.
$ref: '#/components/schemas/ClaimStatus'
memo:
title: Memo
description: The memo attached to this Stellar transaction.
type: string
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The JSON representation of the transaction's data, for raw transactions.
type: string
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- stellar_transaction_type_details
- chain
- sender
title: StellarTransaction
EnrichedStellarChain:
properties:
chain_type:
type: string
const: stellar
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The type of the Stellar chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedStellarChain
ContractDeploymentDetails:
properties:
type:
type: string
const: contract_deployment
title: Type
description: A transaction that deploys a new contract.
contract_address:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
required:
- type
- contract_address
title: ContractDeploymentDetails
EvmBridgeEffectKnownDestination:
properties:
type:
type: string
const: known_target_chain
title: Type
description: The type of the effect destination.
dest_address:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The destination address of the bridge transaction.
dest_chain:
$ref: '#/components/schemas/EnrichedEvmChain'
description: The destination chain of the bridge transaction.
type: object
required:
- type
- dest_address
- dest_chain
title: EvmBridgeEffectKnownDestination
StarknetAddressRequest:
properties:
chain:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The chain details this address is of.
hex_repr:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Hex Repr
description: Hexadecimal representation of the address in the chain.
example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
type: object
required:
- chain
- hex_repr
title: StarknetAddressRequest
description: Address represents a blockchain address.
CosmosChain:
properties:
chain_type:
type: string
const: cosmos
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The Cosmos chain unique id.
type: object
required:
- chain_type
- unique_id
title: CosmosChain
PredictedTonTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: ton_transaction
title: Type
description: Ton transaction type.
expected_result:
$ref: '#/components/schemas/TonTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedTonChain'
description: The details of the chain that this transaction is on.
payload:
$ref: '#/components/schemas/TonTransactionPayload'
description: The payload of the transaction.
ton_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/TonNativeTransferDetails'
- $ref: '#/components/schemas/TonJettonTransferDetails'
- $ref: '#/components/schemas/TonRawTransactionDetails'
description: Details of the Ton transaction based on its type.
discriminator:
propertyName: type
mapping:
jetton_transfer: '#/components/schemas/TonJettonTransferDetails'
native_transfer: '#/components/schemas/TonNativeTransferDetails'
raw_transaction: '#/components/schemas/TonRawTransactionDetails'
suggested_fees:
$ref: '#/components/schemas/TonSuggestedFees'
description: The suggested fees.
sender:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The sender of the transaction.
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- payload
- ton_transaction_type_details
- suggested_fees
- sender
title: PredictedTonTransaction
StacksAddressRequest:
properties:
chain:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The chain details this address is of.
hex_repr:
type: string
maxLength: 171
pattern: ^S[0-9A-Za-z._-]+$
title: Hex Repr
description: Hexadecimal representation of the address in the chain.
example: SP3J4NWQXC312DK0GXVRZKSRFBZG8S5FG1D2160E9
type: object
required:
- chain
- hex_repr
title: StacksAddressRequest
description: Address represents a blockchain address.
TronStakeDetails:
properties:
type:
type: string
const: stake
title: Type
description: A TRON stake transaction.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the transaction.
$ref: '#/components/schemas/EnrichedTronAddress'
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The json representation of the transaction's data
type: string
type: object
required:
- type
- sender
title: TronStakeDetails
AptosNewCoinAssetIdentifierRequest:
properties:
type:
type: string
const: new_coin
title: Type
description: New coin asset identifier type.
new_coin_type:
$ref: '#/components/schemas/AptosNewCoinTypeRequest'
description: The new coin details.
type: object
required:
- type
- new_coin_type
title: AptosNewCoinAssetIdentifierRequest
AllowanceEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
owner:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The owner giving the allowance.
spender:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The spender receiving the allowance.
type: object
required:
- priced_asset
- amount
- owner
- spender
title: AllowanceEffect
StarknetTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: starknet_transaction
title: Type
description: Starknet transaction type.
starknet_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/StarknetNativeTransferDetails'
- $ref: '#/components/schemas/StarknetErc20TransferDetails'
- $ref: '#/components/schemas/StarknetRawTransactionDetails'
- $ref: '#/components/schemas/StarknetContractCreationDetails'
description: Details of the Starknet transaction based on its type.
discriminator:
propertyName: type
mapping:
contract_deployment: '#/components/schemas/StarknetContractCreationDetails'
erc20_transfer: '#/components/schemas/StarknetErc20TransferDetails'
native_transfer: '#/components/schemas/StarknetNativeTransferDetails'
raw_transaction: '#/components/schemas/StarknetRawTransactionDetails'
call_data:
items:
$ref: '#/components/schemas/StarknetCallData'
type: array
title: Call Data
description: The call data of the transaction.
chain:
$ref: '#/components/schemas/EnrichedStarknetChain'
description: The details of the chain this transaction is on.
nonce:
title: Nonce
description: The nonce of the transaction.
type: integer
sender:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The sender of the transaction.
hash:
title: Hash
description: The hash of the transaction.
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
example: '0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74'
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/StarknetTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/StarknetTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, starkscan.co
example: https://voyager.online/tx/0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74
type: string
maxLength: 2083
minLength: 1
format: uri
fee_details:
description: The details of the fee of the transaction.
$ref: '#/components/schemas/StarknetFeeDetails'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- starknet_transaction_type_details
- call_data
- chain
- sender
title: StarknetTransaction
RejectedTransactionSummary:
properties:
safe_hash:
type: string
title: Safe Hash
description: The Safe transaction hash being rejected.
to:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The target address of the rejected transaction.
value:
type: string
pattern: ^-?\d+$
title: Value
description: The value of the rejected transaction.
example: '1000000000000000000'
method:
title: Method
description: The method of the rejected transaction.
type: string
confirmations:
type: integer
title: Confirmations
description: Current number of confirmations.
confirmations_required:
type: integer
title: Confirmations Required
description: Required number of confirmations.
type: object
required:
- safe_hash
- to
- value
- confirmations
- confirmations_required
title: RejectedTransactionSummary
EnrichedEvmAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: evm
title: Type
address:
type: string
maxLength: 42
minLength: 42
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The EVM address.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
contract:
description: The contract details corresponding to this address.
$ref: '#/components/schemas/EvmContractMetadata'
type: object
required:
- type
- address
title: EnrichedEvmAddress
SuiMakeMoveVecCommand:
properties:
type:
type: string
const: make_move_vec
title: Type
description: The type of the command.
type_tag:
title: Type Tag
description: The type of the values in the vector.
type: string
objects:
items:
$ref: '#/components/schemas/SuiCommandArgument'
type: array
title: Objects
description: The values to put in the vector.
type: object
required:
- type
- objects
title: SuiMakeMoveVecCommand
description: Given n-values of the same type, it constructs a vector.
SolanaSpotSwapFeeRequest:
properties:
type:
type: string
const: solana
title: Type
description: Solana fee type.
details:
oneOf:
- $ref: '#/components/schemas/SolanaPriorityFeeTypeRequest'
- $ref: '#/components/schemas/SolanaJitoFeeTypeRequest'
description: The fee configuration for the transaction, including broadcast mode selection.
discriminator:
propertyName: type
mapping:
jito: '#/components/schemas/SolanaJitoFeeTypeRequest'
priority_fee: '#/components/schemas/SolanaPriorityFeeTypeRequest'
type: object
required:
- type
- details
title: SolanaSpotSwapFeeRequest
PushableTransactionState:
type: string
enum:
- waiting_for_approval
- waiting_for_signing_trigger
- approved
- finalized_for_signing
- signed
- pushed_to_blockchain
- mined
- completed
- aborted
- error_pushing_to_blockchain
- mined_reverted
- completed_reverted
- error_signing
- stuck
- dropped
- queued
- accelerating
- canceling
- accelerated
- cancelled
- insufficient_funds
title: PushableTransactionState
StellarRawTransactionDetails:
properties:
type:
type: string
const: raw_transaction
title: Type
description: A raw Stellar transaction containing arbitrary operations provided as XDR.
recipient:
description: The recipient of the transaction.
$ref: '#/components/schemas/EnrichedStellarAddress'
type: object
required:
- type
title: StellarRawTransactionDetails
CantonAssetIdentifier:
properties:
type:
type: string
const: canton
title: Type
description: Canton asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/CantonNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/CantonCip56TokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
cip56_token: '#/components/schemas/CantonCip56TokenAssetIdentifierRequest'
native: '#/components/schemas/CantonNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedCantonChain'
type: object
required:
- type
- details
- chain
title: CantonAssetIdentifier
EvmBridgeEffect:
properties:
bridge_name:
type: string
title: Bridge Name
description: The name of the bridge.
source:
description: The source details of the bridge transaction.
oneOf:
- $ref: '#/components/schemas/EvmBridgeEffectSourceNative'
- $ref: '#/components/schemas/EvmBridgeEffectSourceErc20'
discriminator:
propertyName: type
mapping:
erc20: '#/components/schemas/EvmBridgeEffectSourceErc20'
native: '#/components/schemas/EvmBridgeEffectSourceNative'
destination:
oneOf:
- $ref: '#/components/schemas/EvmBridgeEffectKnownDestination'
- $ref: '#/components/schemas/EvmBridgeEffectUnknownDestination'
description: The destination details of the bridge transaction.
discriminator:
propertyName: type
mapping:
known_target_chain: '#/components/schemas/EvmBridgeEffectKnownDestination'
unknown_target_chain: '#/components/schemas/EvmBridgeEffectUnknownDestination'
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the bridge transaction.
example: '1000000000000000000'
type: object
required:
- bridge_name
- destination
- amount
title: EvmBridgeEffect
ArchAssetIdentifierRequest:
properties:
type:
type: string
const: arch
title: Type
description: Arch asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/ArchNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/ArchAplTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
apl_token: '#/components/schemas/ArchAplTokenAssetIdentifierRequest'
native: '#/components/schemas/ArchNativeAssetIdentifierRequest'
type: object
required:
- type
- details
title: ArchAssetIdentifierRequest
ContactRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the address book contact in the Fordefi platform.
name:
type: string
title: Name
description: The name of the contact.
address_ref:
oneOf:
- $ref: '#/components/schemas/AptosAddressBookContactAddressRef'
- $ref: '#/components/schemas/ArchAddressBookContactAddressRef'
- $ref: '#/components/schemas/CantonAddressBookContactAddressRef'
- $ref: '#/components/schemas/CosmosAddressBookContactAddressRef'
- $ref: '#/components/schemas/EVMAddressBookContactAddressRef'
- $ref: '#/components/schemas/SolanaAddressBookContactAddressRef'
- $ref: '#/components/schemas/StacksAddressBookContactAddressRef'
- $ref: '#/components/schemas/StarknetAddressBookContactAddressRef'
- $ref: '#/components/schemas/StellarAddressBookContactAddressRef'
- $ref: '#/components/schemas/SuiAddressBookContactAddressRef'
- $ref: '#/components/schemas/TonAddressBookContactAddressRef'
- $ref: '#/components/schemas/TronAddressBookContactAddressRef'
- $ref: '#/components/schemas/UtxoAddressBookContactAddressRef'
discriminator:
propertyName: chain_type
mapping:
aptos: '#/components/schemas/AptosAddressBookContactAddressRef'
arch: '#/components/schemas/ArchAddressBookContactAddressRef'
canton: '#/components/schemas/CantonAddressBookContactAddressRef'
cosmos: '#/components/schemas/CosmosAddressBookContactAddressRef'
evm: '#/components/schemas/EVMAddressBookContactAddressRef'
solana: '#/components/schemas/SolanaAddressBookContactAddressRef'
stacks: '#/components/schemas/StacksAddressBookContactAddressRef'
starknet: '#/components/schemas/StarknetAddressBookContactAddressRef'
stellar: '#/components/schemas/StellarAddressBookContactAddressRef'
sui: '#/components/schemas/SuiAddressBookContactAddressRef'
ton: '#/components/schemas/TonAddressBookContactAddressRef'
tron: '#/components/schemas/TronAddressBookContactAddressRef'
utxo: '#/components/schemas/UtxoAddressBookContactAddressRef'
type: object
required:
- id
- name
- address_ref
title: ContactRef
description: Represents a reference to an address book contact in the Fordefi platform.
StacksNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Stacks asset identifier type.
chain:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: StacksNativeAssetIdentifierRequest
EvmBridgeEffectUnknownDestination:
properties:
type:
type: string
const: unknown_target_chain
title: Type
description: The type of the effect destination.
dest_address:
title: Dest Address
description: The destination address of the bridge transaction.
type: string
dest_chain:
type: string
title: Dest Chain
description: The destination chain of the bridge transaction.
type: object
required:
- type
- dest_chain
title: EvmBridgeEffectUnknownDestination
SolanaEnrichedMessageAddressTableLookup:
properties:
account_key:
$ref: '#/components/schemas/SolanaAddress'
description: The address of the lookup table.
writable_indexes:
items:
type: integer
type: array
title: Writable Indexes
description: Indexes of writable accounts in the lookup table.
readonly_indexes:
items:
type: integer
type: array
title: Readonly Indexes
description: Indexes of read-only accounts in the lookup table.
state:
$ref: '#/components/schemas/AddressLookupTableState'
description: The state of the lookup table.
type: object
required:
- account_key
- writable_indexes
- readonly_indexes
- state
title: SolanaEnrichedMessageAddressTableLookup
StellarChainUniqueId:
type: string
enum:
- stellar_mainnet
title: StellarChainUniqueId
TokenTransferDetails:
properties:
type:
type: string
const: token_transfer
title: Type
description: A transaction involving the transfer of a token from one address to another.
direction:
description: The direction of funds movement, in case of a transfer.
deprecated: true
$ref: '#/components/schemas/TransferDirection'
recipient:
$ref: '#/components/schemas/EnrichedEvmAddress'
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- recipient
title: TokenTransferDetails
StacksTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: StacksTransferEffect
CosmosTokenTransferDetails:
properties:
transaction_data:
$ref: '#/components/schemas/MessagesList'
description: List of transaction's messages.
sender:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The sender.
recipient:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The recipient.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type:
type: string
const: token_transfer
title: Type
description: A transaction involving a token transfer from one address to another.
type: object
required:
- transaction_data
- sender
- recipient
- type
title: CosmosTokenTransferDetails
StdFee:
properties:
coins:
items:
$ref: '#/components/schemas/CosmosCoinWithAmount'
type: array
title: Coins
gas:
type: string
pattern: ^-?\d+$
title: Gas
description: The gas amount.
example: '1000000000000000000'
payer:
description: The payer.
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
granter:
description: The granter.
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
fee_payer:
description: The fee payer.
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
type: object
required:
- coins
- gas
title: StdFee
TransactionSpamState:
type: string
enum:
- unset
- manually_set
- automatically_set
title: TransactionSpamState
AptosReversion:
properties:
state:
$ref: '#/components/schemas/AptosReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: AptosReversion
StellarNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Stellar asset identifier type.
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain of the native asset.
type: object
required:
- type
- chain
title: StellarNativeAssetIdentifierRequest
ApprovalRequestGroup:
properties:
quorum_size:
type: integer
title: Quorum Size
description: The number of approvers required to approve the transaction.
approvers:
items:
$ref: '#/components/schemas/RequestApprover'
type: array
title: Approvers
description: A list of the possible approvers.
type: object
required:
- quorum_size
- approvers
title: ApprovalRequestGroup
AssetIdentifier:
oneOf:
- $ref: '#/components/schemas/AptosAssetIdentifier'
- $ref: '#/components/schemas/ArchAssetIdentifier'
- $ref: '#/components/schemas/CantonAssetIdentifier'
- $ref: '#/components/schemas/CosmosAssetIdentifier'
- $ref: '#/components/schemas/EvmAssetIdentifier'
- $ref: '#/components/schemas/ExchangeAssetIdentifier'
- $ref: '#/components/schemas/SolanaAssetIdentifier'
- $ref: '#/components/schemas/StacksAssetIdentifier'
- $ref: '#/components/schemas/StellarAssetIdentifier'
- $ref: '#/components/schemas/StarknetAssetIdentifier'
- $ref: '#/components/schemas/SuiAssetIdentifier'
- $ref: '#/components/schemas/TonAssetIdentifier'
- $ref: '#/components/schemas/TronAssetIdentifier'
- $ref: '#/components/schemas/UtxoAssetIdentifier'
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/AptosAssetIdentifier'
arch: '#/components/schemas/ArchAssetIdentifier'
canton: '#/components/schemas/CantonAssetIdentifier'
cosmos: '#/components/schemas/CosmosAssetIdentifier'
evm: '#/components/schemas/EvmAssetIdentifier'
exchange: '#/components/schemas/ExchangeAssetIdentifier'
solana: '#/components/schemas/SolanaAssetIdentifier'
stacks: '#/components/schemas/StacksAssetIdentifier'
starknet: '#/components/schemas/StarknetAssetIdentifier'
stellar: '#/components/schemas/StellarAssetIdentifier'
sui: '#/components/schemas/SuiAssetIdentifier'
ton: '#/components/schemas/TonAssetIdentifier'
tron: '#/components/schemas/TronAssetIdentifier'
utxo: '#/components/schemas/UtxoAssetIdentifier'
BaseBridgeUnknownDestination:
properties:
type:
type: string
const: unknown_target_chain
title: Type
address_repr:
type: string
title: Address Repr
description: The destination address of the bridge transaction.
chain_repr:
type: string
title: Chain Repr
description: The destination chain of the bridge transaction.
type: object
required:
- type
- address_repr
- chain_repr
title: BaseBridgeUnknownDestination
StarknetReversion:
properties:
state:
$ref: '#/components/schemas/StarknetReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: StarknetReversion
StarknetAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: starknet
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address on the Starknet chain.
example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
chains:
items:
$ref: '#/components/schemas/StarknetChain'
type: array
title: Chains
description: The chains the contact belongs to.
type: object
required:
- chain_type
- address
- chains
title: StarknetAddressBookContactAddressRef
AmlPolicyMatchOutgoing:
properties:
is_default:
type: boolean
title: Is Default
description: '`True` if this is the default rule, `False` otherwise.'
rule_id:
type: string
format: uuid
title: Rule Id
description: The unique identifier of the rule.
rule_name:
type: string
title: Rule Name
description: The name of the rule.
action_type:
$ref: '#/components/schemas/AmlPolicyMatchOutgoingActionType'
description: 'The action taken in the event of a policy match. Can be: - Allow automatically
- Block
- Require express approval
- Skip
'
type: object
required:
- is_default
- rule_id
- rule_name
- action_type
title: AmlPolicyMatchOutgoing
EnrichedSolanaAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: solana
title: Type
address:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The Solana address represented in Base58 format.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
contract:
description: The details of the contract corresponding to this address.
$ref: '#/components/schemas/SolanaContractMetadata'
type: object
required:
- type
- address
title: EnrichedSolanaAddress
SolanaPriorityFeeRequest:
properties:
type:
type: string
const: priority
title: Type
priority_level:
$ref: '#/components/schemas/FeePriorityLevelRequest'
description: 'Using the Fee Priority option, you allocate the range of fee you are willing to add: low, medium, or high. Fordefi then does its best to achieve success, based on these parameters.'
type: object
required:
- type
- priority_level
title: SolanaPriorityFeeRequest
BlackBoxSignatureEcdsaStarkDetails:
properties:
type:
type: string
const: ecdsa_stark
title: Type
description: ECDSA over the Stark curve signature.
signature:
description: The ECDSA signature over the Stark curve.
$ref: '#/components/schemas/EcdsaSignature'
hash_binary:
type: string
minLength: 1
title: Hash Binary
description: 'The payload to sign, encoded in base64 format. '
example: SGVsbG8=
type: object
required:
- type
- hash_binary
title: BlackBoxSignatureEcdsaStarkDetails
StacksAssetIdentifier:
properties:
type:
type: string
const: stacks
title: Type
description: Stacks asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StacksNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StacksSip10AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/StacksNativeAssetIdentifierRequest'
sip10: '#/components/schemas/StacksSip10AssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedStacksChain'
type: object
required:
- type
- details
- chain
title: StacksAssetIdentifier
CantonPreApprovalSetupDetails:
properties:
type:
type: string
const: pre_approval_setup
title: Type
description: A transaction that sets up a transfer pre-approval for auto-accepting incoming transfers.
asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset this pre-approval applies to.
type: object
required:
- type
- asset
title: CantonPreApprovalSetupDetails
JitoPriorityFeeRequest:
properties:
type:
type: string
const: priority
title: Type
priority_level:
$ref: '#/components/schemas/FeePriorityLevelRequest'
description: 'Using the Jito Priority option, you allocate the range of tip you are willing to add: low (50% of landed tip amounts), medium (75%), or high (95%). Fordefi then does its best to achieve success with Jito, based on these parameters.'
type: object
required:
- type
- priority_level
title: JitoPriorityFeeRequest
TronChain:
properties:
chain_type:
type: string
const: tron
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/TronChainUniqueId'
description: The type of the Tron-based chain.
type: object
required:
- chain_type
- unique_id
title: TronChain
RiskRating:
type: string
enum:
- low
- medium
- high
- severe
title: RiskRating
CosmosBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: CosmosBalanceChangeEffect
DlcDataResponse:
properties:
dlc_transaction_type:
$ref: '#/components/schemas/UtxoDlcTransactionType'
funding_transaction_id:
type: string
format: uuid
title: Funding Transaction Id
refund_transaction_id:
type: string
format: uuid
title: Refund Transaction Id
cet_transaction_ids:
items:
type: string
format: uuid
type: array
title: Cet Transaction Ids
adaptor_point:
title: Adaptor Point
type: string
pattern: ^0[xX][a-fA-F0-9]+$
type: object
required:
- dlc_transaction_type
- funding_transaction_id
- refund_transaction_id
- cet_transaction_ids
title: DlcDataResponse
AptosAssetIdentifierRequest:
properties:
type:
type: string
const: aptos
title: Type
description: Aptos asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/AptosNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/AptosCoinAssetIdentifierRequest'
- $ref: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
coin: '#/components/schemas/AptosCoinAssetIdentifierRequest'
native: '#/components/schemas/AptosNativeAssetIdentifierRequest'
new_coin: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
type: object
required:
- type
- details
title: AptosAssetIdentifierRequest
SolanaMessageType:
type: string
enum:
- personal_message_type
- create_session_message_type
title: SolanaMessageType
SuiAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: sui
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address on the Sui chain.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
chains:
items:
$ref: '#/components/schemas/SuiChain'
type: array
title: Chains
description: The chains the contact belongs to.
type: object
required:
- chain_type
- address
- chains
title: SuiAddressBookContactAddressRef
ExchangeBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedAddress'
description: The address affected by the balance change or vault in case of an exchange vault.
type: object
required:
- priced_asset
- diff
- address
title: ExchangeBalanceChangeEffect
AllowanceDetails:
properties:
type:
type: string
const: allowance
title: Type
description: 'A transaction involving an allowance. '
spender:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
required:
- type
- spender
title: AllowanceDetails
PredictSwapErrorType:
type: string
enum:
- revoke_allowance_first
- quote_not_found
- transaction_uses_secure_node
title: PredictSwapErrorType
StarknetErc20AssetIdentifierRequest:
properties:
type:
type: string
const: erc20
title: Type
description: Erc20 asset identifier type.
erc20:
$ref: '#/components/schemas/StarknetAddressRequest'
description: The Erc20 details.
type: object
required:
- type
- erc20
title: StarknetErc20AssetIdentifierRequest
StarknetTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: StarknetTransferEffect
UtxoDlcTransactionType:
type: string
enum:
- FUNDING_TRANSACTION
- REFUND_TRANSACTION
- CET_TRANSACTION
title: UtxoDlcTransactionType
SolanaUnitPrices:
properties:
limit:
type: string
pattern: ^\d+$
title: Limit
description: The compute unit limit.
example: '1000000000000000000'
low:
type: string
pattern: ^\d+$
title: Low
description: The low suggested fee per byte, denominated in microlamports.
example: '1000000000000000000'
medium:
type: string
pattern: ^\d+$
title: Medium
description: The medium suggested fee per byte, denominated in microlamports.
example: '1000000000000000000'
high:
type: string
pattern: ^\d+$
title: High
description: The high suggested fee per byte, denominated in microlamports.
example: '1000000000000000000'
type: object
required:
- limit
- low
- medium
- high
title: SolanaUnitPrices
ExchangeChainUniqueId:
type: string
enum:
- exchange_binance
- exchange_bybit
- exchange_coinbase_international
- exchange_coinbase_us
- exchange_okx
- exchange_kraken
title: ExchangeChainUniqueId
EnrichedCosmosBechAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: cosmos
title: Type
address:
$ref: '#/components/schemas/CosmosBechAddress'
description: The Bech32 address.
type: object
required:
- type
- address
title: EnrichedCosmosBechAddress
SolanaTransactionAccount:
properties:
address:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The address of the account.
writable:
type: boolean
title: Writable
description: Indicates if this account is writable in the context of the transaction.
signer:
type: boolean
title: Signer
description: Indicates if this account is a signer of the transaction.
type: object
required:
- address
- writable
- signer
title: SolanaTransactionAccount
SignerInfo:
properties:
signer_address:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The address of the signer (in bech32 format).
public_key:
type: string
pattern: ^[a-fA-F0-9]+$
title: Public Key
description: Public key in its compressed format
account:
type: string
pattern: ^-?\d+$
title: Account
description: The account number assigned by the chain.
example: '1000000000000000000'
sequence:
type: string
pattern: ^-?\d+$
title: Sequence
description: The sequence of this transaction.
example: '1000000000000000000'
type: object
required:
- signer_address
- public_key
- account
- sequence
title: SignerInfo
TonAccountRepr:
properties:
chain_type:
type: string
const: ton
title: Chain Type
description: The type of the chain.
address:
type: string
title: Address
description: The address of the TON contract in any format.
type: object
required:
- chain_type
- address
title: TonAccountRepr
SolanaNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: 'A transaction involving the transfer of native currency from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the tokens.
recipient:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The recipient of the tokens.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: SolanaNativeTransferDetails
CantonAssetIdentifierRequest:
properties:
type:
type: string
const: canton
title: Type
description: Canton asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/CantonNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/CantonCip56TokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
cip56_token: '#/components/schemas/CantonCip56TokenAssetIdentifierRequest'
native: '#/components/schemas/CantonNativeAssetIdentifierRequest'
type: object
required:
- type
- details
title: CantonAssetIdentifierRequest
SplToken:
properties:
type:
type: string
const: spl_token
title: Type
description: The type of the token
address:
$ref: '#/components/schemas/SolanaAddress'
description: The token address
name:
type: string
title: Name
description: The token name
symbol:
type: string
title: Symbol
description: The token symbol or ticker
decimals:
type: integer
title: Decimals
description: The token decimals
logo_url:
title: Logo Url
description: The token logo url
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- type
- address
- name
- symbol
- decimals
title: SplToken
TronTokenTransferDetails:
properties:
type:
type: string
const: token_transfer
title: Type
description: A transaction involving the transfer of an sip10 asset from one address to another.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: TronTokenTransferDetails
TonTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: TonTransferEffect
CantonChain:
properties:
chain_type:
type: string
const: canton
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/CantonChainUniqueId'
description: The type of the Canton chain.
type: object
required:
- chain_type
- unique_id
title: CantonChain
EnrichedChain:
oneOf:
- $ref: '#/components/schemas/EnrichedAptosChain'
- $ref: '#/components/schemas/EnrichedArchChain'
- $ref: '#/components/schemas/EnrichedCantonChain'
- $ref: '#/components/schemas/EnrichedCosmosChain'
- $ref: '#/components/schemas/EnrichedEvmChain'
- $ref: '#/components/schemas/EnrichedExchangeChain'
- $ref: '#/components/schemas/EnrichedSolanaChain'
- $ref: '#/components/schemas/EnrichedStacksChain'
- $ref: '#/components/schemas/EnrichedStarknetChain'
- $ref: '#/components/schemas/EnrichedStellarChain'
- $ref: '#/components/schemas/EnrichedSuiChain'
- $ref: '#/components/schemas/EnrichedTonChain'
- $ref: '#/components/schemas/EnrichedTronChain'
- $ref: '#/components/schemas/EnrichedUtxoChain'
description: A blockchain with metadata.
discriminator:
propertyName: chain_type
mapping:
aptos: '#/components/schemas/EnrichedAptosChain'
arch: '#/components/schemas/EnrichedArchChain'
canton: '#/components/schemas/EnrichedCantonChain'
cosmos: '#/components/schemas/EnrichedCosmosChain'
evm: '#/components/schemas/EnrichedEvmChain'
exchange: '#/components/schemas/EnrichedExchangeChain'
solana: '#/components/schemas/EnrichedSolanaChain'
stacks: '#/components/schemas/EnrichedStacksChain'
starknet: '#/components/schemas/EnrichedStarknetChain'
stellar: '#/components/schemas/EnrichedStellarChain'
sui: '#/components/schemas/EnrichedSuiChain'
ton: '#/components/schemas/EnrichedTonChain'
tron: '#/components/schemas/EnrichedTronChain'
utxo: '#/components/schemas/EnrichedUtxoChain'
MessagesList:
oneOf:
- $ref: '#/components/schemas/AminoMessagesList'
- $ref: '#/components/schemas/DirectMessagesList'
- $ref: '#/components/schemas/MinedMessagesList'
discriminator:
propertyName: format
mapping:
amino: '#/components/schemas/AminoMessagesList'
direct: '#/components/schemas/DirectMessagesList'
mined: '#/components/schemas/MinedMessagesList'
TronAddressRequest:
properties:
chain:
$ref: '#/components/schemas/TronChainUniqueId'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 34
minLength: 34
pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
type: object
required:
- chain
- base58_repr
title: TronAddressRequest
description: Address represents a blockchain address.
SuiFundsWithdrawalArgument:
properties:
type:
type: string
const: funds_withdrawal
title: Type
description: The type of the input argument.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount to reserve from the accumulator (MIST for SUI, smallest unit for other coins).
example: '1000000000000000000'
coin_type:
$ref: '#/components/schemas/SuiCoinType'
description: The coin type being reserved.
source:
$ref: '#/components/schemas/SuiFundsWithdrawalSource'
description: Which address-balance the funds come from.
type: object
required:
- type
- amount
- coin_type
- source
title: SuiFundsWithdrawalArgument
description: 'SIP-58 input that reserves Balance from the sender or sponsor''s
address-balance accumulator. Paired with `0x2::coin::redeem_funds`
to produce a Coin.'
StacksSuggestedFees:
properties:
type:
type: string
const: stacks
title: Type
description: The type of the chain.
low:
type: string
pattern: ^\d+$
title: Low
description: The low suggested total fee.
example: '1000000000000000000'
medium:
type: string
pattern: ^\d+$
title: Medium
description: The medium suggested total fee.
example: '1000000000000000000'
high:
type: string
pattern: ^\d+$
title: High
description: The high suggested total fee.
example: '1000000000000000000'
chain_unique_id:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The Stacks chain unique id.
type: object
required:
- type
- low
- medium
- high
- chain_unique_id
title: StacksSuggestedFees
CantonBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedCantonAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: CantonBalanceChangeEffect
PredictedCantonTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: canton_transaction
title: Type
description: Canton transaction type.
canton_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/CantonNativeTransferDetails'
- $ref: '#/components/schemas/CantonTokenTransferDetails'
- $ref: '#/components/schemas/CantonPartyAllocationDetails'
- $ref: '#/components/schemas/CantonApproveTransferDetails'
- $ref: '#/components/schemas/CantonPreApprovalSetupDetails'
description: Details of the Canton transaction based on its type.
discriminator:
propertyName: type
mapping:
approve_transfer: '#/components/schemas/CantonApproveTransferDetails'
native_transfer: '#/components/schemas/CantonNativeTransferDetails'
party_allocation: '#/components/schemas/CantonPartyAllocationDetails'
pre_approval_setup: '#/components/schemas/CantonPreApprovalSetupDetails'
token_transfer: '#/components/schemas/CantonTokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedCantonChain'
description: The chain this transaction is on.
sender:
$ref: '#/components/schemas/EnrichedCantonAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the assets.
$ref: '#/components/schemas/EnrichedCantonAddress'
expected_result:
$ref: '#/components/schemas/CantonTransactionResult'
description: The expected result of the transaction.
memo:
title: Memo
description: The memo attached to this Canton transaction, if any.
type: string
type: object
required:
- matched_policies
- risks
- type
- canton_transaction_type_details
- chain
- sender
- expected_result
title: PredictedCantonTransaction
AptosChain:
properties:
chain_type:
type: string
const: aptos
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The type of the Aptos-based chain.
type: object
required:
- chain_type
- unique_id
title: AptosChain
SolanaChain:
properties:
chain_type:
type: string
const: solana
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The type of the Solana-based chain.
type: object
required:
- chain_type
- unique_id
title: SolanaChain
StacksContractCallPayload:
properties:
contract_address:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The address of the contract to call.
contract_name:
type: string
title: Contract Name
description: The name of the contract being called.
function_name:
type: string
title: Function Name
description: The name of the function to call.
function_arguments:
items:
type: string
type: array
title: Function Arguments
description: The arguments of the function to call.
type: object
required:
- contract_address
- contract_name
- function_name
- function_arguments
title: StacksContractCallPayload
TonSuggestedFees:
properties:
type:
type: string
const: ton
title: Type
description: The type of the chain.
chain_unique_id:
$ref: '#/components/schemas/TonChainUniqueId'
description: The Ton chain unique id.
gas_price:
type: string
pattern: ^\d+$
title: Gas Price
description: The Current gas price in basechain in nanotons.
example: '1000000000000000000'
type: object
required:
- type
- chain_unique_id
- gas_price
title: TonSuggestedFees
AssetIdentifierRequest:
oneOf:
- $ref: '#/components/schemas/AptosAssetIdentifierRequest'
- $ref: '#/components/schemas/ArchAssetIdentifierRequest'
- $ref: '#/components/schemas/CantonAssetIdentifierRequest'
- $ref: '#/components/schemas/CosmosAssetIdentifierRequest'
- $ref: '#/components/schemas/EvmAssetIdentifierRequest'
- $ref: '#/components/schemas/ExchangeAssetIdentifierRequest'
- $ref: '#/components/schemas/SolanaAssetIdentifierRequest'
- $ref: '#/components/schemas/StacksAssetIdentifierRequest'
- $ref: '#/components/schemas/StellarAssetIdentifierRequest'
- $ref: '#/components/schemas/StarknetAssetIdentifierRequest'
- $ref: '#/components/schemas/SuiAssetIdentifierRequest'
- $ref: '#/components/schemas/TonAssetIdentifierRequest'
- $ref: '#/components/schemas/TronAssetIdentifierRequest'
- $ref: '#/components/schemas/UtxoAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/AptosAssetIdentifierRequest'
arch: '#/components/schemas/ArchAssetIdentifierRequest'
canton: '#/components/schemas/CantonAssetIdentifierRequest'
cosmos: '#/components/schemas/CosmosAssetIdentifierRequest'
evm: '#/components/schemas/EvmAssetIdentifierRequest'
exchange: '#/components/schemas/ExchangeAssetIdentifierRequest'
solana: '#/components/schemas/SolanaAssetIdentifierRequest'
stacks: '#/components/schemas/StacksAssetIdentifierRequest'
starknet: '#/components/schemas/StarknetAssetIdentifierRequest'
stellar: '#/components/schemas/StellarAssetIdentifierRequest'
sui: '#/components/schemas/SuiAssetIdentifierRequest'
ton: '#/components/schemas/TonAssetIdentifierRequest'
tron: '#/components/schemas/TronAssetIdentifierRequest'
utxo: '#/components/schemas/UtxoAssetIdentifierRequest'
ActionSigner:
properties:
user:
$ref: '#/components/schemas/UserRef'
description: Possible signer user
modified_at:
type: string
format: date-time
title: Modified At
description: When the signer received/signed the action
has_signed:
type: boolean
title: Has Signed
description: Whether the signer signed the action
type: object
required:
- user
- modified_at
- has_signed
title: ActionSigner
description: Represents a single signer in an action
UtxoNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Utxo asset identifier type.
chain:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The unique id of the chain of the asset.
type: object
required:
- type
- chain
title: UtxoNativeAssetIdentifierRequest
SuiCoinTransferDetails:
properties:
type:
type: string
const: coin_transfer
title: Type
description: 'A transaction involving the transfer of non-SUI coin from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the coins.
recipient:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The recipient of the coins.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: SuiCoinTransferDetails
CosmosNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Cosmos asset identifier type.
chain:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The unique id of the chain of the asset.
type: object
required:
- type
- chain
title: CosmosNativeAssetIdentifierRequest
ValidationError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
items:
$ref: '#/components/schemas/ValidationErrorDetail'
type: array
title: Detail
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
type: object
required:
- title
- detail
title: ValidationError
SuiCommandNestedResultArgument:
properties:
type:
type: string
const: nested_result
title: Type
description: The type of the command argument.
index:
type: integer
title: Index
description: The index of the command in the command vector.
result_index:
type: integer
title: Result Index
description: The index of the result in the result vector of that command.
type: object
required:
- type
- index
- result_index
title: SuiCommandNestedResultArgument
description: Like a `SuiCommandResultArgument` but it accesses a nested result.
StellarTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/StellarReversion'
description: Details whether the transaction was reverted or not.
fee:
$ref: '#/components/schemas/StellarFee'
description: The fee of the transaction.
effects:
$ref: '#/components/schemas/StellarEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- fee
- effects
title: StellarTransactionResult
DirectMessage:
properties:
type:
type: string
title: Type
description: Message type.
value:
type: string
title: Value
description: Message bytes, encoded in base64 format.
example: SGVsbG8=
type: object
required:
- type
- value
title: DirectMessage
HyperliquidUsdSendAction:
properties:
action_type:
type: string
const: usd_send
title: Action Type
description: The Hyperliquid action type.
destination:
type: string
title: Destination
description: Recipient hex address.
amount:
type: string
pattern: ^\d+(\.\d+)?$
title: Amount
description: Transfer amount as a decimal string.
example: '1000000000000000000'
time:
type: integer
title: Time
description: Unix timestamp in milliseconds used as a nonce by Hyperliquid.
type: object
required:
- action_type
- destination
- amount
- time
title: HyperliquidUsdSendAction
description: Transfer USD between Hyperliquid accounts.
ArchTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/ArchReversion'
description: Details whether the transaction was reverted or not.
transaction_error:
title: Transaction Error
description: The description of the error of the transaction.
type: string
fee:
$ref: '#/components/schemas/ArchFee'
description: The fee of the transaction.
effects:
$ref: '#/components/schemas/ArchEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- fee
- effects
title: ArchTransactionResult
EvmBridgeEffectSourceErc20:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
type:
type: string
const: erc20
title: Type
description: The type of bridge effect.
source_address:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The source address of the bridge transaction.
type: object
required:
- priced_asset
- type
- source_address
title: EvmBridgeEffectSourceErc20
AptosTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: AptosTransferEffect
SuiNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Sui asset identifier type.
chain:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: SuiNativeAssetIdentifierRequest
StacksPostConditionComparator:
type: string
enum:
- eq
- gt
- ge
- lt
- le
title: StacksPostConditionComparator
RelatedTransaction:
properties:
type:
$ref: '#/components/schemas/RelatedTransactionType'
description: The type of the related transaction.
hash:
title: Hash
description: The hash of the related transaction.
type: string
id:
title: Id
description: The id of the related transaction.
type: string
format: uuid
chain:
$ref: '#/components/schemas/EnrichedChain'
description: The chain identifier of the related transaction.
explorer_url:
title: Explorer Url
description: The URL of the related transaction in a blockchain explorer.
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- type
- chain
title: RelatedTransaction
PredictedUtxoTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: utxo_transaction
title: Type
description: The type of the transaction.
chain:
$ref: '#/components/schemas/EnrichedUtxoChain'
description: Details of the chain this transaction is on.
expected_result:
$ref: '#/components/schemas/UtxoTransactionResult'
description: The expected result of the transaction in case it is mined.
utxo_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/UtxoNativeTransferDetails'
- $ref: '#/components/schemas/UtxoPsbtDetails'
description: Details of the Utxo transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/UtxoNativeTransferDetails'
partially_signed_bitcoin_transaction: '#/components/schemas/UtxoPsbtDetails'
suggested_fees:
$ref: '#/components/schemas/UtxoSuggestedFees'
description: The suggested fees.
type: object
required:
- matched_policies
- risks
- type
- chain
- expected_result
- utxo_transaction_type_details
- suggested_fees
title: PredictedUtxoTransaction
CosmosMessageBase64Data:
properties:
type:
type: string
const: base64
title: Type
description: The type of the Cosmos message data.
data:
type: string
title: Data
description: The data encoded in base64.
example: SGVsbG8=
type: object
required:
- type
- data
title: CosmosMessageBase64Data
TonEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/TonBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/TonTransferEffect'
type: array
title: Transfers
type: object
required:
- balance_changes
- transfers
title: TonEffects
PricedAsset:
properties:
type:
type: string
const: asset_price
title: Type
asset_info:
$ref: '#/components/schemas/AssetInfo'
description: The asset info.
price:
description: The price of the asset (if it exists in the system).
$ref: '#/components/schemas/Price'
type: object
required:
- type
- asset_info
title: PricedAsset
EnrichedAddress:
oneOf:
- $ref: '#/components/schemas/EnrichedAptosAddress'
- $ref: '#/components/schemas/EnrichedArchAddress'
- $ref: '#/components/schemas/EnrichedCantonAddress'
- $ref: '#/components/schemas/EnrichedCosmosBechAddress'
- $ref: '#/components/schemas/EnrichedEvmAddress'
- $ref: '#/components/schemas/EnrichedExchangeAddress'
- $ref: '#/components/schemas/EnrichedSolanaAddress'
- $ref: '#/components/schemas/EnrichedStacksAddress'
- $ref: '#/components/schemas/EnrichedStarknetAddress'
- $ref: '#/components/schemas/EnrichedStellarAddress'
- $ref: '#/components/schemas/EnrichedSuiAddress'
- $ref: '#/components/schemas/EnrichedTonAddress'
- $ref: '#/components/schemas/EnrichedTronAddress'
- $ref: '#/components/schemas/EnrichedUtxoAddress'
discriminator:
propertyName: type
mapping:
aptos: '#/components/schemas/EnrichedAptosAddress'
arch: '#/components/schemas/EnrichedArchAddress'
canton: '#/components/schemas/EnrichedCantonAddress'
cosmos: '#/components/schemas/EnrichedCosmosBechAddress'
evm: '#/components/schemas/EnrichedEvmAddress'
exchange: '#/components/schemas/EnrichedExchangeAddress'
solana: '#/components/schemas/EnrichedSolanaAddress'
stacks: '#/components/schemas/EnrichedStacksAddress'
starknet: '#/components/schemas/EnrichedStarknetAddress'
stellar: '#/components/schemas/EnrichedStellarAddress'
sui: '#/components/schemas/EnrichedSuiAddress'
ton: '#/components/schemas/EnrichedTonAddress'
tron: '#/components/schemas/EnrichedTronAddress'
utxo: '#/components/schemas/EnrichedUtxoAddress'
StellarAssetIdentifier:
properties:
type:
type: string
const: stellar
title: Type
description: Stellar asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StellarNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StellarClassicAssetIdentifierRequest'
- $ref: '#/components/schemas/StellarSorobanAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
classic_asset: '#/components/schemas/StellarClassicAssetIdentifierRequest'
native: '#/components/schemas/StellarNativeAssetIdentifierRequest'
soroban_asset: '#/components/schemas/StellarSorobanAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedStellarChain'
type: object
required:
- type
- details
- chain
title: StellarAssetIdentifier
CantonTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/CantonReversion'
description: Details whether the transaction was reverted or not.
effects:
$ref: '#/components/schemas/CantonEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- effects
title: CantonTransactionResult
CantonEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/CantonBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/CantonTransferEffect'
type: array
title: Transfers
type: object
required:
- balance_changes
- transfers
title: CantonEffects
BlockchainExplorer:
properties:
transaction_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Transaction Url
example: https://etherscan.io/tx/
address_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Address Url
example: https://etherscan.io/address/
root_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Root Url
example: https://etherscan.io/
transaction_format_url:
title: Transaction Format Url
example: https://etherscan.io/tx/%s
type: string
maxLength: 2083
minLength: 1
format: uri
address_format_url:
title: Address Format Url
example: https://etherscan.io/address/%s
type: string
maxLength: 2083
minLength: 1
format: uri
asset_format_url:
title: Asset Format Url
example: https://etherscan.io/address/%s
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- transaction_url
- address_url
- root_url
title: BlockchainExplorer
description: A blockchain explorer entry point.
AptosEntryPointDetails:
properties:
type:
type: string
const: entry_point
title: Type
description: A transaction with an entry point function.
recipient:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The recipient of the coins.
type: object
required:
- type
- recipient
title: AptosEntryPointDetails
SuiPureByteArrayInput:
properties:
type:
type: string
const: byte_array_pure_input
title: Type
description: The type of the pure input.
value:
type: string
title: Value
description: The byte array value of the pure input argument, represented as a base64 string.
example: SGVsbG8=
type: object
required:
- type
- value
title: SuiPureByteArrayInput
SuiAssetIdentifierRequest:
properties:
type:
type: string
const: sui
title: Type
description: Sui asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/SuiNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/SuiCoinAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
coin: '#/components/schemas/SuiCoinAssetIdentifierRequest'
native: '#/components/schemas/SuiNativeAssetIdentifierRequest'
type: object
required:
- type
- details
title: SuiAssetIdentifierRequest
ExposureType:
type: string
enum:
- direct
- indirect
title: ExposureType
MevProtectedState:
type: string
enum:
- not_mev_protected
- mev_protected
title: MevProtectedState
ArchEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/ArchBalanceChangeEffect'
type: array
title: Balance Changes
description: The aggregated balance changes of addresses.
transfers:
items:
$ref: '#/components/schemas/ArchTransferEffect'
type: array
title: Transfers
description: The transfer events of the transaction.
type: object
required:
- balance_changes
- transfers
title: ArchEffects
EvmErc20AssetIdentifierRequest:
properties:
type:
type: string
const: erc20
title: Type
description: EVM asset identifier type.
token:
$ref: '#/components/schemas/EvmAddressRequest'
description: The ERC-20 token contract.
type: object
required:
- type
- token
title: EvmErc20AssetIdentifierRequest
ExchangeTransactionState:
type: string
enum:
- waiting_for_approval
- approved
- signed
- completed
- aborted
- error_signing
- error_submitting_to_exchange
- pending_exchange
- error_processing_by_exchange
title: ExchangeTransactionState
StarknetMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: starknet_message
title: Type
description: Starknet message type.
starknet_message_type:
$ref: '#/components/schemas/StarknetMessageType'
description: The type of the Starknet message.
raw_data:
type: string
title: Raw Data
description: The raw data of the message.
chain:
$ref: '#/components/schemas/EnrichedStarknetChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The sender of the message.
message_hash:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Message Hash
description: The hash of the message that was requested to be signed, in hex.
example: '0x0684532b069fb0ce7e22041538a1c5e4850aafae042c772393cd7d795b767c74'
starknet_signatures:
items:
type: string
type: array
title: Starknet Signatures
description: The signatures of the message in Starknet format.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- starknet_message_type
- raw_data
- chain
- sender
- message_hash
- starknet_signatures
title: StarknetMessage
PreconditionFailedError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
type: object
required:
- title
- detail
title: PreconditionFailedError
EvmTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/EvmReversion'
description: Details whether the transaction was reverted or not.
gas_debit:
$ref: '#/components/schemas/GasDebit'
description: The gas debit of the transaction.
effects:
$ref: '#/components/schemas/EvmEffects'
description: 'The effects (outcomes) of the transaction. A single transaction can have multiple effects, for example, a transferral of native funds: moving X ETH from Y to Z (here the effect will have a sender, receiver and amount). A more complex example is a transfer of a token, moving X USDC from X to Z (here, the effects are sender, receiver, amount, and token). '
type: object
required:
- reversion
- gas_debit
- effects
title: EvmTransactionResult
AminoMessage:
properties:
type:
type: string
title: Type
description: Message type.
value:
type: string
title: Value
description: Message value.
type: object
required:
- type
- value
title: AminoMessage
StacksSip10AssetIdentifierRequest:
properties:
type:
type: string
const: sip10
title: Type
description: Sip10 asset identifier type.
sip10:
$ref: '#/components/schemas/StacksAddressRequest'
description: The Sip10 details.
type: object
required:
- type
- sip10
title: StacksSip10AssetIdentifierRequest
SolanaAssetIdentifier:
properties:
type:
type: string
const: solana
title: Type
description: Solana asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
spl_token: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedSolanaChain'
type: object
required:
- type
- details
- chain
title: SolanaAssetIdentifier
StacksTokenTransferDetails:
properties:
type:
type: string
const: token_transfer
title: Type
description: A transaction involving the transfer of an sip10 asset from one address to another.
sender:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: StacksTokenTransferDetails
EvmAssetIdentifierRequest:
properties:
type:
type: string
const: evm
title: Type
description: Asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/EvmNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc20AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc721AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
erc1155: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
erc20: '#/components/schemas/EvmErc20AssetIdentifierRequest'
erc721: '#/components/schemas/EvmErc721AssetIdentifierRequest'
hyperliquid: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
native: '#/components/schemas/EvmNativeAssetIdentifierRequest'
type: object
required:
- type
- details
title: EvmAssetIdentifierRequest
SuiPureNumberInput:
properties:
type:
type: string
const: number_pure_input
title: Type
description: The type of the pure input.
value:
type: string
pattern: ^\d+$
title: Value
description: The number value of the pure input argument.
example: '1000000000000000000'
type: object
required:
- type
- value
title: SuiPureNumberInput
ExchangeEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/ExchangeBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/ExchangeTransferEffect'
type: array
title: Transfers
type: object
required:
- balance_changes
- transfers
title: ExchangeEffects
StdSignDoc:
properties:
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: The chain the transaction is signed on.
account_number:
type: string
pattern: ^-?\d+$
title: Account Number
description: The account number of the signer of the transaction.
example: '1000000000000000000'
sequence:
type: string
pattern: ^-?\d+$
title: Sequence
description: The sequence of the signer of the transaction.
example: '1000000000000000000'
timeout_height:
title: Timeout Height
description: The timeout height for the signed transaction.
type: string
pattern: ^-?\d+$
example: '1000000000000000000'
fee:
$ref: '#/components/schemas/StdFee'
description: The fee of the signed transaction.
messages:
$ref: '#/components/schemas/AminoMessagesList'
description: The messages of the signed transaction.
memo:
type: string
title: Memo
description: The memo of the signed transaction.
type: object
required:
- chain
- account_number
- sequence
- fee
- messages
- memo
title: StdSignDoc
SolanaTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: SolanaTransferEffect
StacksReversion:
properties:
state:
$ref: '#/components/schemas/StacksReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: StacksReversion
SuiTransferObjectsCommand:
properties:
type:
type: string
const: transfer_objects
title: Type
description: The type of the command.
objects:
items:
$ref: '#/components/schemas/SuiCommandArgument'
type: array
title: Objects
description: The objects to transfer.
address:
$ref: '#/components/schemas/SuiCommandArgument'
description: The destination address of the transfer.
type: object
required:
- type
- objects
- address
title: SuiTransferObjectsCommand
description: Transfer objects from one account to another.
CosmosKeyType:
type: string
enum:
- secp256k1
- ethsecp256k1
title: CosmosKeyType
UtxoAddressType:
type: string
enum:
- legacy
- p2sh
- segwit
- taproot
- merkleroot
title: UtxoAddressType
SuiCoinTypeRequest:
properties:
chain:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The chain details this address is of.
coin_type_str:
type: string
title: Coin Type Str
description: Coin type string representation.
type: object
required:
- chain
- coin_type_str
title: SuiCoinTypeRequest
description: Coin type represents a blockchain coin type.
FiatCurrencySymbol:
type: string
enum:
- usd
title: FiatCurrencySymbol
description: FiatCurrencySymbol
ArchRawTransactionDetails:
properties:
type:
type: string
const: raw_transaction
title: Type
description: A transaction capable of any operation.
recipients:
items:
$ref: '#/components/schemas/EnrichedArchAddress'
type: array
title: Recipients
description: The recipients of the tokens.
type: object
required:
- type
- recipients
title: ArchRawTransactionDetails
CosmosMessageStrData:
properties:
type:
type: string
const: string
title: Type
description: The type of the Cosmos message data.
data:
type: string
title: Data
description: The data as plain string.
type: object
required:
- type
- data
title: CosmosMessageStrData
EvmTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: 'The current status of the transaction. Can be one of the following: - `waiting_for_approval`: If a transaction has not been auto-approved, it waits in this state until it has received all the required approvals.
- `approved`: The transaction moves into this state on approval. Then, a notification is sent to the mobile device of the creator of the transaction for signing or to the API Signer (depending on the flow that was defined). The transaction remains in this state until it is signed.
- `pushed_to_blockchain`: Once signed, the transaction is pushed to the blockchain, awaiting mining. From that moment, control of the transaction passes from Fordefi to the blockchain. This status resolves into one of the following: `completed`, `reverted`, `stuck`.
- `completed`: The transaction was successfully mined into the blockchain.
- `reverted`: The transaction was mined into the blockchain and was then reverted.
- `stuck`: The transaction did not reach `completed` or `reverted` after 24 hours.
- `error_pushing_to_blockchain`: Failed to push the transaction to the blockchain.
- `aborted`: Either the transaction was not approved or the transaction was approved but the creator aborted the process.
For more information about statuses in the transaction lifecycle, see: [Transaction Lifecycle](https://docs.fordefi.com/docs/transaction-lifecycle). '
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
parent_transaction_id:
title: Parent Transaction Id
description: The unique identifier of the parent transaction. Parent and child transactions form in cases where a transaction become stuck and is then either canceled or accelerated. If, for example, the original transaction (`t1`) is the parent and the related, adjustment transaction is the child (`t2`), then relative to itself, the parent field of `t1` is `null` and the child field is `t2_id`. Compare with field `child_transaction_id`.
type: string
format: uuid
child_transaction_id:
title: Child Transaction Id
description: 'The unique identifier of the child transaction. Compare with field `parent_transaction_id`. Relative to itself, the parent field of transaction `t2` would aquire the identifier `t1_id` and the child field of `t2` would be `null`. '
type: string
format: uuid
is_cancelation:
type: boolean
title: Is Cancelation
description: '`True` if this transaction is a cancelation of a previous transaction, `False` otherwise. '
is_acceleration:
type: boolean
title: Is Acceleration
description: '`True` if this transaction is an acceleration of a previous transaction, `False` otherwise.'
type:
type: string
const: evm_transaction
title: Type
description: EVM transaction type.
evm_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/EvmNativeTransferDetails'
- $ref: '#/components/schemas/TokenTransferDetails'
- $ref: '#/components/schemas/AllowanceDetails'
- $ref: '#/components/schemas/ContractCallDetails'
- $ref: '#/components/schemas/ContractDeploymentDetails'
- $ref: '#/components/schemas/BridgeDetails'
- $ref: '#/components/schemas/SetCodeDetails'
description: Details of the EVM transaction based on its type.
discriminator:
propertyName: type
mapping:
allowance: '#/components/schemas/AllowanceDetails'
contract_call: '#/components/schemas/ContractCallDetails'
contract_deployment: '#/components/schemas/ContractDeploymentDetails'
cross_chain_bridge: '#/components/schemas/BridgeDetails'
native_transfer: '#/components/schemas/EvmNativeTransferDetails'
set_code: '#/components/schemas/SetCodeDetails'
token_transfer: '#/components/schemas/TokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedEvmChain'
description: The details of the chain this transaction is on.
from:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The sender of the transaction.
to:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address of the recipient of the transaction.
value:
type: string
pattern: ^\d+$
title: Value
description: The value of native currency sent with this transaction.
example: '1000000000000000000'
data:
type: string
title: Data
description: The data of the contract call, as a serialized method-call with its arguments, in Base64 format. See [data field format for transactions on Ethereum](https://ethereum.org/en/developers/docs/transactions/#the-data-field).
example: SGVsbG8=
hex_data:
title: Hex Data
description: The hex data of the contract call, as a serialized method-call with its arguments.
type: string
pattern: ^0[xX][a-fA-F0-9]+$
parsed_data:
$ref: '#/components/schemas/EvmTransactionParsedData'
description: The parsed data of the transaction.
hash:
title: Hash
description: The hash of the transaction.
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
nonce:
title: Nonce
description: The nonce of the transaction.
type: integer
expected_result:
description: The expected (simulated) result of the transaction.
$ref: '#/components/schemas/EvmTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/EvmTransactionResult'
gas_submitted:
oneOf:
- $ref: '#/components/schemas/LegacyGas'
- $ref: '#/components/schemas/DynamicGas'
description: The gas details submitted for the transaction.
discriminator:
propertyName: type
mapping:
dynamic: '#/components/schemas/DynamicGas'
legacy: '#/components/schemas/LegacyGas'
funding_for_transaction_id:
title: Funding For Transaction Id
description: Funding transaction ID.
type: string
format: uuid
funded_by_transaction_id:
title: Funded By Transaction Id
description: Funded transaction ID.
type: string
format: uuid
funded_by_vault:
description: Funding vault.
deprecated: true
$ref: '#/components/schemas/VaultRef'
current_preceding_pushed_to_blockchain_transaction_id:
title: Current Preceding Pushed To Blockchain Transaction Id
description: The unique identifier of the transaction that was pushed to the blockchain, In case this transaction is QUEUED.
type: string
format: uuid
use_secure_node:
title: Use Secure Node
description: '`True` if Fordefi sends this transaction through a secure node, `False` otherwise. By using a secure node, you avoid maximal extractable value (MEV) attacks.'
deprecated: true
type: boolean
use_mev_protected_node:
type: boolean
title: Use Mev Protected Node
description: '`True` if Fordefi sends this transaction through an MEV protected node, `False` otherwise. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer.
example: https://etherscan.io/tx/0x123
type: string
maxLength: 2083
minLength: 1
format: uri
raw_transaction:
title: Raw Transaction
description: The raw transaction data, encoded as a hex string.
type: string
pattern: ^0[xX][a-fA-F0-9]+$
fee_payer:
description: The address that pays the fee for this transaction (from address).
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- is_cancelation
- is_acceleration
- type
- evm_transaction_type_details
- chain
- from
- to
- value
- data
- parsed_data
- gas_submitted
- use_mev_protected_node
title: EvmTransaction
CreateSessionDetails:
properties:
type:
type: string
const: create_session_message_type
title: Type
description: The type of the Solana message.
version:
type: string
title: Version
description: The version of the create session data.
domain:
$ref: '#/components/schemas/Dapp'
description: The session domain that determines which contracts the session can access.
session_key:
type: string
title: Session Key
description: The session public key.
expiration:
type: string
format: date-time
title: Expiration
description: The session expiration date and time.
allow_all_tokens:
type: boolean
title: Allow All Tokens
description: True if the session is granted access to all tokens.
all_tokens_matched_exactly:
type: boolean
title: All Tokens Matched Exactly
description: True if every token in the message matches to exactly one asset.
type: object
required:
- type
- version
- domain
- session_key
- expiration
- allow_all_tokens
- all_tokens_matched_exactly
title: CreateSessionDetails
PushableTransactionStateChange:
properties:
changed_at:
type: string
format: date-time
title: Changed At
description: The date and time when the state was changed.
reason:
description: The reason for the state change.
$ref: '#/components/schemas/StateChangeReason'
previous_state:
description: The previous state of the transaction.
$ref: '#/components/schemas/PushableTransactionState'
new_state:
$ref: '#/components/schemas/PushableTransactionState'
description: The new state of the transaction.
type: object
required:
- changed_at
- new_state
title: PushableTransactionStateChange
PredictedTronTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: tron_transaction
title: Type
description: TRON transaction type.
expected_result:
$ref: '#/components/schemas/TronTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedTronChain'
description: The details of the chain that this transaction is on.
tron_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/TronNativeTransferDetails'
- $ref: '#/components/schemas/TronTokenTransferDetails'
- $ref: '#/components/schemas/TronStakeDetails'
- $ref: '#/components/schemas/TronUnstakeDetails'
- $ref: '#/components/schemas/TronDelegateDetails'
- $ref: '#/components/schemas/TronUndelegateDetails'
- $ref: '#/components/schemas/TronContractCallDetails'
description: Details of the tron transaction based on its type.
discriminator:
propertyName: type
mapping:
contract_call: '#/components/schemas/TronContractCallDetails'
delegate: '#/components/schemas/TronDelegateDetails'
native_transfer: '#/components/schemas/TronNativeTransferDetails'
stake: '#/components/schemas/TronStakeDetails'
token_transfer: '#/components/schemas/TronTokenTransferDetails'
undelegate: '#/components/schemas/TronUndelegateDetails'
unstake: '#/components/schemas/TronUnstakeDetails'
memo:
title: Memo
description: The memo of the transaction.
type: string
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transaction.
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- tron_transaction_type_details
- sender
title: PredictedTronTransaction
EvmMessageResult:
properties:
effects:
$ref: '#/components/schemas/EvmEffectsBase'
description: Array of predicted transaction effects from simulation, including token balance changes and token allowances.
type: object
required:
- effects
title: EvmMessageResult
SuiCommandInputArgument:
properties:
type:
type: string
const: input
title: Type
description: The type of the command argument.
index:
type: integer
title: Index
description: The index of the input in the input vector.
type: object
required:
- type
- index
title: SuiCommandInputArgument
ArchCompiledInstruction:
properties:
program_index:
type: integer
title: Program Index
description: The program index.
data:
type: string
title: Data
description: The instruction data in Base64 format.
example: SGVsbG8=
account_indexes:
items:
type: integer
type: array
title: Account Indexes
description: The indexes of the instruction accounts in the transaction accounts list.
program:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The address of the program account.
base58_data:
title: Base58 Data
description: The instruction data encoded in Base58 format.
type: string
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
type: object
required:
- program_index
- data
- account_indexes
- program
title: ArchCompiledInstruction
EnrichedStellarAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: stellar
title: Type
address:
type: string
maxLength: 56
minLength: 56
pattern: ^[GCL][A-Z2-7]{55}$
title: Address
description: The Stellar address represented in base32 format.
example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2
type: object
required:
- type
- address
title: EnrichedStellarAddress
TonAssetIdentifier:
properties:
type:
type: string
const: ton
title: Type
description: TON asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/TonNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/TonJettonAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
jetton: '#/components/schemas/TonJettonAssetIdentifierRequest'
native: '#/components/schemas/TonNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedTonChain'
type: object
required:
- type
- details
- chain
title: TonAssetIdentifier
DefinedPreconditionError_CreateSwapErrorType_:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
error_type:
$ref: '#/components/schemas/CreateSwapErrorType'
type: object
required:
- title
- detail
title: DefinedPreconditionError[CreateSwapErrorType]
StacksPostConditions:
properties:
post_condition_mode:
$ref: '#/components/schemas/StacksPostConditionMode'
description: The post condition mode of the transaction.
post_conditions:
items:
$ref: '#/components/schemas/StacksPostCondition'
type: array
title: Post Conditions
description: The post conditions of the transaction.
type: object
required:
- post_condition_mode
- post_conditions
title: StacksPostConditions
AptosMessageType:
type: string
enum:
- personal_message_type
title: AptosMessageType
SuiCoinAssetIdentifierRequest:
properties:
type:
type: string
const: coin
title: Type
description: Coin asset identifier type.
coin_type:
$ref: '#/components/schemas/SuiCoinTypeRequest'
description: The Coin details.
type: object
required:
- type
- coin_type
title: SuiCoinAssetIdentifierRequest
SuiPureBoolInput:
properties:
type:
type: string
const: bool_pure_input
title: Type
description: The type of the pure input.
value:
type: boolean
title: Value
description: The boolean value of the pure input argument.
type: object
required:
- type
- value
title: SuiPureBoolInput
PredictedSolanaSpotSwapDetails:
properties:
type:
type: string
const: spot_swap
title: Type
description: A Solana spot swap transaction is for swapping between two assets.
slippage_bps:
type: string
pattern: ^\d+(\.\d+)?$
title: Slippage Bps
description: The slippage in basis points.
example: '1000000000000000000'
price_impact_pct:
type: string
pattern: ^\d+(\.\d+)?$
title: Price Impact Pct
description: The price impact in percentage.
example: '1000000000000000000'
rate:
type: string
pattern: ^\d+(\.\d+)?$
title: Rate
description: The rate of the swap.
example: '1000000000000000000'
broadcast_mode:
$ref: '#/components/schemas/SolanaSpotSwapBroadcastMode'
description: The broadcast mode of the swap.
input_asset:
$ref: '#/components/schemas/AssetInfo'
description: The input asset.
output_asset:
$ref: '#/components/schemas/AssetInfo'
description: The output asset.
recipients:
items:
$ref: '#/components/schemas/EnrichedSolanaAddress'
type: array
title: Recipients
description: The recipients of the tokens.
jito_suggested_fees:
$ref: '#/components/schemas/JitoSolanaSuggestedFees'
description: The suggested fees for Jito.
type: object
required:
- type
- slippage_bps
- price_impact_pct
- rate
- broadcast_mode
- input_asset
- output_asset
- recipients
- jito_suggested_fees
title: PredictedSolanaSpotSwapDetails
UtxoMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: utxo_message
title: Type
description: utxo message type.
utxo_message_type:
$ref: '#/components/schemas/UtxoMessageType'
description: The type of the message to sign.
raw_data:
type: string
title: Raw Data
description: The raw data of the message, encoded in base64
example: SGVsbG8=
chain:
$ref: '#/components/schemas/EnrichedUtxoChain'
description: The details of the chain that this message is on.
string_data:
type: string
title: String Data
description: The message as a string.
sender:
$ref: '#/components/schemas/EnrichedUtxoAddress'
description: The sender of the message.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- utxo_message_type
- raw_data
- chain
- string_data
- sender
title: UtxoMessage
SolanaTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/SolanaReversion'
description: Details whether the transaction was reverted or not.
transaction_error:
title: Transaction Error
description: The description of the error of the transaction.
type: string
enriched_fee:
$ref: '#/components/schemas/SolanaFee'
description: The fee of the transaction.
effects:
$ref: '#/components/schemas/SolanaEffects'
description: The effects of the transaction.
instruction_error:
description: The description of the error of the instruction.
$ref: '#/components/schemas/InstructionError'
type: object
required:
- reversion
- enriched_fee
- effects
title: SolanaTransactionResult
ArchTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: ArchTransferEffect
StellarSorobanTokenTransferDetails:
properties:
type:
type: string
const: soroban_token_transfer
title: Type
description: A transaction involving the transfer of a Soroban token (SEP-41 compatible) from one address to another.
sender:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the assets.
recipient:
description: The recipient of the assets.
$ref: '#/components/schemas/EnrichedStellarAddress'
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
title: StellarSorobanTokenTransferDetails
CosmosMessageType:
type: string
enum:
- arbitrary_message_type
title: CosmosMessageType
CosmosToken:
properties:
name:
type: string
title: Name
description: The name of the coin.
symbol:
type: string
title: Symbol
description: The symbol of the coin.
display:
title: Display
description: The display string of the coin.
deprecated: true
type: string
description:
title: Description
description: The description of the coin.
deprecated: true
type: string
base_denom:
type: string
title: Base Denom
description: The base denom of the coin.
denom:
type: string
title: Denom
description: The denom of the coin.
decimals:
type: integer
title: Decimals
description: The decimals relative to the base coin.
logo_url:
title: Logo Url
description: The coin logo url.
type: string
maxLength: 2083
minLength: 1
format: uri
explorer_url:
title: Explorer Url
description: The explorer url of the coin.
type: string
maxLength: 2083
minLength: 1
format: uri
type:
type: string
const: token
title: Type
type: object
required:
- name
- symbol
- base_denom
- denom
- decimals
- type
title: CosmosToken
SuiPureInputArgument:
properties:
type:
type: string
const: pure
title: Type
description: The type of the input argument.
details:
$ref: '#/components/schemas/BaseSuiPureInput'
type: object
required:
- type
- details
title: SuiPureInputArgument
EnrichedStarknetAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: starknet
title: Type
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The Starknet address represented in hex format.
example: '0x0448f450e64B50dDF49e9F95C5b63a15cD21E21a39cA2D45628d9E5B27e5e1D8'
type: object
required:
- type
- address
title: EnrichedStarknetAddress
StacksPostConditionMode:
type: string
enum:
- allow
- deny
title: StacksPostConditionMode
SuiChain:
properties:
chain_type:
type: string
const: sui
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The type of the Sui-based chain.
type: object
required:
- chain_type
- unique_id
title: SuiChain
EvmNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: 'A transaction involving the transfer of native currency from one address to another. '
direction:
description: The direction of the movement of funds, in case of a transfer.
deprecated: true
$ref: '#/components/schemas/TransferDirection'
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
title: EvmNativeTransferDetails
TonReversion:
properties:
state:
$ref: '#/components/schemas/TonReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: TonReversion
SuiCoinType:
properties:
chain:
$ref: '#/components/schemas/SuiChain'
description: The chain details this address is of.
coin_type:
type: string
title: Coin Type
description: Coin type.
type: object
required:
- chain
- coin_type
title: SuiCoinType
description: Coin type represents a Sui blockchain coin type.
EnrichedArchAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: arch
title: Type
address:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The Arch address represented in Base58 format.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
type: object
required:
- type
- address
title: EnrichedArchAddress
Block:
properties:
number:
type: integer
title: Number
description: The block number.
hash:
title: Hash
description: The block hash.
type: string
mined_at:
type: string
format: date-time
title: Mined At
description: The date and time when this block was mined.
type: object
required:
- number
- mined_at
title: Block
RequestApprover:
properties:
user:
oneOf:
- $ref: '#/components/schemas/PersonRef'
- $ref: '#/components/schemas/ApiUserRef'
discriminator:
propertyName: user_type
mapping:
api_user: '#/components/schemas/ApiUserRef'
person: '#/components/schemas/PersonRef'
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when this approval was modified.
decision:
title: Decision
description: The decision of the approver.
deprecated: true
type: string
state:
$ref: '#/components/schemas/ApprovalState'
description: The state of the approval request for this approver.
type: object
required:
- user
- modified_at
- state
title: RequestApprover
description: Represents a single approver in an approval request
CosmosCoinWithAmount:
properties:
coin_with_amount:
oneOf:
- $ref: '#/components/schemas/CosmosNativeCoinWithAmount'
- $ref: '#/components/schemas/CosmosTokenWithAmount'
description: The coin info.
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/CosmosNativeCoinWithAmount'
token: '#/components/schemas/CosmosTokenWithAmount'
type: object
required:
- coin_with_amount
title: CosmosCoinWithAmount
EnrichedAptosChain:
properties:
chain_type:
type: string
const: aptos
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The type of the Aptos-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedAptosChain
SafeTypedMessageEvmMessage:
properties:
domain:
$ref: '#/components/schemas/EvmMessageDomainData'
description: The domain data.
primary_type:
type: string
title: Primary Type
description: Used to identify the primary type of the message.
enriched_addresses:
additionalProperties:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
title: Enriched Addresses
description: 'Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses'
default: {}
type:
type: string
const: safe
title: Type
description: The typed message type.
to:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The target address.
value:
type: string
pattern: ^-?\d+$
title: Value
description: The value in wei.
example: '1000000000000000000'
data:
type: string
title: Data
description: The transaction data.
operation:
$ref: '#/components/schemas/SafeOperation'
description: 'Operation type: 0 = Call, 1 = DelegateCall.'
safe_gas:
type: string
pattern: ^-?\d+$
title: Safe Gas
description: Gas for the Safe transaction.
example: '1000000000000000000'
base_gas:
type: string
pattern: ^-?\d+$
title: Base Gas
description: Base gas.
example: '1000000000000000000'
gas_price:
type: string
pattern: ^-?\d+$
title: Gas Price
description: Gas price.
example: '1000000000000000000'
gas_token:
description: Token address for gas payment (0x0 for ETH).
$ref: '#/components/schemas/EnrichedEvmAddress'
refund_receiver:
description: Address to receive gas refund.
$ref: '#/components/schemas/EnrichedEvmAddress'
nonce:
type: string
pattern: ^-?\d+$
title: Nonce
description: Safe transaction nonce.
example: '1000000000000000000'
decoded_method:
title: Decoded Method
description: The decoded method name.
type: string
decoded_parameters_json:
title: Decoded Parameters Json
description: The decoded parameters as JSON string.
type: string
decoding_error:
title: Decoding Error
description: Error message if decoding failed.
type: string
is_multi_send:
type: boolean
title: Is Multi Send
description: Whether this is a multi-send batched transaction.
is_sensitive_operation:
type: boolean
title: Is Sensitive Operation
description: Whether this operation modifies Safe ownership, modules, or guards.
is_rejection:
type: boolean
title: Is Rejection
description: Whether this is a rejection transaction.
rejected_transaction:
description: Details of the transaction being rejected.
$ref: '#/components/schemas/RejectedTransactionSummary'
type: object
required:
- domain
- primary_type
- type
- to
- value
- data
- operation
- safe_gas
- base_gas
- gas_price
- nonce
- is_multi_send
- is_sensitive_operation
- is_rejection
title: SafeTypedMessageEvmMessage
GasPriorityLevel:
type: string
enum:
- custom
- low
- medium
- high
title: GasPriorityLevel
EvmBridgesEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
name:
type: string
title: Name
description: The name of the bridge.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the bridge.
example: '1000000000000000000'
source:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The source of the bridge.
destination:
oneOf:
- $ref: '#/components/schemas/EvmBridgeKnownDestination'
- $ref: '#/components/schemas/BaseBridgeUnknownDestination'
description: The destination of the bridge.
discriminator:
propertyName: type
mapping:
known_target_chain: '#/components/schemas/EvmBridgeKnownDestination'
unknown_target_chain: '#/components/schemas/BaseBridgeUnknownDestination'
type: object
required:
- priced_asset
- name
- amount
- source
- destination
title: EvmBridgesEffect
SuiImmOrOwnedObjectRefInputArgument:
properties:
digest:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Digest
description: The digest of the object.
example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
object_id:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Object Id
description: The id of the object.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
version:
type: string
pattern: ^0*[1-9]\d*$
title: Version
description: The version of the object.
example: '1000000000000000000'
type:
type: string
const: imm_or_owned
title: Type
description: The type of the object.
type: object
required:
- digest
- object_id
- version
- type
title: SuiImmOrOwnedObjectRefInputArgument
StellarMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: stellar_message
title: Type
description: Stellar message type.
stellar_message_type:
$ref: '#/components/schemas/StellarMessageType'
description: The type of the Stellar message.
raw_data:
type: string
title: Raw Data
description: The raw data of the message.
chain:
$ref: '#/components/schemas/EnrichedStellarChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the message.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- stellar_message_type
- raw_data
- chain
- sender
title: StellarMessage
SuiTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: SuiTransferEffect
PredictedAptosMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: aptos_message
title: Type
description: Aptos message type.
chain:
$ref: '#/components/schemas/EnrichedAptosChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The sender of the message.
aptos_message_type:
$ref: '#/components/schemas/AptosMessageType'
description: The type of the Aptos message.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- aptos_message_type
- message_to_display
title: PredictedAptosMessage
TronNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: A transaction involving the transfer of TRON coin from one address to another.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: TronNativeTransferDetails
TonMessageType:
type: string
enum:
- proof_message_type
title: TonMessageType
Quote:
properties:
quote_id:
type: string
format: uuid
title: Quote Id
description: The ID of the quote.
provider_info:
$ref: '#/components/schemas/ProviderInfo'
description: The provider info.
provider_source:
title: Provider Source
description: The source of the swap provider.
type: string
input_asset_identifier:
$ref: '#/components/schemas/AssetIdentifier'
description: The input asset identifier.
input_amount:
type: string
pattern: ^0*[1-9]\d*$
title: Input Amount
description: The input amount.
example: '1000000000000000000'
output_asset_identifier:
$ref: '#/components/schemas/AssetIdentifier'
description: The output asset identifier.
output_amount:
type: string
pattern: ^0*[1-9]\d*$
title: Output Amount
description: The output amount.
example: '1000000000000000000'
slippage_bps:
type: string
pattern: ^\d+(\.\d+)?$
title: Slippage Bps
description: The slippage tolerance in basis points.
example: '1000000000000000000'
price_impact_pct:
title: Price Impact Pct
description: The price impact as a percentage.
type: string
pattern: ^\d+(\.\d+)?$
example: '1000000000000000000'
price:
title: Price
description: The USD value of the swap.
type: string
pattern: ^\d+(\.\d+)?$
example: '1000000000000000000'
expiration_time:
type: string
format: date-time
title: Expiration Time
description: The time when the quote expires.
estimated_duration_milliseconds:
title: Estimated Duration Milliseconds
description: The estimated duration of the swap in milliseconds.
type: string
pattern: ^0*[1-9]\d*$
example: '1000000000000000000'
provider_fee:
description: The provider fee of the swap.
$ref: '#/components/schemas/ProviderFee'
type: object
required:
- quote_id
- provider_info
- input_asset_identifier
- input_amount
- output_asset_identifier
- output_amount
- slippage_bps
- expiration_time
title: Quote
ArchTransactionAccount:
properties:
address:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The address of the account.
writable:
type: boolean
title: Writable
description: Indicates if this account is writable in the context of the transaction.
signer:
type: boolean
title: Signer
description: Indicates if this account is a signer of the transaction.
type: object
required:
- address
- writable
- signer
title: ArchTransactionAccount
CosmosTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
cosmos_transaction_type_details:
$ref: '#/components/schemas/CosmosTransactionTypeDetails'
description: Transaction details
memo:
type: string
title: Memo
description: Transaction memo.
default: ''
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: The details of the chain this transaction is on.
sender:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The address that originated the transaction.
type:
type: string
const: cosmos_transaction
title: Type
description: The type of the transaction.
hash:
title: Hash
description: The hash of the transaction.
type: string
maxLength: 64
minLength: 64
pattern: ^[a-fA-F0-9]+$
example: 12BE33E7F1B6CA644CC006FB8CBD0C4C7C95B1072DA90E9F4C39CB837072BBF5
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer.
example: https://www.mintscan.io/cosmos/txs/65A22C9050C8A29DE15CD8D0D08C847766B734403008C428C3148A23137ED3EF
type: string
maxLength: 2083
minLength: 1
format: uri
signers_info:
items:
$ref: '#/components/schemas/SignerInfo'
type: array
title: Signers Info
description: List of signers info.
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/CosmosTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/CosmosTransactionResult'
sign_doc:
description: The signed document of the transaction.
$ref: '#/components/schemas/SignDoc'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- cosmos_transaction_type_details
- chain
- sender
- type
- signers_info
title: CosmosTransaction
StellarReversion:
properties:
state:
$ref: '#/components/schemas/StellarReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `insufficient_funds_gas_and_value`: The transaction was reverted due to insufficient funds.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: StellarReversion
ActionSigningRequest:
properties:
created_by:
$ref: '#/components/schemas/UserRef'
description: The user who created the action.
signers:
items:
$ref: '#/components/schemas/ActionSigner'
type: array
title: Signers
description: A list of required signers. A signer can be a person or an API Signer.
type: object
required:
- created_by
- signers
title: ActionSigningRequest
description: Represents a device sign request for an action in the Foredefi platform
EnrichedStacksChain:
properties:
chain_type:
type: string
const: stacks
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StacksChainUniqueId'
description: The type of the Stacks-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedStacksChain
StellarClassicAssetTransferDetails:
properties:
type:
type: string
const: classic_asset_transfer
title: Type
description: A transaction involving the transfer of a Stellar classic asset (credit) from one address to another.
sender:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the assets.
recipient:
description: The recipient of the assets.
$ref: '#/components/schemas/EnrichedStellarAddress'
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
title: StellarClassicAssetTransferDetails
StellarChangeTrustDetails:
properties:
type:
type: string
const: change_trust
title: Type
description: A ChangeTrust operation to establish or update a trustline for Stellar classic asset.
recipient:
description: The recipient of the trustline operation — always the vault itself.
$ref: '#/components/schemas/EnrichedStellarAddress'
type: object
required:
- type
title: StellarChangeTrustDetails
SuiReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
- invalid_input
- transaction_failed_to_reach_finality
- out_of_gas
- transaction_locked_objects_failure
title: SuiReversionState
StacksAssetIdentifierRequest:
properties:
type:
type: string
const: stacks
title: Type
description: Stacks asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StacksNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StacksSip10AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/StacksNativeAssetIdentifierRequest'
sip10: '#/components/schemas/StacksSip10AssetIdentifierRequest'
type: object
required:
- type
- details
title: StacksAssetIdentifierRequest
StarknetChain:
properties:
chain_type:
type: string
const: starknet
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The type of the Starknet-based chain.
type: object
required:
- chain_type
- unique_id
title: StarknetChain
ExchangeReversion:
properties:
state:
$ref: '#/components/schemas/ExchangeReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `insufficient_exchange_withdraw_funds`: Insufficient funds in exchange vault for withdraw or
- `insufficient_exchange_deposit_minimum_amount`: Insufficient minimum amount for depositinsufficient withdraw amount to cover fee.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: ExchangeReversion
SuiProgrammableTransactionBlockDetails:
properties:
type:
type: string
const: programmable_transaction_block
title: Type
description: A transaction capable of any operation.
sender:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the transaction.
recipients:
items:
$ref: '#/components/schemas/EnrichedSuiAddress'
type: array
title: Recipients
description: The recipients that interacted with the transaction.
type: object
required:
- type
- sender
- recipients
title: SuiProgrammableTransactionBlockDetails
AptosTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: aptos_transaction
title: Type
description: Aptos transaction type.
aptos_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/AptosNativeTransferDetails'
- $ref: '#/components/schemas/AptosCoinTransferDetails'
- $ref: '#/components/schemas/AptosEntryPointDetails'
- $ref: '#/components/schemas/AptosScriptDetails'
description: Details of the Aptos transaction based on its type.
discriminator:
propertyName: type
mapping:
coin_transfer: '#/components/schemas/AptosCoinTransferDetails'
entry_point: '#/components/schemas/AptosEntryPointDetails'
native_transfer: '#/components/schemas/AptosNativeTransferDetails'
script: '#/components/schemas/AptosScriptDetails'
chain:
$ref: '#/components/schemas/EnrichedAptosChain'
description: The details of the chain this transaction is on.
version:
title: Version
description: The version of the transaction.
type: integer
nonce:
title: Nonce
description: The nonce of the transaction.
type: integer
sender:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The sender of the transaction.
payload:
oneOf:
- $ref: '#/components/schemas/AptosEntryFunctionPayload'
- $ref: '#/components/schemas/ScriptPayload'
description: The payload of the transaction.
discriminator:
propertyName: type
mapping:
entry_point: '#/components/schemas/AptosEntryFunctionPayload'
script: '#/components/schemas/ScriptPayload'
hash:
title: Hash
description: The hash of the transaction.
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
example: '0x780f21260f89d610f24eed21b34d29229611a37e0003e83dd0da91981d7131ae'
gas_submitted:
$ref: '#/components/schemas/AptosGasData'
description: The gas details submitted for the transaction.
with_external_fee_payer:
type: boolean
title: With External Fee Payer
description: If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.
default: false
fee_payer:
description: The address of the fee payer vault for sponsored transactions.
$ref: '#/components/schemas/EnrichedAptosAddress'
serialized_signed_transaction:
title: Serialized Signed Transaction
description: The serialized signed transaction.
type: string
example: SGVsbG8=
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/AptosTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/AptosTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, explorer.aptoslabs.com
example: https://explorer.aptoslabs.com/txn/0xe2b537430a0b30d05272f4cb99945d3355fdcb5d1390b348cdc320645786799d?network=mainnet
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- aptos_transaction_type_details
- chain
- sender
- payload
- gas_submitted
title: AptosTransaction
PushMode:
type: string
enum:
- auto
- manual
- deferred
title: PushMode
StarknetAssetIdentifierRequest:
properties:
type:
type: string
const: starknet
title: Type
description: Starknet asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
erc20: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
native: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
type: object
required:
- type
- details
title: StarknetAssetIdentifierRequest
EnrichedSuiChain:
properties:
chain_type:
type: string
const: sui
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The type of the Sui-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedSuiChain
GasPriorityLevelRequest:
type: string
enum:
- low
- medium
- high
title: GasPriorityLevelRequest
StacksTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: stacks_transaction
title: Type
description: Stacks transaction type.
stacks_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/StacksNativeTransferDetails'
- $ref: '#/components/schemas/StacksTokenTransferDetails'
- $ref: '#/components/schemas/StacksRawTransactionDetails'
description: Details of the Stacks transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/StacksNativeTransferDetails'
raw_transaction: '#/components/schemas/StacksRawTransactionDetails'
token_transfer: '#/components/schemas/StacksTokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedStacksChain'
description: The details of the chain this transaction is on.
nonce:
title: Nonce
description: The nonce of the transaction.
type: integer
sender:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The sender of the transaction.
hash:
title: Hash
description: The hash of the transaction.
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
example: '0xadc53fc37f9210735c5ed562aa914cb745c910ded94720bfe9e67a2ac6f2ae24'
post_conditions:
description: The post conditions of the transaction.
$ref: '#/components/schemas/StacksPostConditions'
serialized_payload:
title: Serialized Payload
description: The serialized payload of the transaction.
type: string
pattern: ^0[xX][a-fA-F0-9]+$
serialized_signed_transaction:
title: Serialized Signed Transaction
description: The serialized signed transaction.
type: string
pattern: ^0[xX][a-fA-F0-9]+$
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/StacksTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/StacksTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, https://explorer.hiro.so/
example: https://explorer.hiro.so/txid/0xd303fc22b2b8c346a0a1fa164a1ccb878a172dc2b8ce08253a6b2312cafb1520
type: string
maxLength: 2083
minLength: 1
format: uri
memo:
title: Memo
description: The memo of the transaction.
type: string
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- stacks_transaction_type_details
- chain
- sender
title: StacksTransaction
SuiMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: sui_message
title: Type
description: Sui message type.
sui_message_type:
$ref: '#/components/schemas/SuiMessageType'
description: The type of the Sui message.
string_data:
type: string
title: String Data
description: The message as a string.
raw_data:
type: string
title: Raw Data
description: The raw data of the message, encoded in base64
example: SGVsbG8=
chain:
$ref: '#/components/schemas/EnrichedSuiChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the message.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- sui_message_type
- string_data
- raw_data
- chain
- sender
title: SuiMessage
EnrichedUtxoAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: utxo
title: Type
address:
$ref: '#/components/schemas/UtxoAddress'
description: The UTXO address.
vault_address:
description: The vault address corresponding to this address.
$ref: '#/components/schemas/VaultAddressRef'
type: object
required:
- type
- address
title: EnrichedUtxoAddress
SolanaTokenTransferDetails:
properties:
type:
type: string
const: token_transfer
title: Type
description: 'A transaction involving the transfer of native currency from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the tokens.
recipient:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The recipient of the tokens.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: SolanaTokenTransferDetails
SolanaCustomFeeRequest:
properties:
type:
type: string
const: custom
title: Type
priority_fee:
title: Priority Fee
description: The priority fee to use in the transaction (In lamports).
type: string
pattern: ^0*[1-9]\d*$
example: '1000000000000000000'
unit_price:
title: Unit Price
description: The unit price to use in the transaction (In microlamports).
type: string
pattern: ^\d+$
example: '1000000000000000000'
type: object
required:
- type
title: SolanaCustomFeeRequest
EnrichedExchangeAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: exchange
title: Type
exchange_type:
$ref: '#/components/schemas/ExchangeType'
type: object
required:
- type
- exchange_type
title: EnrichedExchangeAddress
PrioritySolanaSuggestedFees:
properties:
type:
type: string
const: solana
title: Type
description: The type of the chain.
chain_unique_id:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The Solana chain unique id.
base_fee:
type: string
pattern: ^\d+$
title: Base Fee
description: The base fee paid for the signatures in the transaction, denominated in lamports.
example: '1000000000000000000'
low:
type: string
pattern: ^\d+$
title: Low
description: The low suggested fee per byte, denominated in lamports.
example: '1000000000000000000'
medium:
type: string
pattern: ^\d+$
title: Medium
description: The medium suggested fee per byte, denominated in lamports.
example: '1000000000000000000'
high:
type: string
pattern: ^\d+$
title: High
description: The high suggested fee per byte, denominated in lamports.
example: '1000000000000000000'
fee_type:
type: string
const: priority_fee
title: Fee Type
description: The type of the fee.
unit_prices:
$ref: '#/components/schemas/SolanaUnitPrices'
description: The unit prices for the suggested fees.
type: object
required:
- type
- chain_unique_id
- base_fee
- low
- medium
- high
- fee_type
- unit_prices
title: PrioritySolanaSuggestedFees
EvmEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/EvmBalanceChangeEffect'
type: array
title: Balance Changes
description: 'The aggregated balance changes at the addresses that are involved in the transaction. Values are indicated for all currency components of the transactions: native, ERC-20, ERC-721, and ERC-1155.'
transfers:
items:
$ref: '#/components/schemas/EvmTransferEffect'
type: array
title: Transfers
description: The transfer events of the transaction.
allowances:
items:
$ref: '#/components/schemas/AllowanceEffect'
type: array
title: Allowances
description: The allowance events of the transaction.
bridge:
title: Bridge
description: The bridge effects of the transaction.
deprecated: true
items:
$ref: '#/components/schemas/EvmBridgeEffect'
type: array
bridges:
items:
$ref: '#/components/schemas/EvmBridgesEffect'
type: array
title: Bridges
description: The bridge effects of the transaction.
contract_deployments:
items:
$ref: '#/components/schemas/EvmContractDeploymentEffect'
type: array
title: Contract Deployments
description: The contract deployment information of the transaction.
set_code_authorizations:
items:
$ref: '#/components/schemas/SetCodeAuthorizationEffect'
type: array
title: Set Code Authorizations
description: The set code authorization effects of the transaction.
type: object
required:
- balance_changes
- transfers
- allowances
- bridges
- contract_deployments
- set_code_authorizations
title: EvmEffects
StacksFee:
properties:
priority:
$ref: '#/components/schemas/FeePriorityLevel'
description: The priority level.
total_fee:
type: string
pattern: ^\d+$
title: Total Fee
description: The total fee payed for the transaction.
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- priority
- total_fee
- priced_asset
title: StacksFee
TronTrc20AssetIdentifierRequest:
properties:
type:
type: string
const: trc20
title: Type
description: Trc20 asset identifier type.
trc20:
$ref: '#/components/schemas/TronAddressRequest'
description: The Trc20 details.
type: object
required:
- type
- trc20
title: TronTrc20AssetIdentifierRequest
BridgeDetails:
properties:
type:
type: string
const: cross_chain_bridge
title: Type
description: A transaction involving the transfer of funds from one blockchain to another.
bridge_effect:
description: The bridge effects of the transaction.
deprecated: true
$ref: '#/components/schemas/EvmBridgeEffect'
bridge_effects:
$ref: '#/components/schemas/EvmBridgesEffect'
description: The bridge effects of the transaction.
type: object
required:
- type
- bridge_effects
title: BridgeDetails
ExchangeExternalWithdrawDetails:
properties:
is_internal:
type: boolean
title: Is Internal
description: Is this transfer an internal transfer between two vaults.
sender:
$ref: '#/components/schemas/EnrichedExchangeAddress'
description: The sender of the transaction.
type:
type: string
const: external_withdraw
title: Type
description: 'A transaction from an exchange vault to an MPC vault or external address. '
recipient:
$ref: '#/components/schemas/EnrichedAddress'
description: The recipient of the transfer.
chain:
$ref: '#/components/schemas/EnrichedChain'
description: The details of the chain this transaction is on.
memo:
title: Memo
description: Transaction memo.
type: string
hash:
title: Hash
description: The hash of the transaction.
type: string
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, Solscan.
example: https://solscan.io/tx/FAWA66f...6kEZanwHeDFNS
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- is_internal
- sender
- type
- recipient
- chain
title: ExchangeExternalWithdrawDetails
ExchangeTransactionStateChange:
properties:
changed_at:
type: string
format: date-time
title: Changed At
description: The date and time when the state was changed.
reason:
description: The reason for the state change.
$ref: '#/components/schemas/StateChangeReason'
previous_state:
description: The previous state of the exchange transaction.
$ref: '#/components/schemas/ExchangeTransactionState'
new_state:
$ref: '#/components/schemas/ExchangeTransactionState'
description: The new state of the exchange transaction.
type: object
required:
- changed_at
- new_state
title: ExchangeTransactionStateChange
JitoSolanaSuggestedFees:
properties:
type:
type: string
const: solana
title: Type
description: The type of the chain.
chain_unique_id:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The Solana chain unique id.
base_fee:
type: string
pattern: ^\d+$
title: Base Fee
description: The base fee paid for the signatures in the transaction, denominated in lamports.
example: '1000000000000000000'
low:
type: string
pattern: ^\d+$
title: Low
description: The low suggested fee per byte, denominated in lamports.
example: '1000000000000000000'
medium:
type: string
pattern: ^\d+$
title: Medium
description: The medium suggested fee per byte, denominated in lamports.
example: '1000000000000000000'
high:
type: string
pattern: ^\d+$
title: High
description: The high suggested fee per byte, denominated in lamports.
example: '1000000000000000000'
fee_type:
type: string
const: jito
title: Fee Type
description: The type of the fee.
type: object
required:
- type
- chain_unique_id
- base_fee
- low
- medium
- high
- fee_type
title: JitoSolanaSuggestedFees
TransferDirection:
type: string
enum:
- outgoing
- incoming
- internal
title: TransferDirection
SuiSuggestedFees:
properties:
type:
type: string
const: sui
title: Type
description: The type of the chain.
chain_unique_id:
$ref: '#/components/schemas/SuiChainUniqueId'
description: The Sui chain unique id.
type: object
required:
- type
- chain_unique_id
title: SuiSuggestedFees
PolicyMatch:
properties:
is_default:
type: boolean
title: Is Default
description: '`True` if this is the default rule, `False` otherwise.'
rule_id:
type: string
format: uuid
title: Rule Id
description: The unique identifier of the rule.
rule_name:
type: string
title: Rule Name
description: The name of the rule.
action_type:
$ref: '#/components/schemas/TransactionPolicyMatchActionType'
description: 'The action taken in the event of a policy match. Can be: - Allow automatically
- Block
- Require express approval
'
type: object
required:
- is_default
- rule_id
- rule_name
- action_type
title: PolicyMatch
TonReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
title: TonReversionState
GasPriorityRequest:
properties:
gas_limit:
title: Gas Limit
description: Specifies the maximum number of gas units to be used for mining the transaction. If omitted, Fordefi will automatically estimate the required gas and apply that value.
type: string
pattern: ^0*[1-9]\d*$
example: '1000000000000000000'
type:
type: string
const: priority
title: Type
priority_level:
$ref: '#/components/schemas/GasPriorityLevelRequest'
description: 'Using the Gas Priority option, you allocate gas according to `gas_limit` and `priority_level`, and the range of fee you are willing to add: low, medium, or high - Fordefi will add 10%, 20%, or 25%, respectively to the recent average gas price to mine the transaction successfully.'
type: object
required:
- type
- priority_level
title: GasPriorityRequest
UtxoPsbtDetails:
properties:
type:
type: string
const: partially_signed_bitcoin_transaction
title: Type
description: A partially signed bitcoin transaction (PSBT).
psbt_raw_data:
type: string
pattern: ^0[xX][a-fA-F0-9]+$
title: Psbt Raw Data
description: Partially signed bitcoin transaction data encoded as a hex string.
signed_psbt_raw_data:
title: Signed Psbt Raw Data
description: Partially signed bitcoin transaction data encoded as a hex string.
type: string
pattern: ^0[xX][a-fA-F0-9]+$
sender:
$ref: '#/components/schemas/EnrichedUtxoAddress'
description: The address that signed the inputs.
json_representation:
title: Json Representation
description: Json representation of the PSBT.
type: string
type: object
required:
- type
- psbt_raw_data
- sender
title: UtxoPsbtDetails
StellarClaimClaimableBalanceDetails:
properties:
type:
type: string
const: claim_claimable_balance
title: Type
description: A ClaimClaimableBalance operation to claim pending claimable balances for a Stellar asset.
recipient:
description: The recipient of the claim — always the vault itself.
$ref: '#/components/schemas/EnrichedStellarAddress'
type: object
required:
- type
title: StellarClaimClaimableBalanceDetails
AptosReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
title: AptosReversionState
EvmReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- out_of_gas
- max_fee_less_than_block_base_fee
- base_fee_exceeds_gas_limit
- insufficient_funds_gas_and_value
- invalid_input
- transaction_rejected
- gas_limit_exceeds_block_limit
- mixed_secure_node_revert
title: EvmReversionState
SolanaSplTokenAssetIdentifierRequest:
properties:
type:
type: string
const: spl_token
title: Type
description: SPL token asset identifier type.
token:
$ref: '#/components/schemas/SolanaAddressRequest'
description: The SPL token details.
type: object
required:
- type
- token
title: SolanaSplTokenAssetIdentifierRequest
SolanaReversion:
properties:
state:
$ref: '#/components/schemas/SolanaReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
- `insufficient_funds_for_rent`: There is not enough SOL in the account to pay for the rent.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: SolanaReversion
HyperliquidSendToEvmWithDataAction:
properties:
action_type:
type: string
const: send_to_evm_with_data
title: Action Type
description: The Hyperliquid action type.
destination_chain_id:
type: integer
title: Destination Chain Id
description: Target chain ID for the CCTP bridge.
destination_recipient:
type: string
title: Destination Recipient
description: Recipient address on the destination chain.
token:
type: string
title: Token
description: Token identifier, e.g. 'USDC'.
amount:
title: Amount
description: Bridge amount as a decimal string.
type: string
pattern: ^\d+(\.\d+)?$
example: '1000000000000000000'
gas_limit:
type: integer
title: Gas Limit
description: Gas limit for the bridge transaction.
address_encoding:
type: string
title: Address Encoding
description: Address encoding format.
default: hex
time:
type: integer
title: Time
description: Unix timestamp in milliseconds used as a nonce by Hyperliquid.
type: object
required:
- action_type
- destination_chain_id
- destination_recipient
- token
- gas_limit
- time
title: HyperliquidSendToEvmWithDataAction
description: Bridge withdrawal via CCTP (Circle Cross-Chain Transfer Protocol).
VaultType:
type: string
enum:
- aptos
- arch
- black_box
- canton
- cosmos
- evm
- safe
- solana
- stacks
- starknet
- stellar
- sui
- ton
- tron
- utxo
- exchange
title: VaultType
SimulationStatus:
type: string
enum:
- success
- failed
- reverted
- skipped
title: SimulationStatus
DefinedPreconditionError_PredictSwapErrorType_:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
system_error_code:
title: System Error Code
description: An additional system error code in Fordefi.
type: string
error_type:
$ref: '#/components/schemas/PredictSwapErrorType'
type: object
required:
- title
- detail
title: DefinedPreconditionError[PredictSwapErrorType]
AptosAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: aptos
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address on the Aptos chain.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
chains:
items:
$ref: '#/components/schemas/AptosChain'
type: array
title: Chains
description: The chains the contact belongs to.
type: object
required:
- chain_type
- address
- chains
title: AptosAddressBookContactAddressRef
UtxoBalanceChangeEffect:
properties:
type:
type: string
const: native
title: Type
description: The type of the balance change.
vault:
$ref: '#/components/schemas/VaultRef'
description: The vault affected by the balance change.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of native currency that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
type: object
required:
- type
- vault
- diff
- priced_asset
title: UtxoBalanceChangeEffect
HyperliquidUnknownAction:
properties:
action_type:
type: string
const: unknown_action
title: Action Type
description: The Hyperliquid action type.
type: object
required:
- action_type
title: HyperliquidUnknownAction
BlackBoxSignatureSchnorrSecp256k1Details:
properties:
type:
type: string
const: schnorr_secp256k1
title: Type
description: Schnorr over the secp256k1 curve signature.
signature:
title: Signature
description: The signature, encoded in base64 format.
type: string
example: SGVsbG8=
hash_binary:
type: string
minLength: 1
title: Hash Binary
description: The payload to sign, encoded in base64 format.
example: SGVsbG8=
type: object
required:
- type
- hash_binary
title: BlackBoxSignatureSchnorrSecp256k1Details
UtxoTransactionResult:
properties:
fees:
description: The fees of the transaction.
$ref: '#/components/schemas/UtxoFees'
effects:
$ref: '#/components/schemas/UtxoEffects'
description: The effects of the transaction.
is_coinbase:
type: boolean
title: Is Coinbase
description: True when this transaction is a coinbase (block-reward) transaction.
default: false
type: object
required:
- effects
title: UtxoTransactionResult
AptosNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: 'A transaction involving the transfer of APT coin from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The sender of the coins.
recipient:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The recipient of the coins.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: AptosNativeTransferDetails
SuiAssetIdentifier:
properties:
type:
type: string
const: sui
title: Type
description: Sui asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/SuiNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/SuiCoinAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
coin: '#/components/schemas/SuiCoinAssetIdentifierRequest'
native: '#/components/schemas/SuiNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedSuiChain'
type: object
required:
- type
- details
- chain
title: SuiAssetIdentifier
CantonNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Canton asset identifier type.
chain:
$ref: '#/components/schemas/CantonChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: CantonNativeAssetIdentifierRequest
SuiMessageVersion:
type: string
enum:
- v1
title: SuiMessageVersion
ChainType:
type: string
enum:
- aptos
- arch
- canton
- cosmos
- evm
- exchange
- solana
- stellar
- stacks
- starknet
- sui
- ton
- tron
- utxo
title: ChainType
EvmBridgeKnownDestination:
properties:
type:
type: string
const: known_target_chain
title: Type
chain:
$ref: '#/components/schemas/EnrichedEvmChain'
description: The chain of the destination.
address:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address of the destination.
type: object
required:
- type
- chain
- address
title: EvmBridgeKnownDestination
StellarTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The receiver of the transfer.
is_pending:
type: boolean
title: Is Pending
description: Whether this transfer is pending (e.g. claimable balance).
default: false
type: object
required:
- priced_asset
- amount
- from
- to
title: StellarTransferEffect
PredictedTonMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: ton_message
title: Type
description: TON message type.
chain:
$ref: '#/components/schemas/EnrichedTonChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The sender of the message.
ton_message_type:
$ref: '#/components/schemas/TonMessageType'
description: The type of the TON message.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- ton_message_type
- message_to_display
title: PredictedTonMessage
ArchAssetIdentifier:
properties:
type:
type: string
const: arch
title: Type
description: Arch asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/ArchNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/ArchAplTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
apl_token: '#/components/schemas/ArchAplTokenAssetIdentifierRequest'
native: '#/components/schemas/ArchNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedArchChain'
type: object
required:
- type
- details
- chain
title: ArchAssetIdentifier
EvmReversion:
properties:
state:
$ref: '#/components/schemas/EvmReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `out_of_gas`: Gas is insufficient for the transaction.
- `max_fee_less_than_block_base_fee`: The input parameter `max_fee_per_gas` (under custom gas details) is lower than the current base fee of the block, so the miner cannot include the transaction in the block.
- `base_fee_exceeds_gas_limit`: The base fee that is always paid is set to 21000 gas units in Ethereum. If a gas limit that''s lower than that was set, the transaction is rejected.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
- `invalid_input`: A general error that might occur for many different reasons, usually because of issues on the Fordefi side and not on the client''s.
- `transaction_rejected`: As for `invalid_input`.
- `gas_limit_exceeds_block_limit`: There''s a limit on gas consumption for the whole block, which no single transaction can pass.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: EvmReversion
CantonPartyAllocationDetails:
properties:
type:
type: string
const: party_allocation
title: Type
description: A transaction that allocates an external party on a Canton node.
type: object
required:
- type
title: CantonPartyAllocationDetails
EvmAssetIdentifier:
properties:
type:
type: string
const: evm
title: Type
description: Asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/EvmNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc20AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc721AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
- $ref: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
erc1155: '#/components/schemas/EvmErc1155AssetIdentifierRequest'
erc20: '#/components/schemas/EvmErc20AssetIdentifierRequest'
erc721: '#/components/schemas/EvmErc721AssetIdentifierRequest'
hyperliquid: '#/components/schemas/EvmHyperLiquidAssetIdentifierRequest'
native: '#/components/schemas/EvmNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedEvmChain'
type: object
required:
- type
- details
- chain
title: EvmAssetIdentifier
CantonReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- insufficient_funds_gas_and_value
- unknown_recipient
- already_pre_approved
title: CantonReversionState
ApiError:
properties:
api_error_enum:
$ref: '#/components/schemas/ApiErrorEnum'
description: The API error enum.
description:
type: string
title: Description
description: The API error description.
type: object
required:
- api_error_enum
- description
title: ApiError
CosmosTransactionTypeDetails:
oneOf:
- $ref: '#/components/schemas/CosmosMultipleMessagesTransactionDetails'
- $ref: '#/components/schemas/CosmosNativeTransferDetails'
- $ref: '#/components/schemas/CosmosTokenTransferDetails'
discriminator:
propertyName: type
mapping:
messages: '#/components/schemas/CosmosMultipleMessagesTransactionDetails'
native_transfer: '#/components/schemas/CosmosNativeTransferDetails'
token_transfer: '#/components/schemas/CosmosTokenTransferDetails'
EvmTransactionMethodArgument:
properties:
name:
type: string
title: Name
description: The name of the argument.
type:
type: string
title: Type
description: The type of the argument.
value:
type: string
title: Value
description: The value of the argument.
enriched_address:
description: Details of the address if it is an address.
$ref: '#/components/schemas/EnrichedEvmAddress'
children:
items:
$ref: '#/components/schemas/EvmTransactionMethodArgument'
type: array
title: Children
description: 'Decoded child arguments for complex types: array elements (e.g. bytes[], address[], uint256[3]) and tuple fields. Empty for scalar types.'
type: object
required:
- name
- type
- value
title: EvmTransactionMethodArgument
StellarChain:
properties:
chain_type:
type: string
const: stellar
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The type of the Stellar chain.
type: object
required:
- chain_type
- unique_id
title: StellarChain
SuiUpgradeCommand:
properties:
type:
type: string
const: upgrade
title: Type
description: The type of the command.
modules:
items:
type: string
example: SGVsbG8=
type: array
title: Modules
description: The modules to publish.
dependencies:
items:
type: string
type: array
title: Dependencies
description: The dependencies of the modules.
package_id:
type: string
title: Package Id
description: The package id of the module to upgrade.
ticket:
$ref: '#/components/schemas/SuiCommandArgument'
description: The ticket with capability.
type: object
required:
- type
- modules
- dependencies
- package_id
- ticket
title: SuiUpgradeCommand
description: Upgrade a Move module.
EnrichedSuiAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: sui
title: Type
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The Sui address represented in hex format.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
type: object
required:
- type
- address
title: EnrichedSuiAddress
TonJettonAssetIdentifierRequest:
properties:
type:
type: string
const: jetton
title: Type
description: Jetton asset identifier type.
jetton:
$ref: '#/components/schemas/TonAddressRequest'
description: The Jetton details.
type: object
required:
- type
- jetton
title: TonJettonAssetIdentifierRequest
HyperliquidWithdrawAction:
properties:
action_type:
type: string
const: withdraw
title: Action Type
description: The Hyperliquid action type.
destination:
type: string
title: Destination
description: Recipient hex address.
amount:
type: string
pattern: ^\d+(\.\d+)?$
title: Amount
description: Withdrawal amount as a decimal string.
example: '1000000000000000000'
time:
type: integer
title: Time
description: Unix timestamp in milliseconds used as a nonce by Hyperliquid.
type: object
required:
- action_type
- destination
- amount
- time
title: HyperliquidWithdrawAction
description: Withdraw funds from Hyperliquid L1 to an external address.
StacksRawTransactionDetails:
properties:
type:
type: string
const: raw_transaction
title: Type
description: A transaction with contract call.
contract_call_payload:
$ref: '#/components/schemas/StacksContractCallPayload'
description: The contract call payload.
type: object
required:
- type
- contract_call_payload
title: StacksRawTransactionDetails
SolanaChainUniqueId:
type: string
enum:
- solana_mainnet
- solana_devnet
- solana_eclipse_mainnet
- solana_fogo_mainnet
- solana_fogo_testnet
title: SolanaChainUniqueId
SuiInput:
oneOf:
- $ref: '#/components/schemas/SuiPureInputArgument'
- $ref: '#/components/schemas/SuiObjectInputArgument'
- $ref: '#/components/schemas/SuiFundsWithdrawalArgument'
discriminator:
propertyName: type
mapping:
funds_withdrawal: '#/components/schemas/SuiFundsWithdrawalArgument'
object: '#/components/schemas/SuiObjectInputArgument'
pure: '#/components/schemas/SuiPureInputArgument'
EvmBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: EvmBalanceChangeEffect
VaultRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the vault in the Fordefi platform.
vault_group_id:
title: Vault Group Id
description: The unique identifier of the vault group this vault belongs to.
deprecated: true
type: string
format: uuid
vault_group_ids:
items:
type: string
format: uuid
type: array
title: Vault Group Ids
description: The unique identifiers of the vault groups this vault belongs to.
name:
type: string
title: Name
description: The name of the vault.
address:
title: Address
description: The address of the vault.
type: string
state:
$ref: '#/components/schemas/VaultState'
description: The state of the vault.
type:
$ref: '#/components/schemas/VaultType'
description: The vault type.
logo_url:
title: Logo Url
description: The logo of the vault. Supported for exchange and Safe vaults.
type: string
maxLength: 2083
minLength: 1
format: uri
end_user:
description: The end user that owns this vault if it is in a Consumer Wallet organization. `None` otherwise.
$ref: '#/components/schemas/EndUserRef'
is_external_signer:
type: boolean
title: Is External Signer
description: Whether the vault uses an externally imported key (external signer).
default: false
type: object
required:
- id
- vault_group_ids
- name
- state
- type
title: VaultRef
description: Represents a reference to a vault in the Fordefi platform
ExchangeFee:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
fee:
type: string
pattern: ^\d+$
title: Fee
description: The exchange's fee.
example: '1000000000000000000'
type: object
required:
- priced_asset
- fee
title: ExchangeFee
ChainSource:
type: string
enum:
- default
- custom
title: ChainSource
TronFee:
properties:
trx_fee:
type: string
pattern: ^\d+$
title: Trx Fee
description: The total TRX fee payed for the transaction.
example: '1000000000000000000'
energy_fee:
type: string
pattern: ^\d+$
title: Energy Fee
description: The total energy fee payed for the transaction.
example: '1000000000000000000'
bandwidth_fee:
type: string
pattern: ^\d+$
title: Bandwidth Fee
description: The total bandwidth fee payed for the transaction.
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- trx_fee
- energy_fee
- bandwidth_fee
- priced_asset
title: TronFee
StacksPostCondition:
oneOf:
- $ref: '#/components/schemas/KnownAssetStacksPostCondition'
- $ref: '#/components/schemas/UnknownAssetStacksPostCondition'
discriminator:
propertyName: type
mapping:
known_asset: '#/components/schemas/KnownAssetStacksPostCondition'
unknown_asset: '#/components/schemas/UnknownAssetStacksPostCondition'
UtxoChain:
properties:
chain_type:
type: string
const: utxo
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The UTXO chain unique ID.
type: object
required:
- chain_type
- unique_id
title: UtxoChain
StarknetEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/StarknetBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/StarknetTransferEffect'
type: array
title: Transfers
type: object
required:
- balance_changes
- transfers
title: StarknetEffects
SolanaAddress:
properties:
type:
type: string
const: solana
title: Type
chain:
$ref: '#/components/schemas/SolanaChain'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
type: object
required:
- type
- chain
- base58_repr
title: SolanaAddress
description: Address represents an EVM blockchain address.
TronUnstakeDetails:
properties:
type:
type: string
const: unstake
title: Type
description: A TRON unstake transaction.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the transaction.
$ref: '#/components/schemas/EnrichedTronAddress'
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The json representation of the transaction's data
type: string
type: object
required:
- type
- sender
title: TronUnstakeDetails
Erc20:
properties:
address:
$ref: '#/components/schemas/EvmAddress'
description: The token address
name:
type: string
title: Name
description: The token name
symbol:
type: string
title: Symbol
description: The token symbol or ticker
type:
type: string
const: erc20
title: Type
description: The type of the token
decimals:
type: integer
title: Decimals
description: The token decimals
logo_url:
title: Logo Url
description: The token logo url
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- address
- name
- symbol
- type
- decimals
title: Erc20
description: An ERC-20 token.
StacksTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/StacksReversion'
description: Details whether the transaction was reverted or not.
fee:
$ref: '#/components/schemas/StacksFee'
description: The fees of the transaction.
effects:
$ref: '#/components/schemas/StacksEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- fee
- effects
title: StacksTransactionResult
ArchChainUniqueId:
type: string
enum:
- arch_mainnet
- arch_testnet
title: ArchChainUniqueId
EVMAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: evm
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 42
minLength: 42
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The address of the contact.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
chains:
items:
$ref: '#/components/schemas/EvmChain'
type: array
title: Chains
description: The chains the contact belongs to.
type: object
required:
- chain_type
- address
- chains
title: EVMAddressBookContactAddressRef
InstructionError:
properties:
error_type:
type: string
title: Error Type
description: The type of the error of the instruction.
instruction_index:
type: integer
title: Instruction Index
description: The index of the instruction.
error_description:
title: Error Description
description: The description of the error of the instruction.
type: string
type: object
required:
- error_type
- instruction_index
title: InstructionError
FeePriorityLevelRequest:
type: string
enum:
- low
- medium
- high
title: FeePriorityLevelRequest
EvmDynamicSuggestedFees:
properties:
type:
type: string
const: dynamic
title: Type
low:
$ref: '#/components/schemas/DynamicGasFields'
description: The low suggested gas fees.
medium:
$ref: '#/components/schemas/DynamicGasFields'
description: The medium suggested gas fees.
high:
$ref: '#/components/schemas/DynamicGasFields'
description: The high suggested gas fees.
type: object
required:
- type
- low
- medium
- high
title: EvmDynamicSuggestedFees
StellarClassicAssetIdentifierRequest:
properties:
type:
type: string
const: classic_asset
title: Type
description: Stellar asset identifier type.
code:
type: string
maxLength: 12
minLength: 1
pattern: ^[A-Za-z0-9]{1,12}$
title: Code
description: The 1-4 character asset code.
issuer:
$ref: '#/components/schemas/StellarAddressRequest'
description: The issuer address.
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain of the Classic Asset.
type: object
required:
- type
- code
- issuer
- chain
title: StellarClassicAssetIdentifierRequest
SystemUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: system
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name is Fordefi CARE
type: object
required:
- id
- user_type
- name
title: SystemUserRef
TronNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: TRON asset identifier type.
chain:
$ref: '#/components/schemas/TronChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: TronNativeAssetIdentifierRequest
CantonReversion:
properties:
state:
$ref: '#/components/schemas/CantonReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `insufficient_funds_gas_and_value`: The transaction was reverted due to insufficient funds.
- `already_pre_approved`: Transfers of this asset are already pre-approved for this vault.
- `unknown_recipient`: The recipient party is not known on the network.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: CantonReversion
SuiObjectInputArgument:
properties:
type:
type: string
const: object
title: Type
description: The type of the input argument.
details:
oneOf:
- $ref: '#/components/schemas/SuiImmOrOwnedObjectRefInputArgument'
- $ref: '#/components/schemas/SuiReceivingObjectRefInputArgument'
- $ref: '#/components/schemas/SuiSharedObjectRefInputArgument'
- $ref: '#/components/schemas/SuiPartialObjectRefInputArgument'
discriminator:
propertyName: type
mapping:
imm_or_owned: '#/components/schemas/SuiImmOrOwnedObjectRefInputArgument'
partial: '#/components/schemas/SuiPartialObjectRefInputArgument'
receiving: '#/components/schemas/SuiReceivingObjectRefInputArgument'
shared: '#/components/schemas/SuiSharedObjectRefInputArgument'
type: object
required:
- type
- details
title: SuiObjectInputArgument
EcdsaSignature:
properties:
r:
type: string
pattern: ^0[xX][a-fA-F0-9]+$
title: R
description: The x-coordinate of the point on the curve, represented in hex format.
s:
type: string
pattern: ^0[xX][a-fA-F0-9]+$
title: S
description: The scalar, known as the "signature proof", represented in hex format.
v:
type: integer
title: V
description: The recovery id, only relevant for Ethereum signtures.
type: object
required:
- r
- s
- v
title: EcdsaSignature
EvmContractMetadata:
properties:
name:
title: Name
description: The name of the contract.
type: string
dapp:
description: The DApp details of the contract.
$ref: '#/components/schemas/Dapp'
is_verified:
type: boolean
title: Is Verified
description: '`True` if the contract is verified, `False` otherwise.'
token:
description: The token details of the contract.
oneOf:
- $ref: '#/components/schemas/Erc20'
- $ref: '#/components/schemas/Erc721'
- $ref: '#/components/schemas/Erc1155'
discriminator:
propertyName: type
mapping:
erc1155: '#/components/schemas/Erc1155'
erc20: '#/components/schemas/Erc20'
erc721: '#/components/schemas/Erc721'
type: object
required:
- is_verified
title: EvmContractMetadata
AptosSuggestedFees:
properties:
type:
type: string
const: aptos
title: Type
description: The type of the chain.
low:
type: string
pattern: ^\d+$
title: Low
description: The low suggested fee price.
example: '1000000000000000000'
medium:
type: string
pattern: ^\d+$
title: Medium
description: The medium suggested fee price.
example: '1000000000000000000'
high:
type: string
pattern: ^\d+$
title: High
description: The high suggested fee price
example: '1000000000000000000'
chain_unique_id:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The APTOS chain unique id.
type: object
required:
- type
- low
- medium
- high
- chain_unique_id
title: AptosSuggestedFees
UtxoNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: A transaction involving the transfer of native currency from one or moreaddresses to one or more addresses.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
vault:
description: The vault that signed this transfer.
$ref: '#/components/schemas/VaultRef'
memos:
items:
type: string
type: array
title: Memos
description: List of memos of the transaction.
type: object
required:
- type
- memos
title: UtxoNativeTransferDetails
CantonAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: canton
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 251
minLength: 70
title: Address
description: The party id on the Canton chain.
example: 45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf
chains:
items:
$ref: '#/components/schemas/CantonChain'
type: array
title: Chains
description: The chains the contact belongs to.
memo:
title: Memo
description: Memo is an additional address feature used for identifying a recipient.
type: string
type: object
required:
- chain_type
- address
- chains
title: CantonAddressBookContactAddressRef
EnrichedAptosAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: aptos
title: Type
address:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Address
description: The Aptos address represented in hex format.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
type: object
required:
- type
- address
title: EnrichedAptosAddress
EvmAddress:
properties:
type:
type: string
const: evm
title: Type
chain:
$ref: '#/components/schemas/EvmChain'
hex_repr:
type: string
maxLength: 42
minLength: 42
pattern: ^0[xX][a-fA-F0-9]+$
title: Hex Repr
description: Hexadecimal representation of the address in the chain.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
type: object
required:
- type
- chain
- hex_repr
title: EvmAddress
description: Address represents an EVM blockchain address.
AminoSignDoc:
properties:
format:
type: string
const: amino
title: Format
sign_doc:
$ref: '#/components/schemas/StdSignDoc'
description: Sign doc for amino format.
type: object
required:
- format
- sign_doc
title: AminoSignDoc
ArchReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
- insufficient_funds_for_rent
title: ArchReversionState
StarknetMessageType:
type: string
enum:
- typed_message_type
title: StarknetMessageType
SolanaReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
- insufficient_funds_for_rent
title: SolanaReversionState
SpotSwapTypedMessageEvmMessage:
properties:
provider_info:
$ref: '#/components/schemas/ProviderInfo'
description: The swap provider.
provider_source:
title: Provider Source
description: The source of the swap provider.
type: string
slippage_bps:
type: string
pattern: ^\d+(\.\d+)?$
title: Slippage Bps
description: Slippage tolerance in basis points.
example: '1000000000000000000'
price_impact_pct:
title: Price Impact Pct
description: Price impact percentage.
type: string
pattern: ^\d+(\.\d+)?$
example: '1000000000000000000'
rate:
type: string
pattern: ^\d+(\.\d+)?$
title: Rate
description: The exchange rate of the swap.
example: '1000000000000000000'
input_asset:
$ref: '#/components/schemas/AssetInfo'
description: Information about the input asset of the swap.
output_asset:
$ref: '#/components/schemas/AssetInfo'
description: Information about the output asset of the swap.
wrapped_native_asset:
description: Information about the wrapped native asset of the swap.
$ref: '#/components/schemas/AssetInfo'
recipient:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The final recipient of the output asset.
quote_created_at:
type: string
format: date-time
title: Quote Created At
description: The timestamp when the quote was created.
quote_expiration_time:
type: string
format: date-time
title: Quote Expiration Time
description: The timestamp when the quote will expire.
estimated_duration_milliseconds:
title: Estimated Duration Milliseconds
description: The estimated duration of the swap in milliseconds.
type: string
pattern: ^0*[1-9]\d*$
example: '1000000000000000000'
provider_fee:
description: The provider fee of the swap.
$ref: '#/components/schemas/ProviderFee'
failure_reason:
title: Failure Reason
description: Reason for failure, if any, from the provider.
type: string
provider_explorer_url:
title: Provider Explorer Url
description: URL to the swap provider's dedicated block explorer for tracking this swap execution status.
type: string
maxLength: 2083
minLength: 1
format: uri
bridge_state:
description: The state of the bridge transaction.
$ref: '#/components/schemas/BridgeState'
bridge_effects:
description: The bridge effects of the transaction.
$ref: '#/components/schemas/EvmBridgesEffect'
domain:
$ref: '#/components/schemas/EvmMessageDomainData'
description: The domain data.
primary_type:
type: string
title: Primary Type
description: Used to identify the primary type of the message.
enriched_addresses:
additionalProperties:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
title: Enriched Addresses
description: 'Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses'
default: {}
type:
type: string
const: spot_swap
title: Type
description: The typed message type.
permit2_details:
description: Permit2 details, if applicable (e.g., for UniswapX flows needing a permit).
$ref: '#/components/schemas/Permit2TypedMessageEvmMessage'
is_gasless:
type: boolean
title: Is Gasless
description: Whether the swap is gasless.
type: object
required:
- provider_info
- slippage_bps
- rate
- input_asset
- output_asset
- recipient
- quote_created_at
- quote_expiration_time
- domain
- primary_type
- type
- is_gasless
title: SpotSwapTypedMessageEvmMessage
TransactionDirection:
type: string
enum:
- outgoing
- incoming
title: TransactionDirection
BlackBoxSignatureEcdsaSecp256k1Details:
properties:
type:
type: string
const: ecdsa_secp256k1
title: Type
description: ECDSA over the secp256k1 curve signature.
signature:
description: The ECDSA signature.
$ref: '#/components/schemas/EcdsaSignature'
hash_binary:
type: string
minLength: 1
title: Hash Binary
description: The payload to sign, encoded in base64 format.
example: SGVsbG8=
type: object
required:
- type
- hash_binary
title: BlackBoxSignatureEcdsaSecp256k1Details
TronUndelegateDetails:
properties:
type:
type: string
const: undelegate
title: Type
description: A TRON undelegate transaction.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the transaction.
$ref: '#/components/schemas/EnrichedTronAddress'
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The json representation of the transaction's data
type: string
type: object
required:
- type
- sender
title: TronUndelegateDetails
CosmosAssetIdentifierRequest:
properties:
type:
type: string
const: cosmos
title: Type
description: Cosmos asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/CosmosNativeAssetIdentifierRequest'
token: '#/components/schemas/CosmosTokenAssetIdentifierRequest'
type: object
required:
- type
- details
title: CosmosAssetIdentifierRequest
EnrichedTronAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: tron
title: Type
address:
type: string
maxLength: 34
minLength: 34
pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The TRON address represented in base58 format.
example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
type: object
required:
- type
- address
title: EnrichedTronAddress
EvmErc721AssetIdentifierRequest:
properties:
type:
type: string
const: erc721
title: Type
description: EVM asset identifier type.
token:
$ref: '#/components/schemas/EvmAddressRequest'
description: The ERC-721 token contract.
token_id:
type: string
pattern: ^\d+$
title: Token Id
description: The token id of the ERC-721 token.
example: '1000000000000000000'
type: object
required:
- type
- token
- token_id
title: EvmErc721AssetIdentifierRequest
TransactionRiskSeverity:
type: string
enum:
- low
- medium
- high
title: TransactionRiskSeverity
CosmosChainUniqueId:
type: string
enum:
- cosmos_agoric-3
- cosmos_akashnet-2
- cosmos_archway-1
- cosmos_axelar-dojo-1
- cosmos_bbn-1
- cosmos_celestia
- cosmos_cosmoshub-4
- cosmos_dydx-mainnet-1
- cosmos_dydx-testnet-4
- cosmos_dymension_1100-1
- cosmos_injective-1
- cosmos_neutron-1
- cosmos_nillion-1
- cosmos_noble-1
- cosmos_osmosis-1
- cosmos_provider
- cosmos_ssc-1
- cosmos_pacific-1
- cosmos_stride-1
- cosmos_thorchain-1
- cosmos_mantra-1
title: CosmosChainUniqueId
UtxoMessageType:
type: string
enum:
- ecdsa
- bip322_simple
title: UtxoMessageType
UserRef:
oneOf:
- $ref: '#/components/schemas/PersonRef'
- $ref: '#/components/schemas/ApiUserRef'
- $ref: '#/components/schemas/ApiSignerRef'
- $ref: '#/components/schemas/EndUserRef'
- $ref: '#/components/schemas/SystemUserRef'
description: Represents a reference to a user in the Fordefi platform
discriminator:
propertyName: user_type
mapping:
api_signer: '#/components/schemas/ApiSignerRef'
api_user: '#/components/schemas/ApiUserRef'
end_user: '#/components/schemas/EndUserRef'
person: '#/components/schemas/PersonRef'
system: '#/components/schemas/SystemUserRef'
CosmosBechAddress:
properties:
type:
type: string
const: cosmos
title: Type
chain:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The Cosmos chain.
address:
type: string
title: Address
description: The address as bech32.
example: cosmos1tdk0g5d4ry9lq0erejttyufqcvwpqdj6tdql38
hex_repr:
title: Hex Repr
description: The hex representation of the address.
type: string
minLength: 40
pattern: ^[a-fA-F0-9]+$
example: DBCE78FD2D006A3BAC2C548D93271ABA3D63F01E
key_type:
$ref: '#/components/schemas/CosmosKeyType'
description: The type of the key that this address is derived from.
default: secp256k1
type: object
required:
- type
- chain
- address
title: CosmosBechAddress
EnrichedTronChain:
properties:
chain_type:
type: string
const: tron
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/TronChainUniqueId'
description: The type of the Tron-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedTronChain
IncomingAmlCheck:
properties:
policy_match:
description: The AML policy match for incoming transactions.
$ref: '#/components/schemas/AmlPolicyMatchIncoming'
users_eligible_to_unfreeze:
title: Users Eligible To Unfreeze
description: list of possible approvers
items:
$ref: '#/components/schemas/RequestApprover'
type: array
frozen:
title: Frozen
description: Whether the transaction is frozen.
type: boolean
type: object
title: IncomingAmlCheck
EvmMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: evm_message
title: Type
description: EVM message type.
evm_message_type:
$ref: '#/components/schemas/EvmMessageType'
description: The type of the EVM message.
raw_data:
type: string
title: Raw Data
description: The raw data of the message.
typed_data:
description: The typed data of the message.
oneOf:
- $ref: '#/components/schemas/UnknownTypedMessageEvmMessage'
- $ref: '#/components/schemas/PermitTypedMessageEvmMessage'
- $ref: '#/components/schemas/Permit2TypedMessageEvmMessage'
- $ref: '#/components/schemas/SpotSwapTypedMessageEvmMessage'
- $ref: '#/components/schemas/SafeTypedMessageEvmMessage'
- $ref: '#/components/schemas/HyperliquidTypedMessageEvmMessage'
discriminator:
propertyName: type
mapping:
hyperliquid: '#/components/schemas/HyperliquidTypedMessageEvmMessage'
permit: '#/components/schemas/PermitTypedMessageEvmMessage'
permit2: '#/components/schemas/Permit2TypedMessageEvmMessage'
safe: '#/components/schemas/SafeTypedMessageEvmMessage'
spot_swap: '#/components/schemas/SpotSwapTypedMessageEvmMessage'
unknown: '#/components/schemas/UnknownTypedMessageEvmMessage'
vault:
$ref: '#/components/schemas/VaultRef'
description: The vault creating the message.
chain:
$ref: '#/components/schemas/EnrichedEvmChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The sender of the message.
expected_result:
description: Predicted result of the message execution. Only available for intents that Fordefi knows how to simulate, like ERC20 allowances and swaps created in the Fordefi app.
$ref: '#/components/schemas/EvmMessageResult'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- evm_message_type
- raw_data
- vault
- chain
- sender
title: EvmMessage
StellarFee:
properties:
fee_charged:
type: string
pattern: ^\d+$
title: Fee Charged
description: The fee charged for the transaction (in stroops).
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- fee_charged
- priced_asset
title: StellarFee
UnknownAssetStacksPostCondition:
properties:
address:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The address this post condition applies to.
condition_code:
$ref: '#/components/schemas/StacksPostConditionComparator'
description: The condition code of the post condition.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the asset this post condition applies to.
example: '1000000000000000000'
type:
type: string
const: unknown_asset
title: Type
description: The type of the post condition.
asset_name:
type: string
title: Asset Name
description: The asset name this post condition applies to
type: object
required:
- address
- condition_code
- amount
- type
- asset_name
title: UnknownAssetStacksPostCondition
FeePriorityLevel:
type: string
enum:
- custom
- low
- medium
- high
title: FeePriorityLevel
UtxoFees:
properties:
priority:
$ref: '#/components/schemas/FeePriorityLevel'
description: The priority level.
fee_per_byte:
type: string
pattern: ^\d+$
title: Fee Per Byte
description: The fee per byte.
example: '1000000000000000000'
transaction_byte_size:
type: string
pattern: ^\d+$
title: Transaction Byte Size
description: The transaction size in bytes.
example: '1000000000000000000'
total_fee:
type: string
pattern: ^\d+$
title: Total Fee
description: The total fee paid.
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- priority
- fee_per_byte
- transaction_byte_size
- total_fee
- priced_asset
title: UtxoFees
CosmosNativeTransferDetails:
properties:
transaction_data:
$ref: '#/components/schemas/MessagesList'
description: List of transaction's messages.
sender:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The sender.
recipient:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The recipient.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type:
type: string
const: native_transfer
title: Type
description: A transaction involving a native transfer from one address to another.
type: object
required:
- transaction_data
- sender
- recipient
- type
title: CosmosNativeTransferDetails
ProviderId:
type: string
enum:
- oneinch
- cowswap
- uniswap
- jupiter
- kyberswap
- layerzero
- paraswap
- bebop
- cctp_standard
- cctp_fast
title: ProviderId
TronTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: TronTransferEffect
AptosGasPrice:
properties:
priority_level:
$ref: '#/components/schemas/FeePriorityLevel'
description: The priority level of the gas price.
price:
type: string
pattern: ^0*[1-9]\d*$
title: Price
description: The price per gas unit (in Octa).
example: '1000000000000000000'
fiat_price:
description: The price of the asset used to pay the gas.
$ref: '#/components/schemas/Price'
type: object
required:
- priority_level
- price
title: AptosGasPrice
AmlScanStatus:
type: string
enum:
- error
- timeout
- skipped
- completed
- unsupported_chain
- pending
title: AmlScanStatus
ManagedTransactionData:
properties:
created_by:
$ref: '#/components/schemas/UserRef'
description: The user who created the transaction.
aborted_by:
description: The user who aborted the transaction, `null` if the transaction was not aborted.
$ref: '#/components/schemas/UserRef'
finalized_for_signing_by:
description: The user who finalized the transaction for signing, `null` if the transaction was not finalized for signing.
$ref: '#/components/schemas/UserRef'
device_signing_request:
$ref: '#/components/schemas/ActionSigningRequest'
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
signer_type:
$ref: '#/components/schemas/SignerType'
description: 'The type of signer of the transaction. Can be one of the following: - `initiator`: The creator of the transaction (default).
- `api_signer`: An API Signer - a service that you run on your own network or cloud environment.
- `multiple_signers`: An API Signer or a person that is part of the list of allowed signers.
- `end_user`: An end user - a signature by a mobile device with a third-party app that uses Fordefi''s Mobile SDK.
In the case of `initiator`, a notification is expected to be sent to the initiator''s mobile device for approval of the transaction. '
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
error_pushing_to_blockchain_message:
title: Error Pushing To Blockchain Message
description: The translated error message received from the node if it was rejected by it.
type: string
original_error_pushing_to_blockchain_message:
title: Original Error Pushing To Blockchain Message
description: The error message received from the node if it was rejected by it.
type: string
vault:
$ref: '#/components/schemas/VaultRef'
description: The vault creating the transaction.
idempotence_id:
title: Idempotence Id
description: Optional idempotence ID of a transaction.
type: string
format: uuid
has_current_user_vault_permissions:
type: boolean
title: Has Current User Vault Permissions
description: Does current user have permissions to the origin vault according to its vault group permissions.
batch_data:
description: Batch data if the transaction is part of a batch.
$ref: '#/components/schemas/BatchData'
push_mode:
description: 'The push mode of the transaction when sending it to the node. It can be one of the following:- `auto`: The transaction is pushed automatically by Fordefi.
- `manual`: The transaction should be pushed manually by the user using a 3rd party.
- `deferred`: The transaction is pushed by Fordefi after a certain time, if by that time it wasn''t pushed manually by the client.
'
$ref: '#/components/schemas/PushMode'
last_pushed_at:
title: Last Pushed At
description: The last time the transaction was pushed to the node.
type: string
format: date-time
sign_mode:
$ref: '#/components/schemas/SignMode'
description: '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
fee_paid_by:
description: Details of the vault that paid the fee for this transaction.
oneOf:
- $ref: '#/components/schemas/FeePaidByVault'
discriminator:
propertyName: type
mapping:
vault: '#/components/schemas/FeePaidByVault'
attested_payload_for_signing:
title: Attested Payload For Signing
description: JWS attestation for the payload (external signer). Set after finalize-for-signing.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this transaction, if any.
type: string
format: uuid
type: object
required:
- created_by
- signer_type
- risks
- vault
- has_current_user_vault_permissions
title: ManagedTransactionData
SolanaFee:
properties:
priority_level:
$ref: '#/components/schemas/FeePriorityLevel'
description: The priority level.
base_fee:
type: string
pattern: ^0*[1-9]\d*$
title: Base Fee
description: The base fee of the transaction (in lamports).
example: '1000000000000000000'
priority_fee:
type: string
pattern: ^\d+$
title: Priority Fee
description: The priority fee of the transaction (in lamports).
example: '1000000000000000000'
unit_price:
title: Unit Price
description: The unit price of the transaction (in microlamports).
type: string
pattern: ^\d+$
example: '1000000000000000000'
fee:
type: string
pattern: ^0*[1-9]\d*$
title: Fee
description: The total fee of the transaction (in lamports).
example: '1000000000000000000'
fee_type:
$ref: '#/components/schemas/SolanaFeeType'
description: The type of the fee.
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- priority_level
- base_fee
- priority_fee
- fee
- fee_type
- priced_asset
title: SolanaFee
StarknetNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: 'A transaction involving the transfer of Starknet coin from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: StarknetNativeTransferDetails
Erc1155:
properties:
address:
$ref: '#/components/schemas/EvmAddress'
description: The token address
name:
type: string
title: Name
description: The token name
symbol:
type: string
title: Symbol
description: The token symbol or ticker
type:
type: string
const: erc1155
title: Type
description: The type of the token
type: object
required:
- address
- name
- symbol
- type
title: Erc1155
StellarTrustlineChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
address:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The address that established or updated the trustline.
limit:
type: string
pattern: ^-?\d+$
title: Limit
description: The trustline limit.
example: '1000000000000000000'
type: object
required:
- priced_asset
- address
- limit
title: StellarTrustlineChangeEffect
EnrichedExchangeChain:
properties:
chain_type:
type: string
const: exchange
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/ExchangeChainUniqueId'
description: The type of the Exchange-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedExchangeChain
TonMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: ton_message
title: Type
description: TON message type.
ton_message_type:
$ref: '#/components/schemas/TonMessageType'
description: The type of the TON message.
raw_payload_to_sign:
type: string
title: Raw Payload To Sign
description: The payload that was requested to be signed, encoded in base64.
example: SGVsbG8=
string_payload_to_sign:
type: string
title: String Payload To Sign
description: The payload that was requested to be signed.
chain:
$ref: '#/components/schemas/EnrichedTonChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The sender of the message.
domain:
type: string
title: Domain
description: The domain of the daap.
domain_bytes_length:
type: integer
title: Domain Bytes Length
description: The daap domain's length
timestamp:
type: integer
title: Timestamp
description: The signing timestamp
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- ton_message_type
- raw_payload_to_sign
- string_payload_to_sign
- chain
- sender
- domain
- domain_bytes_length
- timestamp
title: TonMessage
AptosTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/AptosReversion'
description: Details whether the transaction was reverted or not.
fee_statement:
$ref: '#/components/schemas/AptosFeeStatement'
description: The fee statement of the transaction.
effects:
$ref: '#/components/schemas/AptosEffects'
description: The effects of the transaction.
raw_result:
title: Raw Result
description: The raw result of the transaction.
type: string
type: object
required:
- reversion
- fee_statement
- effects
title: AptosTransactionResult
SpotSwapFeeRequest:
oneOf:
- $ref: '#/components/schemas/EvmSpotSwapFeeRequest'
- $ref: '#/components/schemas/SolanaSpotSwapFeeRequest'
discriminator:
propertyName: type
mapping:
evm: '#/components/schemas/EvmSpotSwapFeeRequest'
solana: '#/components/schemas/SolanaSpotSwapFeeRequest'
StarknetCallData:
properties:
to:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The address of the contract to call.
method_name:
type: string
title: Method Name
description: The name of the method to call.
method_arguments:
items:
type: string
type: array
title: Method Arguments
description: The arguments of the method to call.
type: object
required:
- to
- method_name
- method_arguments
title: StarknetCallData
PersonalMessageDetails:
properties:
type:
type: string
const: personal_message_type
title: Type
description: The type of the Solana message.
type: object
required:
- type
title: PersonalMessageDetails
StacksChainUniqueId:
type: string
enum:
- stacks_mainnet
title: StacksChainUniqueId
MinedSignDoc:
properties:
format:
type: string
const: mined
title: Format
messages:
type: string
title: Messages
description: The messages of the transaction.
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: The chain the transaction is signed on.
type: object
required:
- format
- messages
- chain
title: MinedSignDoc
PredictedSuiMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: sui_message
title: Type
description: Sui message type.
chain:
$ref: '#/components/schemas/EnrichedSuiChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the message.
sui_message_type:
$ref: '#/components/schemas/SuiMessageType'
description: The type of the Sui message.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- sui_message_type
- message_to_display
title: PredictedSuiMessage
TonNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: 'A transaction involving the transfer of TON coin from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: TonNativeTransferDetails
UtxoOutput:
properties:
address:
$ref: '#/components/schemas/EnrichedUtxoAddress'
description: The address of the output.
value:
type: string
pattern: ^\d+$
title: Value
description: The value of the output.
example: '1000000000000000000'
is_change_address:
title: Is Change Address
description: Whether the output is a change address.
type: boolean
is_send_max:
title: Is Send Max
description: Whether the output is a send-max output.
type: boolean
type: object
required:
- address
- value
title: UtxoOutput
ChainalysisScanResult:
properties:
type:
type: string
const: chainalysis
title: Type
description: The type of the policy.
alerts:
items:
$ref: '#/components/schemas/ChainalysisAlert'
type: array
title: Alerts
description: The list of alerts.
external_id:
type: string
format: uuid
title: External Id
description: A unique identifier of the scan.
type: object
required:
- type
- alerts
- external_id
title: ChainalysisScanResult
TonNetwork:
type: integer
enum:
- 0
- -239
- -1
title: TonNetwork
EvmAddressRequest:
properties:
chain:
type: string
minLength: 1
title: EvmChainUniqueId
description: The chain details this address is of.
hex_repr:
type: string
maxLength: 42
minLength: 42
pattern: ^0[xX][a-fA-F0-9]+$
title: Hex Repr
description: Hexadecimal representation of the address in the chain.
example: '0x71C7656EC7ab88b098defB751B7401B5f6d8976F'
type: object
required:
- chain
- hex_repr
title: EvmAddressRequest
description: Address represents a blockchain address.
ArchNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: 'A transaction involving the transfer of native currency from one address to another. '
recipient:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The recipient of the tokens.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- recipient
title: ArchNativeTransferDetails
UtxoInput:
properties:
address:
$ref: '#/components/schemas/EnrichedUtxoAddress'
description: The address of the input.
value:
type: string
pattern: ^\d+$
title: Value
description: The value of the input.
example: '1000000000000000000'
should_sign:
type: boolean
title: Should Sign
description: '`True` if this is signed by the creating vault (relevant for PSBT), `False` otherwise.'
default: true
type: object
required:
- address
- value
title: UtxoInput
UtxoChainUniqueId:
type: string
enum:
- bitcoin_mainnet
- bitcoin_testnet
- bitcoin_testnet_v4
- dogecoin_mainnet
- bitcoin_cash_mainnet
- pearl_testnet
- pearl_mainnet
title: UtxoChainUniqueId
SuiSharedObjectRefInputArgument:
properties:
type:
type: string
const: shared
title: Type
description: The type of the object.
object_id:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Object Id
description: The id of the shared object.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
initial_shared_version:
type: integer
title: Initial Shared Version
description: The initial shared version of the object.
mutable:
type: boolean
title: Mutable
description: '`True` if the object is mutable, `False` otherwise.'
type: object
required:
- type
- object_id
- initial_shared_version
- mutable
title: SuiSharedObjectRefInputArgument
EvmTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: EvmTransferEffect
BlackBoxSignature:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
$ref: '#/components/schemas/ManagedTransactionData'
description: '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). '
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: black_box_signature
title: Type
description: Black Box signature type.
vault:
$ref: '#/components/schemas/VaultRef'
description: The vault whose key has been used for signing.
details:
oneOf:
- $ref: '#/components/schemas/BlackBoxSignatureEcdsaStarkDetails'
- $ref: '#/components/schemas/BlackBoxSignatureEcdsaSecp256k1Details'
- $ref: '#/components/schemas/BlackBoxSignatureEddsaEd25519Details'
- $ref: '#/components/schemas/BlackBoxSignatureSchnorrSecp256k1Details'
discriminator:
propertyName: type
mapping:
ecdsa_secp256k1: '#/components/schemas/BlackBoxSignatureEcdsaSecp256k1Details'
ecdsa_stark: '#/components/schemas/BlackBoxSignatureEcdsaStarkDetails'
eddsa_ed25519: '#/components/schemas/BlackBoxSignatureEddsaEd25519Details'
schnorr_secp256k1: '#/components/schemas/BlackBoxSignatureSchnorrSecp256k1Details'
type: object
required:
- id
- created_at
- modified_at
- managed_transaction_data
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- vault
- details
title: BlackBoxSignature
SuiSplitCoinsCommand:
properties:
type:
type: string
const: split_coins
title: Type
description: The type of the command.
coin_object:
$ref: '#/components/schemas/SuiCommandArgument'
description: The coin to split.
amounts:
items:
$ref: '#/components/schemas/SuiCommandArgument'
type: array
title: Amounts
description: The amounts to split the coin into.
type: object
required:
- type
- coin_object
- amounts
title: SuiSplitCoinsCommand
description: Split coin into smaller coins.
CosmosBech32Prefix:
type: string
enum:
- agoric
- akash
- archway
- axelar
- bbn
- celestia
- cosmos
- dydx
- dym
- inj
- neutron
- nillion
- noble
- osmo
- saga
- sei
- stride
- thor
- mantra
title: CosmosBech32Prefix
AptosCoinTypeRequest:
properties:
chain:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The chain details this address is of.
coin_type_str:
type: string
title: Coin Type Str
description: Coin type string representation.
type: object
required:
- chain
- coin_type_str
title: AptosCoinTypeRequest
description: Coin type represents a blockchain legacy coin type.
AptosChainUniqueId:
type: string
enum:
- aptos_mainnet
- aptos_testnet
- aptos_movement_mainnet
- aptos_movement_testnet
title: AptosChainUniqueId
ScriptPayload:
properties:
typed_arguments:
items:
type: string
type: array
title: Typed Arguments
description: The typed arguments of the transaction.
arguments:
items:
type: string
type: array
title: Arguments
description: The arguments of the transaction.
type:
type: string
const: script
title: Type
code:
type: string
title: Code
description: The script code of the transaction.
example: SGVsbG8=
type: object
required:
- typed_arguments
- arguments
- type
- code
title: ScriptPayload
BaseSuiPureInput:
properties:
value:
oneOf:
- $ref: '#/components/schemas/SuiPureNumberInput'
- $ref: '#/components/schemas/SuiPureByteArrayInput'
- $ref: '#/components/schemas/SuiPureStringInput'
- $ref: '#/components/schemas/SuiPureBoolInput'
discriminator:
propertyName: type
mapping:
bool_pure_input: '#/components/schemas/SuiPureBoolInput'
byte_array_pure_input: '#/components/schemas/SuiPureByteArrayInput'
number_pure_input: '#/components/schemas/SuiPureNumberInput'
string_pure_input: '#/components/schemas/SuiPureStringInput'
type: object
required:
- value
title: BaseSuiPureInput
SolanaAssetIdentifierRequest:
properties:
type:
type: string
const: solana
title: Type
description: Solana asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/SolanaNativeAssetIdentifierRequest'
spl_token: '#/components/schemas/SolanaSplTokenAssetIdentifierRequest'
type: object
required:
- type
- details
title: SolanaAssetIdentifierRequest
SuiReceivingObjectRefInputArgument:
properties:
digest:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Digest
description: The digest of the object.
example: 9K8mnqJdxf3B7vgFmRhj9JqKqsN5AxvSgWk5faGshEta
object_id:
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
title: Object Id
description: The id of the object.
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
version:
type: string
pattern: ^0*[1-9]\d*$
title: Version
description: The version of the object.
example: '1000000000000000000'
type:
type: string
const: receiving
title: Type
description: The type of the object.
type: object
required:
- digest
- object_id
- version
- type
title: SuiReceivingObjectRefInputArgument
TonChainUniqueId:
type: string
enum:
- ton_mainnet
title: TonChainUniqueId
TonTransactionPayload:
properties:
valid_until:
title: Valid Until
description: The expiration time of the transaction.
type: integer
network:
description: The transaction's network.
$ref: '#/components/schemas/TonNetwork'
messages:
items:
$ref: '#/components/schemas/TonTransactionMessage'
type: array
title: Messages
description: The messages of the transaction.
type: object
required:
- messages
title: TonTransactionPayload
GasDebit:
properties:
gas_used:
type: string
pattern: ^\d+$
title: Gas Used
description: The amount of gas used.
example: '1000000000000000000'
gas_price:
type: string
pattern: ^\d+$
title: Gas Price
description: The gas price.
example: '1000000000000000000'
total_fee:
type: string
pattern: ^\d+$
title: Total Fee
description: The total fee taken (`gas_used` * `gas_price`).
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- gas_used
- gas_price
- total_fee
- priced_asset
title: GasDebit
SimulationStatusResult:
properties:
simulation_status:
description: The status of simulation result.
$ref: '#/components/schemas/SimulationStatus'
details:
type: string
title: Details
description: Details about transaction reversion if occurred.
type: object
required:
- details
title: SimulationStatusResult
NonPushableTransactionStateChange:
properties:
changed_at:
type: string
format: date-time
title: Changed At
description: The date and time when the state was changed.
reason:
description: The reason for the state change.
$ref: '#/components/schemas/StateChangeReason'
previous_state:
description: The previous state of the message.
$ref: '#/components/schemas/NonPushableTransactionState'
new_state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The new state of the message.
type: object
required:
- changed_at
- new_state
title: NonPushableTransactionStateChange
GasType:
type: string
enum:
- dynamic
- legacy
title: GasType
SignDoc:
oneOf:
- $ref: '#/components/schemas/AminoSignDoc'
- $ref: '#/components/schemas/DirectSignDoc'
- $ref: '#/components/schemas/MinedSignDoc'
discriminator:
propertyName: format
mapping:
amino: '#/components/schemas/AminoSignDoc'
direct: '#/components/schemas/DirectSignDoc'
mined: '#/components/schemas/MinedSignDoc'
HyperliquidSendAssetAction:
properties:
action_type:
type: string
const: send_asset
title: Action Type
description: The Hyperliquid action type.
destination:
type: string
title: Destination
description: Recipient hex address.
amount:
type: string
pattern: ^\d+(\.\d+)?$
title: Amount
description: Transfer amount as a decimal string.
example: '1000000000000000000'
token:
type: string
title: Token
description: Token identifier in `NAME:0xhexid` format, e.g. `PURR:0x0000000000000000000000000000dead`.
nonce:
type: integer
title: Nonce
description: Replay-protection nonce.
signature_chain_id:
type: string
title: Signature Chain Id
description: Chain ID used for signing, hex-encoded (e.g. `0xa4b1`).
source_dex:
type: string
title: Source Dex
description: Source DEX for the transfer (e.g. `spot`).
destination_dex:
type: string
title: Destination Dex
description: Destination DEX for the transfer (e.g. `perp`).
from_sub_account:
type: string
title: From Sub Account
description: Originating sub-account identifier.
type: object
required:
- action_type
- destination
- amount
- token
- nonce
- signature_chain_id
- source_dex
- destination_dex
- from_sub_account
title: HyperliquidSendAssetAction
description: Cross-DEX asset transfer between Hyperliquid sub-accounts.
ExchangeTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/ExchangeReversion'
description: Details whether the transaction was reverted or not.
effects:
$ref: '#/components/schemas/ExchangeEffects'
description: The effects of the transaction.
exchange_fee:
description: The exchange's fee.
$ref: '#/components/schemas/ExchangeFee'
type: object
required:
- reversion
- effects
title: ExchangeTransactionResult
SolanaTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: solana_transaction
title: Type
description: The type of the transaction.
solana_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/SolanaNativeTransferDetails'
- $ref: '#/components/schemas/SolanaTokenTransferDetails'
- $ref: '#/components/schemas/SolanaRawTransactionDetails'
description: Details of the Solana transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/SolanaNativeTransferDetails'
raw_transaction: '#/components/schemas/SolanaRawTransactionDetails'
token_transfer: '#/components/schemas/SolanaTokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedSolanaChain'
description: The details of the chain this transaction is on.
version:
$ref: '#/components/schemas/SolanaMessageVersion'
description: The version of the transaction message.
instructions:
items:
$ref: '#/components/schemas/SolanaCompiledInstruction'
type: array
title: Instructions
description: The instructions of the transaction.
accounts:
items:
$ref: '#/components/schemas/SolanaTransactionAccount'
type: array
title: Accounts
description: Accounts used in the transaction.
address_table_lookups:
items:
$ref: '#/components/schemas/SolanaEnrichedMessageAddressTableLookup'
type: array
title: Address Table Lookups
description: Lookup tables of accounts used in the transaction.
sender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The sender of the transaction.
raw_transaction:
title: Raw Transaction
description: The serialized transaction encoded as a base64 string
type: string
example: SGVsbG8=
hash:
title: Hash
description: The first signature of the transaction.
type: string
maxLength: 88
minLength: 64
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
example: FAWA66fudpiwdRDDQ4DRxdJsRvawvauwg4vQkm98ZHFpXmW5N7xzRiTRpt8QiZ19s1aVbzKgXW6kEZanwHeDFNS
recent_blockhash:
title: Recent Blockhash
description: The transaction nonce (last block hash).
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
example: 4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZAMdL4VZHirAn
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/SolanaTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/SolanaTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, Solscan.
example: https://solscan.io/tx/FAWA66f...6kEZanwHeDFNS
type: string
maxLength: 2083
minLength: 1
format: uri
was_fee_set_in_request:
type: boolean
title: Was Fee Set In Request
description: Whether the priority fee was already set in the request with a ComputeBudget instruction.
fee_payer:
description: The address that pays the fee for this transaction (first account in the transaction).
$ref: '#/components/schemas/EnrichedSolanaAddress'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- solana_transaction_type_details
- chain
- version
- instructions
- accounts
- address_table_lookups
- sender
- was_fee_set_in_request
title: SolanaTransaction
FiatCurrency:
properties:
currency_symbol:
$ref: '#/components/schemas/FiatCurrencySymbol'
description: The symbol of the fiat currency.
decimals:
type: integer
minimum: 0.0
title: Decimals
description: The number of decimals in the fiat currency.
type: object
required:
- currency_symbol
- decimals
title: FiatCurrency
UserRole:
type: string
enum:
- admin
- trader
- viewer
title: UserRole
DynamicGas:
properties:
max_priority_fee_per_gas:
type: string
pattern: ^\d+$
title: Max Priority Fee Per Gas
description: The maximum tip amount for mining the transaction.
example: '1000000000000000000'
max_fee_per_gas:
type: string
pattern: ^\d+$
title: Max Fee Per Gas
description: The maximum amount paid for the fee.
example: '1000000000000000000'
priority:
$ref: '#/components/schemas/GasPriorityLevel'
description: The gas priority.
limit:
type: string
pattern: ^\d+$
title: Limit
description: The gas limit.
example: '1000000000000000000'
type:
type: string
const: dynamic
title: Type
description: The type of gas data.
type: object
required:
- max_priority_fee_per_gas
- max_fee_per_gas
- priority
- limit
- type
title: DynamicGas
UtxoAssetIdentifier:
properties:
type:
type: string
const: utxo
title: Type
description: Utxo asset identifier type.
details:
$ref: '#/components/schemas/UtxoNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedUtxoChain'
type: object
required:
- type
- details
- chain
title: UtxoAssetIdentifier
AptosNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Aptos asset identifier type.
chain:
$ref: '#/components/schemas/AptosChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: AptosNativeAssetIdentifierRequest
StarknetRawTransactionDetails:
properties:
type:
type: string
const: raw_transaction
title: Type
description: A transaction with contract calls.
recipients:
items:
$ref: '#/components/schemas/EnrichedStarknetAddress'
type: array
title: Recipients
description: The called contracts.
type: object
required:
- type
- recipients
title: StarknetRawTransactionDetails
EnrichedCantonChain:
properties:
chain_type:
type: string
const: canton
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/CantonChainUniqueId'
description: The type of the Canton chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedCantonChain
ArchChain:
properties:
chain_type:
type: string
const: arch
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/ArchChainUniqueId'
description: The type of the Arch-based chain.
type: object
required:
- chain_type
- unique_id
title: ArchChain
HyperliquidSpotSendAction:
properties:
action_type:
type: string
const: spot_send
title: Action Type
description: The Hyperliquid action type.
destination:
type: string
title: Destination
description: Recipient hex address.
amount:
type: string
pattern: ^\d+(\.\d+)?$
title: Amount
description: Transfer amount as a decimal string.
example: '1000000000000000000'
token:
type: string
title: Token
description: Spot token identifier in `NAME:0xhexid` format, e.g. `PURR:0x0000000000000000000000000000dead`.
time:
type: integer
title: Time
description: Unix timestamp in milliseconds used as a nonce by Hyperliquid.
type: object
required:
- action_type
- destination
- amount
- token
- time
title: HyperliquidSpotSendAction
description: Transfer a spot token between Hyperliquid accounts.
EvmHyperLiquidAssetIdentifierRequest:
properties:
type:
type: string
const: hyperliquid
title: Type
description: EVM asset identifier type.
chain:
type: string
minLength: 1
title: EvmChainUniqueId
description: Currently artificially set to Arbitrum.
token_id:
type: string
title: Token Id
description: The token id of the asset on Hyperliquid.
index:
type: integer
title: Index
description: The index of the asset on Hyperliquid.
type: object
required:
- type
- chain
- token_id
- index
title: EvmHyperLiquidAssetIdentifierRequest
CantonTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedCantonAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedCantonAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: CantonTransferEffect
BaseError:
properties:
title:
type: string
title: Title
description: Human-readable error message.
detail:
type: string
title: Detail
description: Detailed error message.
full_detail:
title: Full Detail
description: Full error message with additional details, if available.
type: string
request_id:
title: Request Id
description: Request ID - for debugging purposes.
type: string
type: object
required:
- title
- detail
title: BaseError
UtxoSuggestedFees:
properties:
type:
type: string
const: utxo
title: Type
description: The type of the chain.
low:
type: string
pattern: ^\d+$
title: Low
description: The low suggested fee per byte.
example: '1000000000000000000'
medium:
type: string
pattern: ^\d+$
title: Medium
description: The medium suggested fee per byte.
example: '1000000000000000000'
high:
type: string
pattern: ^\d+$
title: High
description: The high suggested fee per byte.
example: '1000000000000000000'
chain_unique_id:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The UTXO chain unique id.
type: object
required:
- type
- low
- medium
- high
- chain_unique_id
title: UtxoSuggestedFees
CosmosTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: CosmosTransferEffect
UtxoTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
parent_transaction_id:
title: Parent Transaction Id
description: The unique identifier of the parent transaction. Parent and child transactions form in cases where a transaction become stuck and is then either canceled or accelerated. If, for example, the original transaction (`t1`) is the parent and the related, adjustment transaction is the child (`t2`), then relative to itself, the parent field of `t1` is `null` and the child field is `t2_id`. Compare with field `child_transaction_id`.
type: string
format: uuid
child_transaction_id:
title: Child Transaction Id
description: 'The unique identifier of the child transaction. Compare with field `parent_transaction_id`. Relative to itself, the parent field of transaction `t2` would aquire the identifier `t1_id` and the child field of `t2` would be `null`. '
type: string
format: uuid
is_cancelation:
type: boolean
title: Is Cancelation
description: '`True` if this transaction is a cancelation of a previous transaction, `False` otherwise. '
is_acceleration:
type: boolean
title: Is Acceleration
description: '`True` if this transaction is an acceleration of a previous transaction, `False` otherwise.'
type:
type: string
const: utxo_transaction
title: Type
description: The type of the transaction.
utxo_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/UtxoNativeTransferDetails'
- $ref: '#/components/schemas/UtxoPsbtDetails'
description: Details of UTXO transaction, based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/UtxoNativeTransferDetails'
partially_signed_bitcoin_transaction: '#/components/schemas/UtxoPsbtDetails'
chain:
$ref: '#/components/schemas/EnrichedUtxoChain'
description: Details of the chain this transaction is on.
hash:
title: Hash
description: The hash of the transaction.
type: string
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer.
type: string
maxLength: 2083
minLength: 1
format: uri
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/UtxoTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/UtxoTransactionResult'
dlc_data:
description: The DLC data of the transaction, if the transaction is part of a DLC contract.
$ref: '#/components/schemas/DlcDataResponse'
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- is_cancelation
- is_acceleration
- type
- utxo_transaction_type_details
- chain
title: UtxoTransaction
TronReversion:
properties:
state:
$ref: '#/components/schemas/TronReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: TronReversion
PredictedCosmosTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: cosmos_transaction
title: Type
description: The type of the transaction.
expected_result:
$ref: '#/components/schemas/CosmosTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: The details of the chain this transaction is on.
cosmos_transaction_type_details:
$ref: '#/components/schemas/CosmosTransactionTypeDetails'
description: Transaction details
memo:
title: Memo
description: Transaction memo.
default: ''
type: string
sender:
$ref: '#/components/schemas/EnrichedCosmosBechAddress'
description: The sender.
suggested_fees:
$ref: '#/components/schemas/CosmosSuggestedFees'
description: The suggested fees.
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- cosmos_transaction_type_details
- sender
- suggested_fees
title: PredictedCosmosTransaction
EnrichedUtxoChain:
properties:
chain_type:
type: string
const: utxo
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/UtxoChainUniqueId'
description: The UTXO chain unique ID.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedUtxoChain
PredictedArchTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: arch_transaction
title: Type
description: ARCH transaction type.
expected_result:
$ref: '#/components/schemas/ArchTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedArchChain'
description: The details of the chain that this message is on.
arch_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/ArchNativeTransferDetails'
- $ref: '#/components/schemas/ArchTokenTransferDetails'
- $ref: '#/components/schemas/ArchRawTransactionDetails'
description: Details of the Arch transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/ArchNativeTransferDetails'
raw_transaction: '#/components/schemas/ArchRawTransactionDetails'
token_transfer: '#/components/schemas/ArchTokenTransferDetails'
sender:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The sender of the transaction.
instructions:
items:
$ref: '#/components/schemas/ArchCompiledInstruction'
type: array
title: Instructions
description: The instructions of the transaction.
raw_transaction:
title: Raw Transaction
description: The serialized transaction encoded as a base64 string
type: string
example: SGVsbG8=
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- arch_transaction_type_details
- sender
- instructions
title: PredictedArchTransaction
SuiMergeCoinsCommand:
properties:
type:
type: string
const: merge_coins
title: Type
description: The type of the command.
source_coin_objects:
items:
$ref: '#/components/schemas/SuiCommandArgument'
type: array
title: Source Coin Objects
description: The coins to merge.
destination_coin_object:
$ref: '#/components/schemas/SuiCommandArgument'
description: The coin to merge into.
type: object
required:
- type
- source_coin_objects
- destination_coin_object
title: SuiMergeCoinsCommand
description: Merge coins into a single coin.
SuiEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/SuiBalanceChangeEffect'
type: array
title: Balance Changes
description: The aggregated balance changes of addresses.
transfers:
items:
$ref: '#/components/schemas/SuiTransferEffect'
type: array
title: Transfers
description: The transfer events of the transaction.
type: object
required:
- balance_changes
- transfers
title: SuiEffects
TronBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: TronBalanceChangeEffect
SolanaMessageVersion:
type: string
enum:
- legacy
- v0
title: SolanaMessageVersion
TronChainUniqueId:
type: string
enum:
- tron_mainnet
- tron_shasta
title: TronChainUniqueId
PredictedSpotSwap:
oneOf:
- $ref: '#/components/schemas/PredictedAptosMessage'
- $ref: '#/components/schemas/PredictedAptosTransaction'
- $ref: '#/components/schemas/PredictedArchTransaction'
- $ref: '#/components/schemas/PredictedCantonTransaction'
- $ref: '#/components/schemas/PredictedCosmosTransaction'
- $ref: '#/components/schemas/PredictedCosmosMessage'
- $ref: '#/components/schemas/PredictedEvmMessage'
- $ref: '#/components/schemas/PredictedEvmTransaction'
- $ref: '#/components/schemas/PredictedExchangeTransaction'
- $ref: '#/components/schemas/PredictedSolanaMessage'
- $ref: '#/components/schemas/PredictedSolanaTransaction'
- $ref: '#/components/schemas/PredictedStacksTransaction'
- $ref: '#/components/schemas/PredictedStarknetMessage'
- $ref: '#/components/schemas/PredictedStarknetTransaction'
- $ref: '#/components/schemas/PredictedStellarMessage'
- $ref: '#/components/schemas/PredictedStellarTransaction'
- $ref: '#/components/schemas/PredictedSuiMessage'
- $ref: '#/components/schemas/PredictedSuiTransaction'
- $ref: '#/components/schemas/PredictedTonMessage'
- $ref: '#/components/schemas/PredictedTonTransaction'
- $ref: '#/components/schemas/PredictedTronMessage'
- $ref: '#/components/schemas/PredictedTronTransaction'
- $ref: '#/components/schemas/PredictedUtxoMessage'
- $ref: '#/components/schemas/PredictedUtxoTransaction'
discriminator:
propertyName: type
mapping:
aptos_message: '#/components/schemas/PredictedAptosMessage'
aptos_transaction: '#/components/schemas/PredictedAptosTransaction'
arch_transaction: '#/components/schemas/PredictedArchTransaction'
canton_transaction: '#/components/schemas/PredictedCantonTransaction'
cosmos_message: '#/components/schemas/PredictedCosmosMessage'
cosmos_transaction: '#/components/schemas/PredictedCosmosTransaction'
evm_message: '#/components/schemas/PredictedEvmMessage'
evm_transaction: '#/components/schemas/PredictedEvmTransaction'
exchange_transaction: '#/components/schemas/PredictedExchangeTransaction'
solana_message: '#/components/schemas/PredictedSolanaMessage'
solana_transaction: '#/components/schemas/PredictedSolanaTransaction'
stacks_transaction: '#/components/schemas/PredictedStacksTransaction'
starknet_message: '#/components/schemas/PredictedStarknetMessage'
starknet_transaction: '#/components/schemas/PredictedStarknetTransaction'
stellar_message: '#/components/schemas/PredictedStellarMessage'
stellar_transaction: '#/components/schemas/PredictedStellarTransaction'
sui_message: '#/components/schemas/PredictedSuiMessage'
sui_transaction: '#/components/schemas/PredictedSuiTransaction'
ton_message: '#/components/schemas/PredictedTonMessage'
ton_transaction: '#/components/schemas/PredictedTonTransaction'
tron_message: '#/components/schemas/PredictedTronMessage'
tron_transaction: '#/components/schemas/PredictedTronTransaction'
utxo_message: '#/components/schemas/PredictedUtxoMessage'
utxo_transaction: '#/components/schemas/PredictedUtxoTransaction'
StarknetChainUniqueId:
type: string
enum:
- starknet_mainnet
title: StarknetChainUniqueId
TonNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: TON asset identifier type.
chain:
$ref: '#/components/schemas/TonChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: TonNativeAssetIdentifierRequest
ChainalysisAlert:
properties:
category:
$ref: '#/components/schemas/Category'
description: The category of the AML rule.
risk_rating:
$ref: '#/components/schemas/RiskRating'
description: Defines the alert's risk as SEVERE, HIGH, MEDIUM, or LOW.
exposure_type:
$ref: '#/components/schemas/ExposureType'
description: Defines the exposure direction as DIRECT. Currently, we don't provide indirect exposure for withdrawal attempt alerts.
service:
title: Service
description: The name of the service as defined by Chainalysis. If null returns, Chainalysis has not yet identified the service's name.
type: string
type: object
required:
- category
- risk_rating
- exposure_type
title: ChainalysisAlert
PredictedStellarTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: stellar_transaction
title: Type
description: Stellar transaction type.
expected_result:
$ref: '#/components/schemas/StellarTransactionResult'
description: The expected result of the transaction.
chain:
$ref: '#/components/schemas/EnrichedStellarChain'
description: The chain this transaction is on.
stellar_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/StellarNativeTransferDetails'
- $ref: '#/components/schemas/StellarClassicAssetTransferDetails'
- $ref: '#/components/schemas/StellarSorobanTokenTransferDetails'
- $ref: '#/components/schemas/StellarChangeTrustDetails'
- $ref: '#/components/schemas/StellarRawTransactionDetails'
- $ref: '#/components/schemas/StellarClaimClaimableBalanceDetails'
description: Details of the Stellar transaction based on its type.
discriminator:
propertyName: type
mapping:
change_trust: '#/components/schemas/StellarChangeTrustDetails'
claim_claimable_balance: '#/components/schemas/StellarClaimClaimableBalanceDetails'
classic_asset_transfer: '#/components/schemas/StellarClassicAssetTransferDetails'
native_transfer: '#/components/schemas/StellarNativeTransferDetails'
raw_transaction: '#/components/schemas/StellarRawTransactionDetails'
soroban_token_transfer: '#/components/schemas/StellarSorobanTokenTransferDetails'
sender:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the transaction.
memo:
title: Memo
description: The memo attached to this Stellar transaction, if any.
type: string
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The JSON representation of the transaction's data, for raw transactions.
type: string
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- stellar_transaction_type_details
- sender
title: PredictedStellarTransaction
StacksNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: A transaction involving the transfer of Stacks coin from one address to another.
sender:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: StacksNativeTransferDetails
SuiGasConfig:
properties:
owner:
title: Owner
description: The owner of the gas config. Used for sponsored transactions.
type: string
maxLength: 66
minLength: 66
pattern: ^0[xX][a-fA-F0-9]+$
example: '0x3300c18e7b931bdfc73dccf3e2d043ad1c9d120c777fff5aeeb9956224e5247a'
budget:
title: Budget
description: The budget of the gas in the transaction (in MIST).
type: string
pattern: ^0*[1-9]\d*$
example: '1000000000000000000'
price:
title: Price
description: The price per gas unit (in MIST).
type: string
pattern: ^0*[1-9]\d*$
example: '1000000000000000000'
payment:
items:
$ref: '#/components/schemas/SuiObjectRef'
type: array
title: Payment
description: The list of SUI coins used to pay for the gas.
type: object
required:
- payment
title: SuiGasConfig
PredictedStellarMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: stellar_message
title: Type
description: Stellar message type.
stellar_message_type:
$ref: '#/components/schemas/StellarMessageType'
description: The type of the Stellar message.
chain:
$ref: '#/components/schemas/EnrichedStellarChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the message.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- stellar_message_type
- chain
- sender
- message_to_display
title: PredictedStellarMessage
StarknetFees:
properties:
fee_payed:
type: string
pattern: ^\d+$
title: Fee Payed
description: The fee payed for the transaction.
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- fee_payed
- priced_asset
title: StarknetFees
UtxoAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: utxo
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 74
minLength: 14
title: Address
description: The address on the utxo chain.
example: bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
chain:
$ref: '#/components/schemas/UtxoChain'
description: The chain the contact belongs to.
type: object
required:
- chain_type
- address
- chain
title: UtxoAddressBookContactAddressRef
CosmosNativeCoinWithAmount:
properties:
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the coin in base unit (for example uatom).
example: '1000000000000000000'
type:
type: string
const: native
title: Type
coin:
$ref: '#/components/schemas/CosmosNativeCoin'
description: The coin.
type: object
required:
- amount
- type
- coin
title: CosmosNativeCoinWithAmount
GetProvidersResponse:
properties:
providers:
items:
$ref: '#/components/schemas/ProviderInfo'
type: array
title: Providers
description: The providers.
type: object
required:
- providers
title: GetProvidersResponse
HyperliquidTypedMessageEvmMessage:
properties:
domain:
$ref: '#/components/schemas/EvmMessageDomainData'
description: The domain data.
primary_type:
type: string
title: Primary Type
description: Used to identify the primary type of the message.
enriched_addresses:
additionalProperties:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
title: Enriched Addresses
description: 'Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses'
default: {}
type:
type: string
const: hyperliquid
title: Type
description: The typed message type.
hyperliquid_chain:
type: string
title: Hyperliquid Chain
description: Hyperliquid network identifier, e.g. `Mainnet`.
default: ''
action_type:
oneOf:
- $ref: '#/components/schemas/HyperliquidWithdrawAction'
- $ref: '#/components/schemas/HyperliquidUsdSendAction'
- $ref: '#/components/schemas/HyperliquidSpotSendAction'
- $ref: '#/components/schemas/HyperliquidSendAssetAction'
- $ref: '#/components/schemas/HyperliquidVaultTransferAction'
- $ref: '#/components/schemas/HyperliquidUsdClassTransferAction'
- $ref: '#/components/schemas/HyperliquidSendToEvmWithDataAction'
- $ref: '#/components/schemas/HyperliquidUnknownAction'
description: Action-specific details. Discriminated by the nested `action_type` field.
discriminator:
propertyName: action_type
mapping:
send_asset: '#/components/schemas/HyperliquidSendAssetAction'
send_to_evm_with_data: '#/components/schemas/HyperliquidSendToEvmWithDataAction'
spot_send: '#/components/schemas/HyperliquidSpotSendAction'
unknown_action: '#/components/schemas/HyperliquidUnknownAction'
usd_class_transfer: '#/components/schemas/HyperliquidUsdClassTransferAction'
usd_send: '#/components/schemas/HyperliquidUsdSendAction'
vault_transfer: '#/components/schemas/HyperliquidVaultTransferAction'
withdraw: '#/components/schemas/HyperliquidWithdrawAction'
type: object
required:
- domain
- primary_type
- type
- action_type
title: HyperliquidTypedMessageEvmMessage
description: 'Hyperliquid typed message with nested action details.
The action_type field is a discriminated union that routes to the correct
per-action model. Action-specific fields live in the nested model, not here.'
HyperliquidVaultTransferAction:
properties:
action_type:
type: string
const: vault_transfer
title: Action Type
description: The Hyperliquid action type.
vault_address:
type: string
title: Vault Address
description: Target vault hex address.
amount:
type: string
pattern: ^\d+(\.\d+)?$
title: Amount
description: Transfer amount as a decimal string.
example: '1000000000000000000'
nonce:
type: integer
title: Nonce
description: Replay-protection nonce.
is_deposit:
type: boolean
title: Is Deposit
description: Whether this is a deposit (`true`) or withdrawal (`false`) from the vault.
type: object
required:
- action_type
- vault_address
- amount
- nonce
- is_deposit
title: HyperliquidVaultTransferAction
description: Deposit into or withdraw from a Hyperliquid vault.
ProviderWithQuote:
properties:
provider_info:
$ref: '#/components/schemas/ProviderInfo'
description: The provider info.
quote:
description: The quote.
$ref: '#/components/schemas/Quote'
api_error:
description: The API error.
$ref: '#/components/schemas/ApiError'
type: object
required:
- provider_info
title: ProviderWithQuote
TonAssetIdentifierRequest:
properties:
type:
type: string
const: ton
title: Type
description: TON asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/TonNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/TonJettonAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
jetton: '#/components/schemas/TonJettonAssetIdentifierRequest'
native: '#/components/schemas/TonNativeAssetIdentifierRequest'
type: object
required:
- type
- details
title: TonAssetIdentifierRequest
SolanaSpotSwapBroadcastMode:
type: string
enum:
- priority_fee
- jito
title: SolanaSpotSwapBroadcastMode
TronDelegateDetails:
properties:
type:
type: string
const: delegate
title: Type
description: A TRON delegate transaction.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the transaction.
$ref: '#/components/schemas/EnrichedTronAddress'
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The json representation of the transaction's data
type: string
type: object
required:
- type
- sender
title: TronDelegateDetails
TronAssetIdentifier:
properties:
type:
type: string
const: tron
title: Type
description: TRON asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/TronNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/TronTrc20AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
native: '#/components/schemas/TronNativeAssetIdentifierRequest'
trc20: '#/components/schemas/TronTrc20AssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedTronChain'
type: object
required:
- type
- details
- chain
title: TronAssetIdentifier
SolanaNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: Solana asset identifier type.
chain:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: SolanaNativeAssetIdentifierRequest
EnrichedStarknetChain:
properties:
chain_type:
type: string
const: starknet
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The type of the Starknet-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedStarknetChain
CosmosEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/CosmosBalanceChangeEffect'
type: array
title: Balance Changes
description: The aggregated balance changes of addresses.
transfers:
items:
$ref: '#/components/schemas/CosmosTransferEffect'
type: array
title: Transfers
description: The transfer events of the transaction.
type: object
required:
- balance_changes
- transfers
title: CosmosEffects
TransactionRiskType:
type: string
enum:
- transfer_to_erc20_contract
- organization_not_interacted_with_address
- vault_not_interacted_with_address
- allowance_to_eoa
- unlimited_allowance
- contract_not_verified
- bridge_dest_differ_from_sender
- nft_approve_for_all
- missing_simulation
- unsupported_simulation
- post_conditions_allow_mode
- safe_sensitive_operation
title: TransactionRiskType
EvmBridgeEffectSourceNative:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
type:
type: string
const: native
title: Type
description: The type of bridge effect.
source_address:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The source address of the bridge transaction.
type: object
required:
- priced_asset
- type
- source_address
title: EvmBridgeEffectSourceNative
StarknetAssetIdentifier:
properties:
type:
type: string
const: starknet
title: Type
description: Starknet asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
erc20: '#/components/schemas/StarknetErc20AssetIdentifierRequest'
native: '#/components/schemas/StarknetNativeAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedStarknetChain'
type: object
required:
- type
- details
- chain
title: StarknetAssetIdentifier
EvmNativeAssetIdentifierRequest:
properties:
type:
type: string
const: native
title: Type
description: EVM asset identifier type.
chain:
type: string
minLength: 1
title: EvmChainUniqueId
description: The details of the chain of the native asset.
type: object
required:
- type
- chain
title: EvmNativeAssetIdentifierRequest
SolanaAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: solana
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The address on the Solana chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
chains:
items:
$ref: '#/components/schemas/SolanaChain'
type: array
title: Chains
description: The chains the contact belongs to.
type: object
required:
- chain_type
- address
- chains
title: SolanaAddressBookContactAddressRef
KnownAssetStacksPostCondition:
properties:
address:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The address this post condition applies to.
condition_code:
$ref: '#/components/schemas/StacksPostConditionComparator'
description: The condition code of the post condition.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the asset this post condition applies to.
example: '1000000000000000000'
type:
type: string
const: known_asset
title: Type
description: The type of the post condition.
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset this post condition applies to.
type: object
required:
- address
- condition_code
- amount
- type
- priced_asset
title: KnownAssetStacksPostCondition
EvmEffectsBase:
properties:
balance_changes:
items:
$ref: '#/components/schemas/EvmBalanceChangeEffect'
type: array
title: Balance Changes
description: 'The aggregated balance changes at the addresses that are involved in the transaction. Values are indicated for all currency components of the transactions: native, ERC-20'
transfers:
items:
$ref: '#/components/schemas/EvmTransferEffect'
type: array
title: Transfers
description: The transfer events of the transaction.
allowances:
items:
$ref: '#/components/schemas/EvmAllowanceEffect'
type: array
title: Allowances
description: Allowances set or modified as a result of the transaction
bridges:
items:
$ref: '#/components/schemas/EvmBridgesEffect'
type: array
title: Bridges
description: The bridge effects of the transaction.
type: object
required:
- balance_changes
- transfers
title: EvmEffectsBase
TonJettonTransferDetails:
properties:
type:
type: string
const: jetton_transfer
title: Type
description: 'A transaction involving the transfer of Jetton from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The sender of the assets.
recipient:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The recipient of the assets.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: TonJettonTransferDetails
SpotSwap:
properties:
transactions:
items:
$ref: '#/components/schemas/CreateTransactionResponse'
type: array
title: Transactions
description: The created transactions.
type: object
required:
- transactions
title: SpotSwap
StellarNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: A transaction involving the transfer of native XLM (lumens) from one address to another.
sender:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The sender of the assets.
recipient:
description: The recipient of the assets.
$ref: '#/components/schemas/EnrichedStellarAddress'
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
title: StellarNativeTransferDetails
ContractCallDetails:
properties:
type:
type: string
const: contract_call
title: Type
description: A transaction involving a generic call to a smart contract.
type: object
required:
- type
title: ContractCallDetails
TransactionFeePayerVault:
properties:
type:
type: string
const: vault
title: Type
vault_id:
type: string
format: uuid
title: Vault Id
description: The unique identifier of the vault that pays the fee.
type: object
required:
- type
- vault_id
title: TransactionFeePayerVault
BatchData:
properties:
batch_id:
type: string
format: uuid
title: Batch Id
description: The unique identifier of the batch.
index_in_batch:
type: integer
title: Index In Batch
description: Index of transaction in the batch.
batch_size:
type: integer
title: Batch Size
description: The number of transactions in the batch.
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by this message.
type: object
required:
- batch_id
- index_in_batch
- batch_size
- matched_policies
title: BatchData
DappInfo:
properties:
url:
type: string
title: Url
description: The URL of the dapp.
name:
type: string
title: Name
description: The name of the dapp.
type: object
required:
- url
- name
title: DappInfo
FeePaidByVault:
properties:
type:
type: string
const: vault
title: Type
description: The type of fee payer.
vault:
$ref: '#/components/schemas/VaultRef'
description: The vault that paid the fee for this transaction.
type: object
required:
- type
- vault
title: FeePaidByVault
AptosCoinAssetIdentifierRequest:
properties:
type:
type: string
const: coin
title: Type
description: Legacy coin asset identifier type.
coin_type:
$ref: '#/components/schemas/AptosCoinTypeRequest'
description: The legacy coin details.
type: object
required:
- type
- coin_type
title: AptosCoinAssetIdentifierRequest
SuiGas:
properties:
total_gas:
type: string
pattern: ^-?\d+$
title: Total Gas
description: The total gas fee of the transaction (in MIST).
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- total_gas
- priced_asset
title: SuiGas
UtxoAssetIdentifierRequest:
properties:
type:
type: string
const: utxo
title: Type
description: Utxo asset identifier type.
details:
$ref: '#/components/schemas/UtxoNativeAssetIdentifierRequest'
type: object
required:
- type
- details
title: UtxoAssetIdentifierRequest
Dapp:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of this DApp.
name:
type: string
title: Name
description: The name of the DApp.
url:
title: Url
description: The URL of the DApp.
type: string
minLength: 1
format: uri
logo_url:
title: Logo Url
description: The logo URL of the DApp.
type: string
minLength: 1
format: uri
contracts_count:
type: integer
title: Contracts Count
description: The number of contracts associated with this DApp.
default: 0
type: object
required:
- id
- name
title: Dapp
AptosScriptDetails:
properties:
type:
type: string
const: script
title: Type
description: A transaction with running a move script.
code:
type: string
pattern: ^[a-fA-F0-9]*$
title: Code
description: The code of the script.
type: object
required:
- type
- code
title: AptosScriptDetails
ArchTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: arch_transaction
title: Type
description: The type of the transaction.
arch_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/ArchNativeTransferDetails'
- $ref: '#/components/schemas/ArchTokenTransferDetails'
- $ref: '#/components/schemas/ArchRawTransactionDetails'
description: Details of the Arch transaction based on its type.
discriminator:
propertyName: type
mapping:
native_transfer: '#/components/schemas/ArchNativeTransferDetails'
raw_transaction: '#/components/schemas/ArchRawTransactionDetails'
token_transfer: '#/components/schemas/ArchTokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedArchChain'
description: The details of the chain this transaction is on.
instructions:
items:
$ref: '#/components/schemas/ArchCompiledInstruction'
type: array
title: Instructions
description: The instructions of the transaction.
accounts:
items:
$ref: '#/components/schemas/ArchTransactionAccount'
type: array
title: Accounts
description: Accounts used in the transaction.
sender:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The sender of the transaction.
raw_transaction:
title: Raw Transaction
description: The serialized transaction encoded as a base64 string
type: string
example: SGVsbG8=
hash:
title: Hash
description: The hash of the transaction.
type: string
recent_blockhash:
title: Recent Blockhash
description: The transaction nonce (last block hash).
type: string
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/ArchTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/ArchTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, gomaestro
example: https://explorer.gomaestro.org/arch/testnet/tx/1234567890
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- arch_transaction_type_details
- chain
- instructions
- accounts
- sender
title: ArchTransaction
DirectSignDoc:
properties:
format:
type: string
const: direct
title: Format
body:
type: string
title: Body
description: Body bytes, encoded in base64 format.
example: SGVsbG8=
auth_info:
type: string
title: Auth Info
description: Auth info bytes, encoded in base64 format.
example: SGVsbG8=
chain:
$ref: '#/components/schemas/EnrichedCosmosChain'
description: The chain the transaction is signed on.
account_number:
type: string
pattern: ^\d+$
title: Account Number
description: The account number.
example: '1000000000000000000'
signed_body:
type: string
title: Signed Body
description: Actual body bytes that were used when signing the transaction, encoded in base64 format.
example: SGVsbG8=
signed_auth_info:
type: string
title: Signed Auth Info
description: Actual auth info that was used when signing the transaction, encoded in base64 format.
example: SGVsbG8=
type: object
required:
- format
- body
- auth_info
- chain
- account_number
- signed_body
- signed_auth_info
title: DirectSignDoc
AmlPolicyMatchIncoming:
properties:
is_default:
type: boolean
title: Is Default
description: '`True` if this is the default rule, `False` otherwise.'
rule_id:
type: string
format: uuid
title: Rule Id
description: The unique identifier of the rule.
rule_name:
type: string
title: Rule Name
description: The name of the rule.
action_type:
$ref: '#/components/schemas/AmlPolicyMatchIncomingActionType'
description: 'The action taken in the event of a policy match. Can be: - Allow automatically
- Freeze
- Skip
'
type: object
required:
- is_default
- rule_id
- rule_name
- action_type
title: AmlPolicyMatchIncoming
StacksReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
title: StacksReversionState
StarknetBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: StarknetBalanceChangeEffect
StellarAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: stellar
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 56
minLength: 56
pattern: ^[GCL][A-Z2-7]{55}$
title: Address
description: The address on the Stellar chain.
example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2
chains:
items:
$ref: '#/components/schemas/StellarChain'
type: array
title: Chains
description: The chains the contact belongs to.
memo:
title: Memo
description: Memo is an additional address feature used for identifying a recipient.
type: string
type: object
required:
- chain_type
- address
- chains
title: StellarAddressBookContactAddressRef
TronMessage:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
state:
$ref: '#/components/schemas/NonPushableTransactionState'
description: The state of the message.
state_changes:
items:
$ref: '#/components/schemas/NonPushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the message.
type:
type: string
const: tron_message
title: Type
description: TRON message type.
tron_message_type:
$ref: '#/components/schemas/TronMessageType'
description: The type of the Tron message.
raw_data:
type: string
title: Raw Data
description: The raw data of the message.
chain:
$ref: '#/components/schemas/EnrichedTronChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the message.
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- tron_message_type
- raw_data
- chain
- sender
title: TronMessage
UserState:
type: string
enum:
- active
- onboarding_pending_code_generation
- onboarding_pending_activation
- reset_device_pending_code_generation
- reset_device_pending_activation
- pending_approval
- deleted
title: UserState
CreateTransactionResponse:
oneOf:
- $ref: '#/components/schemas/AptosMessage'
- $ref: '#/components/schemas/AptosTransaction'
- $ref: '#/components/schemas/ArchTransaction'
- $ref: '#/components/schemas/BlackBoxSignature'
- $ref: '#/components/schemas/CantonTransaction'
- $ref: '#/components/schemas/CosmosTransaction'
- $ref: '#/components/schemas/CosmosMessage'
- $ref: '#/components/schemas/EvmMessage'
- $ref: '#/components/schemas/EvmTransaction'
- $ref: '#/components/schemas/ExchangeTransaction'
- $ref: '#/components/schemas/SolanaMessage'
- $ref: '#/components/schemas/SolanaTransaction'
- $ref: '#/components/schemas/StacksTransaction'
- $ref: '#/components/schemas/StarknetMessage'
- $ref: '#/components/schemas/StarknetTransaction'
- $ref: '#/components/schemas/StellarMessage'
- $ref: '#/components/schemas/StellarTransaction'
- $ref: '#/components/schemas/SuiMessage'
- $ref: '#/components/schemas/SuiTransaction'
- $ref: '#/components/schemas/TonMessage'
- $ref: '#/components/schemas/TonTransaction'
- $ref: '#/components/schemas/TronMessage'
- $ref: '#/components/schemas/TronTransaction'
- $ref: '#/components/schemas/UtxoMessage'
- $ref: '#/components/schemas/UtxoTransaction'
discriminator:
propertyName: type
mapping:
aptos_message: '#/components/schemas/AptosMessage'
aptos_transaction: '#/components/schemas/AptosTransaction'
arch_transaction: '#/components/schemas/ArchTransaction'
black_box_signature: '#/components/schemas/BlackBoxSignature'
canton_transaction: '#/components/schemas/CantonTransaction'
cosmos_message: '#/components/schemas/CosmosMessage'
cosmos_transaction: '#/components/schemas/CosmosTransaction'
evm_message: '#/components/schemas/EvmMessage'
evm_transaction: '#/components/schemas/EvmTransaction'
exchange_transaction: '#/components/schemas/ExchangeTransaction'
solana_message: '#/components/schemas/SolanaMessage'
solana_transaction: '#/components/schemas/SolanaTransaction'
stacks_transaction: '#/components/schemas/StacksTransaction'
starknet_message: '#/components/schemas/StarknetMessage'
starknet_transaction: '#/components/schemas/StarknetTransaction'
stellar_message: '#/components/schemas/StellarMessage'
stellar_transaction: '#/components/schemas/StellarTransaction'
sui_message: '#/components/schemas/SuiMessage'
sui_transaction: '#/components/schemas/SuiTransaction'
ton_message: '#/components/schemas/TonMessage'
ton_transaction: '#/components/schemas/TonTransaction'
tron_message: '#/components/schemas/TronMessage'
tron_transaction: '#/components/schemas/TronTransaction'
utxo_message: '#/components/schemas/UtxoMessage'
utxo_transaction: '#/components/schemas/UtxoTransaction'
PredictedUtxoMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: utxo_message
title: Type
description: The type of the transaction.
chain:
$ref: '#/components/schemas/EnrichedUtxoChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedUtxoAddress'
description: The sender of the message.
utxo_message_type:
$ref: '#/components/schemas/UtxoMessageType'
description: The type of the message to sign.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- utxo_message_type
- message_to_display
title: PredictedUtxoMessage
CantonTokenTransferDetails:
properties:
type:
type: string
const: token_transfer
title: Type
description: A transaction involving the transfer of a CIP-56 token from one address to another.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the recipient is unknown.
type: boolean
type: object
required:
- type
title: CantonTokenTransferDetails
SuiCommandArgument:
oneOf:
- $ref: '#/components/schemas/SuiCommandInputArgument'
- $ref: '#/components/schemas/SuiCommandGasCoinArgument'
- $ref: '#/components/schemas/SuiCommandResultArgument'
- $ref: '#/components/schemas/SuiCommandNestedResultArgument'
discriminator:
propertyName: type
mapping:
gas_coin: '#/components/schemas/SuiCommandGasCoinArgument'
input: '#/components/schemas/SuiCommandInputArgument'
nested_result: '#/components/schemas/SuiCommandNestedResultArgument'
result: '#/components/schemas/SuiCommandResultArgument'
CreateSwapErrorType:
type: string
enum:
- revoke_allowance_first
- quote_not_found
- blocked_by_policy
- transaction_uses_secure_node
title: CreateSwapErrorType
CantonChainUniqueId:
type: string
enum:
- canton_mainnet
title: CantonChainUniqueId
CreateSpotSwapRequest:
properties:
quote_id:
type: string
format: uuid
title: Quote Id
description: The ID of the quote.
vault_id:
type: string
format: uuid
title: Vault Id
description: The unique identifier of the vault.
input_asset_identifier:
$ref: '#/components/schemas/AssetIdentifierRequest'
description: The input asset identifier.
output_asset_identifier:
$ref: '#/components/schemas/AssetIdentifierRequest'
description: The output asset identifier.
amount:
type: string
pattern: ^0*[1-9]\d*$
title: Amount
description: The amount to swap.
example: '1000000000000000000'
slippage_bps:
title: Slippage Bps
description: The slippage tolerance in basis points.
type: string
pattern: ^\d+(\.\d+)?$
example: '1000000000000000000'
fee:
description: The fee configuration for the transaction.
$ref: '#/components/schemas/SpotSwapFeeRequest'
fee_payer:
description: The vault that pays the fee for this transaction.
$ref: '#/components/schemas/TransactionFeePayerVault'
signer_type:
$ref: '#/components/schemas/SignerType'
description: 'The signer of the swap request. Can be: - `initiator`: The creator of the swap request (default).
- `api_signer`: A service that you run on your own network or cloud environment.
'
default: initiator
fail_on_prediction_failure:
type: boolean
title: Fail On Prediction Failure
description: '`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
use_secure_node:
type: boolean
title: Use Secure Node
description: Use a secure node to send the transaction. By using a secure node, you avoid maximal extractable value (MEV) attacks.
default: false
deprecated: true
use_mev_protected_node:
type: boolean
title: Use Mev Protected Node
description: Use an MEV protected node to send the transaction. By using an MEV protected node, you avoid maximal extractable value (MEV) attacks.
default: false
dapp_info:
description: The DApp information.
$ref: '#/components/schemas/DappInfo'
type: object
required:
- quote_id
- vault_id
- input_asset_identifier
- output_asset_identifier
- amount
title: CreateSpotSwapRequest
StellarSorobanAssetIdentifierRequest:
properties:
type:
type: string
const: soroban_asset
title: Type
description: Stellar asset identifier type.
address:
type: string
maxLength: 56
minLength: 56
pattern: ^[GCL][A-Z2-7]{55}$
title: Address
description: The Soroban asset address.
example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain of the Soroban asset.
type: object
required:
- type
- address
- chain
title: StellarSorobanAssetIdentifierRequest
CosmosSuggestedFees:
properties:
type:
type: string
const: cosmos
title: Type
description: The type of the chain.
chain_unique_id:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The cosmos chain unique id.
fee_per_signature:
title: Fee Per Signature
description: The fee paid for each signature in the transaction.
type: number
type: object
required:
- type
- chain_unique_id
title: CosmosSuggestedFees
SuiCommandResultArgument:
properties:
type:
type: string
const: result
title: Type
description: The type of the command argument.
index:
type: integer
title: Index
description: The index of the command in the command vector.
type: object
required:
- type
- index
title: SuiCommandResultArgument
description: The result of another command.
TronEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/TronBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/TronTransferEffect'
type: array
title: Transfers
type: object
required:
- balance_changes
- transfers
title: TronEffects
AmlCheck:
properties:
results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
incoming_aml_check:
description: The AML policy match for incoming transactions. Will be present only for incoming transactions.
$ref: '#/components/schemas/IncomingAmlCheck'
type: object
title: AmlCheck
StacksBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedStacksAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: StacksBalanceChangeEffect
UnknownTypedMessageEvmMessage:
properties:
domain:
$ref: '#/components/schemas/EvmMessageDomainData'
description: The domain data.
primary_type:
type: string
title: Primary Type
description: Used to identify the primary type of the message.
enriched_addresses:
additionalProperties:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
title: Enriched Addresses
description: 'Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses'
default: {}
type:
type: string
const: unknown
title: Type
description: The typed message type.
type: object
required:
- domain
- primary_type
- type
title: UnknownTypedMessageEvmMessage
AptosAssetIdentifier:
properties:
type:
type: string
const: aptos
title: Type
description: Aptos asset identifier type.
details:
oneOf:
- $ref: '#/components/schemas/AptosNativeAssetIdentifierRequest'
- $ref: '#/components/schemas/AptosCoinAssetIdentifierRequest'
- $ref: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
discriminator:
propertyName: type
mapping:
coin: '#/components/schemas/AptosCoinAssetIdentifierRequest'
native: '#/components/schemas/AptosNativeAssetIdentifierRequest'
new_coin: '#/components/schemas/AptosNewCoinAssetIdentifierRequest'
chain:
$ref: '#/components/schemas/EnrichedAptosChain'
type: object
required:
- type
- details
- chain
title: AptosAssetIdentifier
AptosEntryFunctionPayload:
properties:
typed_arguments:
items:
type: string
type: array
title: Typed Arguments
description: The typed arguments of the transaction.
arguments:
items:
type: string
type: array
title: Arguments
description: The arguments of the transaction.
type:
type: string
const: entry_point
title: Type
function_id:
type: string
title: Function Id
description: The entry function of the transaction.
address:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The address of the entry function.
module:
type: string
title: Module
description: The module of the entry function.
function_name:
type: string
title: Function Name
description: The name of the entry function.
type: object
required:
- typed_arguments
- arguments
- type
- function_id
- address
- module
- function_name
title: AptosEntryFunctionPayload
CosmosTransactionResult:
properties:
message:
title: Message
description: In case of error, the message describes what failed.
type: string
gas_debit:
$ref: '#/components/schemas/CosmosGasDebit'
description: The gas debit of the transaction.
effects:
$ref: '#/components/schemas/CosmosEffects'
description: The effects of the transaction.
type: object
required:
- gas_debit
- effects
title: CosmosTransactionResult
AmlResults:
properties:
scan_status:
$ref: '#/components/schemas/AmlScanStatus'
description: The status of the AML scan.
error_message:
title: Error Message
description: The error message if the scan failed.
type: string
scan_results:
oneOf:
- $ref: '#/components/schemas/ChainalysisScanResult'
discriminator:
propertyName: type
mapping:
chainalysis: '#/components/schemas/ChainalysisScanResult'
type: object
required:
- scan_status
title: AmlResults
CantonApprovalStatus:
type: string
enum:
- requires_approval
- approved
- expired
title: CantonApprovalStatus
ClaimStatus:
type: string
enum:
- claimable
- claimed
title: ClaimStatus
SolanaAddressRequest:
properties:
chain:
$ref: '#/components/schemas/SolanaChainUniqueId'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
type: object
required:
- chain
- base58_repr
title: SolanaAddressRequest
description: Address represents a blockchain address.
PredictedAptosTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: aptos_transaction
title: Type
description: Aptos transaction type.
expected_result:
$ref: '#/components/schemas/AptosTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedAptosChain'
description: The details of the chain that this transaction is on.
payload:
oneOf:
- $ref: '#/components/schemas/AptosEntryFunctionPayload'
- $ref: '#/components/schemas/ScriptPayload'
description: The payload of the transaction.
discriminator:
propertyName: type
mapping:
entry_point: '#/components/schemas/AptosEntryFunctionPayload'
script: '#/components/schemas/ScriptPayload'
aptos_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/AptosNativeTransferDetails'
- $ref: '#/components/schemas/AptosCoinTransferDetails'
- $ref: '#/components/schemas/AptosEntryPointDetails'
- $ref: '#/components/schemas/AptosScriptDetails'
description: Details of the Aptos transaction based on its type.
discriminator:
propertyName: type
mapping:
coin_transfer: '#/components/schemas/AptosCoinTransferDetails'
entry_point: '#/components/schemas/AptosEntryPointDetails'
native_transfer: '#/components/schemas/AptosNativeTransferDetails'
script: '#/components/schemas/AptosScriptDetails'
suggested_fees:
$ref: '#/components/schemas/AptosSuggestedFees'
description: The suggested fees.
gas_submitted:
$ref: '#/components/schemas/AptosGasData'
description: The gas details submitted for the transaction.
with_external_fee_payer:
type: boolean
title: With External Fee Payer
description: If true, the transaction's Authenticator will be configured to support an external fee payer. After Fordefi signs the transaction, the client is responsible for forwarding it to the designated fee payer for final signing and broadcasting.
default: false
fee_payer:
description: The address of the fee payer vault for sponsored transactions.
$ref: '#/components/schemas/EnrichedAptosAddress'
sender:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The sender of the transaction.
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- payload
- aptos_transaction_type_details
- suggested_fees
- gas_submitted
- sender
title: PredictedAptosTransaction
SuiTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/SuiReversion'
description: Details whether the transaction was reverted or not.
transaction_error:
title: Transaction Error
description: The description of the error of the transaction.
type: string
enriched_gas:
$ref: '#/components/schemas/SuiGas'
description: The gas of the transaction.
effects:
$ref: '#/components/schemas/SuiEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- enriched_gas
- effects
title: SuiTransactionResult
EnrichedArchChain:
properties:
chain_type:
type: string
const: arch
title: Chain Type
description: The type of the chain.
unique_id:
$ref: '#/components/schemas/ArchChainUniqueId'
description: The type of the Arch-based chain.
name:
type: string
minLength: 1
title: Name
description: The full blockchain name.
native_currency_symbol:
type: string
minLength: 1
title: Native Currency Symbol
description: The native currency symbol.
example: ETH
native_currency_name:
type: string
minLength: 1
title: Native Currency Name
description: The native currency name.
example: Ether
blockchain_explorer:
$ref: '#/components/schemas/BlockchainExplorer'
logo_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Logo Url
description: The logo URL of the chain.
is_testnet:
type: boolean
title: Is Testnet
description: Whether the chain is on a testnet.
is_enabled:
type: boolean
title: Is Enabled
description: Whether the chain is enabled.
type: object
required:
- chain_type
- unique_id
- name
- native_currency_symbol
- native_currency_name
- logo_url
- is_testnet
- is_enabled
title: EnrichedArchChain
SuiMessageType:
type: string
enum:
- personal_message_type
title: SuiMessageType
StellarBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedStellarAddress'
description: The address affected by the balance change.
is_pending:
type: boolean
title: Is Pending
description: Whether this balance change is pending (e.g. claimable balance).
default: false
type: object
required:
- priced_asset
- diff
- address
title: StellarBalanceChangeEffect
CosmosNativeCoin:
properties:
name:
type: string
title: Name
description: The name of the coin.
symbol:
type: string
title: Symbol
description: The symbol of the coin.
display:
title: Display
description: The display string of the coin.
deprecated: true
type: string
description:
title: Description
description: The description of the coin.
deprecated: true
type: string
base_denom:
type: string
title: Base Denom
description: The base denom of the coin.
denom:
type: string
title: Denom
description: The denom of the coin.
decimals:
type: integer
title: Decimals
description: The decimals relative to the base coin.
logo_url:
title: Logo Url
description: The coin logo url.
type: string
maxLength: 2083
minLength: 1
format: uri
explorer_url:
title: Explorer Url
description: The explorer url of the coin.
type: string
maxLength: 2083
minLength: 1
format: uri
type:
type: string
const: native
title: Type
type: object
required:
- name
- symbol
- base_denom
- denom
- decimals
- type
title: CosmosNativeCoin
PredictedTronMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: tron_message
title: Type
description: TRON message type.
tron_message_type:
$ref: '#/components/schemas/TronMessageType'
description: The type of the Tron message.
chain:
$ref: '#/components/schemas/EnrichedTronChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the message.
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
type: object
required:
- matched_policies
- risks
- type
- tron_message_type
- chain
- sender
- message_to_display
title: PredictedTronMessage
CantonAddressRequest:
properties:
chain:
$ref: '#/components/schemas/CantonChainUniqueId'
description: The chain details this address is of.
account:
type: string
maxLength: 251
minLength: 70
title: Account
description: Party representation of the address in the chain.
example: 45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf
type: object
required:
- chain
- account
title: CantonAddressRequest
description: Address represents a blockchain address.
SolanaContractMetadata:
properties:
name:
title: Name
description: The name of the contract.
type: string
dapp:
description: The DApp details of the contract.
$ref: '#/components/schemas/Dapp'
is_verified:
type: boolean
title: Is Verified
description: '`True` if the contract is verified, `False` otherwise.'
token:
description: The token details of the contract.
$ref: '#/components/schemas/SplToken'
type: object
required:
- is_verified
title: SolanaContractMetadata
TronReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
title: TronReversionState
TronMessageType:
type: string
enum:
- typed_message_type_v1
- typed_message_type_v2
title: TronMessageType
EvmSpotSwapFeeRequest:
properties:
type:
type: string
const: evm
title: Type
description: EVM fee type.
details:
oneOf:
- $ref: '#/components/schemas/GasPriorityRequest'
description: The gas details of the transaction.
discriminator:
propertyName: type
mapping:
priority: '#/components/schemas/GasPriorityRequest'
type: object
required:
- type
- details
title: EvmSpotSwapFeeRequest
StellarAddressRequest:
properties:
chain:
$ref: '#/components/schemas/StellarChainUniqueId'
description: The chain details this address is of.
base32_repr:
type: string
maxLength: 56
minLength: 56
pattern: ^[GCL][A-Z2-7]{55}$
title: Base32 Repr
description: Hexadecimal representation of the address in the chain.
example: GBRPYHIL2CI3FNQ4BXLFMNDLFJHO7W3B6FSHLTAVM2A4P45SHO4ZB7I2
type: object
required:
- chain
- base32_repr
title: StellarAddressRequest
description: Address represents a blockchain address.
BridgeState:
type: string
enum:
- pending
- success
- failed
title: BridgeState
AptosBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedAptosAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: AptosBalanceChangeEffect
LegacyGas:
properties:
price:
type: string
pattern: ^\d+$
title: Price
description: The price of a gas unit.
example: '1000000000000000000'
priority:
$ref: '#/components/schemas/GasPriorityLevel'
description: The gas priority.
limit:
type: string
pattern: ^\d+$
title: Limit
description: The gas limit.
example: '1000000000000000000'
type:
type: string
const: legacy
title: Type
description: The type of gas data.
type: object
required:
- price
- priority
- limit
- type
title: LegacyGas
ApiErrorEnum:
type: string
enum:
- no_route_found
- high_slippage
- rate_limit_exceeded
- unsupported_chain
- custom_error
- consent_not_approved
title: ApiErrorEnum
ApiUserRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: api_user
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name of the user.
state:
type: string
enum:
- active
- deleted
title: State
description: The state of the user.
role:
$ref: '#/components/schemas/UserRole'
description: The role of the user.
type: object
required:
- id
- user_type
- name
- state
- role
title: ApiUserRef
BlackBoxSignatureEddsaEd25519Details:
properties:
type:
type: string
const: eddsa_ed25519
title: Type
description: EDDSA signature.
signature:
title: Signature
description: The signature, encoded in base64 format.
type: string
example: SGVsbG8=
hash_binary:
type: string
minLength: 1
title: Hash Binary
description: The payload to sign, encoded in base64 format.
example: SGVsbG8=
type: object
required:
- type
- hash_binary
title: BlackBoxSignatureEddsaEd25519Details
StellarEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/StellarBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/StellarTransferEffect'
type: array
title: Transfers
trustline_changes:
items:
$ref: '#/components/schemas/StellarTrustlineChangeEffect'
type: array
title: Trustline Changes
type: object
required:
- balance_changes
- transfers
title: StellarEffects
SolanaFeeType:
type: string
enum:
- jito
- priority_fee
title: SolanaFeeType
SolanaPriorityFeeTypeRequest:
properties:
type:
type: string
const: priority_fee
title: Type
description: Priority fee broadcast mode.
details:
oneOf:
- $ref: '#/components/schemas/SolanaCustomFeeRequest'
- $ref: '#/components/schemas/SolanaPriorityFeeRequest'
description: The fee configuration for the transaction.
discriminator:
propertyName: type
mapping:
custom: '#/components/schemas/SolanaCustomFeeRequest'
priority: '#/components/schemas/SolanaPriorityFeeRequest'
type: object
required:
- type
- details
title: SolanaPriorityFeeTypeRequest
EvmMessageDomainData:
properties:
name:
title: Name
description: The name
type: string
version:
title: Version
description: The version
type: string
chain_id:
title: EvmChainId
description: The EVM chain ID can be either one of those supported by the default chains below or a custom chain ID if one was added to your organization. - 1=`ethereum_mainnet`
- 5=`ethereum_goerli`
- 10=`optimism_mainnet`
- 14=`flare_mainnet`
- 16=`flare_testnet`
- 30=`rootstock_mainnet`
- 56=`bsc_mainnet`
- 100=`gnosis_mainnet`
- 130=`unichain_mainnet`
- 137=`polygon_mainnet`
- 143=`monad_mainnet`
- 146=`sonic_mainnet`
- 169=`manta_pacific_mainnet`
- 196=`x_layer_mainnet`
- 250=`fantom_mainnet`
- 324=`zksync_era_mainnet`
- 999=`hyperevm_mainnet`
- 1030=`conflux_mainnet`
- 1100=`dymension_mainnet`
- 1101=`polygon_zkevm_mainnet`
- 1329=`sei_mainnet`
- 1337=`hypercore_mainnet`
- 1666=`aster_mainnet`
- 1672=`pharos_mainnet`
- 1729=`reya_mainnet`
- 2222=`kava_mainnet`
- 4200=`merlin_mainnet`
- 4217=`tempo_mainnet`
- 4663=`robinhood_mainnet`
- 5000=`mantle_mainnet`
- 7000=`zeta_mainnet`
- 7700=`canto_mainnet`
- 8453=`base_mainnet`
- 8818=`clink_mainnet`
- 8819=`clink_testnet`
- 9745=`plasma_mainnet`
- 16661=`zero_gravity_mainnet`
- 17000=`ethereum_holesky`
- 80001=`polygon_mumbai`
- 80094=`berachain_mainnet`
- 42161=`arbitrum_mainnet`
- 43113=`avalanche_fuji`
- 43114=`avalanche_chain`
- 57073=`ink_mainnet`
- 59144=`linea_mainnet`
- 81457=`blast_mainnet`
- 421614=`arbitrum_sepolia`
- 534352=`scroll_mainnet`
- 660279=`xai_mainnet`
- 747474=`katana_mainnet`
- 810180=`zklink_nova_mainnet`
- 11155111=`ethereum_sepolia`
type: integer
minimum: 1.0
verifying_contract:
description: The verifying contract
$ref: '#/components/schemas/EnrichedEvmAddress'
salt:
title: Salt
description: The salt
type: string
example: SGVsbG8=
type: object
title: EvmMessageDomainData
AmlPolicyMatchOutgoingActionType:
type: string
enum:
- allow
- block
- require_approval
- skip
title: AmlPolicyMatchOutgoingActionType
SuiMoveCallCommand:
properties:
type:
type: string
const: move_call
title: Type
description: The type of the command.
arguments:
items:
$ref: '#/components/schemas/SuiCommandArgument'
type: array
title: Arguments
description: The arguments of the call.
target:
type: string
pattern: ^(.*?)::(.*?)::(.*?)$
title: Target
description: The target of the call.
type_arguments:
items:
type: string
type: array
title: Type Arguments
description: The types of the arguments.
type: object
required:
- type
- arguments
- target
- type_arguments
title: SuiMoveCallCommand
description: A call to either an entry or a public Move function.
StacksEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/StacksBalanceChangeEffect'
type: array
title: Balance Changes
transfers:
items:
$ref: '#/components/schemas/StacksTransferEffect'
type: array
title: Transfers
type: object
required:
- balance_changes
- transfers
title: StacksEffects
AmlPolicyMatchIncomingActionType:
type: string
enum:
- allow
- freeze
- skip
title: AmlPolicyMatchIncomingActionType
CosmosMultipleMessagesTransactionDetails:
properties:
transaction_data:
$ref: '#/components/schemas/MessagesList'
description: List of transaction's messages.
type:
type: string
const: messages
title: Type
description: A transaction of multiple messages.
type: object
required:
- transaction_data
- type
title: CosmosMultipleMessagesTransactionDetails
ApiSignerRef:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the user in the Fordefi platform.
user_type:
type: string
const: api_signer
title: User Type
description: The type of the user.
name:
type: string
title: Name
description: The name of the user.
state:
type: string
enum:
- active
- onboarding_pending_code_generation
- onboarding_pending_activation
- deleted
title: State
description: The state of the user.
type: object
required:
- id
- user_type
- name
- state
title: ApiSignerRef
EvmSuggestedFees:
properties:
type:
type: string
const: evm
title: Type
description: The type of the chain.
fees:
oneOf:
- $ref: '#/components/schemas/EvmLegacySuggestedFees'
- $ref: '#/components/schemas/EvmDynamicSuggestedFees'
description: The suggested gas fees.
discriminator:
propertyName: type
mapping:
dynamic: '#/components/schemas/EvmDynamicSuggestedFees'
legacy: '#/components/schemas/EvmLegacySuggestedFees'
chain_unique_id:
type: string
minLength: 1
title: EvmChainUniqueId
description: The EVM chain unique id.
type: object
required:
- type
- fees
- chain_unique_id
title: EvmSuggestedFees
ApprovalState:
type: string
enum:
- pending
- approved
- unauthorized
- not_participated
title: ApprovalState
description: Represents an approval state of a single approver
TransactionRisk:
properties:
type:
$ref: '#/components/schemas/TransactionRiskType'
description: '
Fordefi has detected that one or more of the following risks are associated with the requested transaction:- The user is transferring tokens to an ERC-20 contract (`transfer_to_erc20_contract`).
- The allowance transaction is requesting to approve a non-contract address (`allowance_to_eoa`).
- Allowance has been granted for an unlimited amount (`unlimited_allowance`).
- This bridge transaction sends funds to an address that is not the sender''s (`bridge_dest_differ_from_sender`).
- This is the first time the organization is interacting with this address (`organization_not_interacted_with_address`).
- This is the first time this vault is interacting with this address (`vault_not_interacted_with_address`).
- Trying to interact with a contract that is not verified (`contract_not_verified`).
- Approve for all NFT in a collection (`nft_approve_for_all`).
- The simulation for this transaction failed (`missing_simulation`).
- The simulation for this transaction is unsupported for this chain (`unsupported_simulation`).
'
severity:
$ref: '#/components/schemas/TransactionRiskSeverity'
description: The severity of the risk.
title:
type: string
title: Title
description: The title of the risk.
description:
type: string
title: Description
description: A detailed description of the risk.
type: object
required:
- type
- severity
- title
- description
title: TransactionRisk
EnrichedCantonAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: canton
title: Type
address:
type: string
maxLength: 251
minLength: 70
title: Address
description: The Canton address.
example: 45b72ac2a9742204e6e5f521781b0648::122028536bd166988ebbb422c7f483bb32d4134127e8c171c9666ce9b518e1dd27cf
type: object
required:
- type
- address
title: EnrichedCantonAddress
ArchTokenTransferDetails:
properties:
type:
type: string
const: token_transfer
title: Type
description: 'A transaction involving the transfer of native currency from one address to another. '
recipient:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The recipient of the tokens.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- recipient
title: ArchTokenTransferDetails
PredictedStarknetTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: starknet_transaction
title: Type
description: Starknet transaction type.
expected_result:
$ref: '#/components/schemas/StarknetTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedStarknetChain'
description: The details of the chain that this transaction is on.
starknet_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/StarknetNativeTransferDetails'
- $ref: '#/components/schemas/StarknetErc20TransferDetails'
- $ref: '#/components/schemas/StarknetRawTransactionDetails'
- $ref: '#/components/schemas/StarknetContractCreationDetails'
description: Details of the Starknet transaction based on its type.
discriminator:
propertyName: type
mapping:
contract_deployment: '#/components/schemas/StarknetContractCreationDetails'
erc20_transfer: '#/components/schemas/StarknetErc20TransferDetails'
native_transfer: '#/components/schemas/StarknetNativeTransferDetails'
raw_transaction: '#/components/schemas/StarknetRawTransactionDetails'
suggested_fees:
$ref: '#/components/schemas/StarknetSuggestedFees'
description: The suggested fees.
sender:
$ref: '#/components/schemas/EnrichedStarknetAddress'
description: The sender of the transaction.
call_data:
items:
$ref: '#/components/schemas/StarknetCallData'
type: array
title: Call Data
description: The call data of the transaction.
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- starknet_transaction_type_details
- suggested_fees
- sender
- call_data
title: PredictedStarknetTransaction
PermitTypedMessageEvmMessage:
properties:
domain:
$ref: '#/components/schemas/EvmMessageDomainData'
description: The domain data.
primary_type:
type: string
title: Primary Type
description: Used to identify the primary type of the message.
enriched_addresses:
additionalProperties:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
title: Enriched Addresses
description: 'Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses'
default: {}
type:
type: string
const: permit
title: Type
description: The typed message type.
deadline:
type: string
format: date-time
title: Deadline
description: The deadline.
nonce:
type: integer
title: Nonce
description: The nonce.
type: object
required:
- domain
- primary_type
- type
- deadline
- nonce
title: PermitTypedMessageEvmMessage
ArchBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedArchAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: ArchBalanceChangeEffect
EvmAllowanceEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
owner:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The owner of the tokens
spender:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address allowed to spend
amount:
type: string
pattern: ^\d+$
title: Amount
description: The allowance amount
example: '1000000000000000000'
expiration:
title: Expiration
description: The expiration timestamp of the allowance
type: string
format: date-time
nonce:
title: Nonce
description: The nonce associated with the allowance
type: string
pattern: ^\d+$
example: '1000000000000000000'
type: object
required:
- priced_asset
- owner
- spender
- amount
title: EvmAllowanceEffect
MinedMessagesList:
properties:
format:
type: string
const: mined
title: Format
messages:
type: string
title: Messages
description: List of messages of non-managed transaction.
type: object
required:
- format
- messages
title: MinedMessagesList
TonTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: ton_transaction
title: Type
description: TON transaction type.
ton_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/TonNativeTransferDetails'
- $ref: '#/components/schemas/TonJettonTransferDetails'
- $ref: '#/components/schemas/TonRawTransactionDetails'
description: Details of the Ton transaction based on its type.
discriminator:
propertyName: type
mapping:
jetton_transfer: '#/components/schemas/TonJettonTransferDetails'
native_transfer: '#/components/schemas/TonNativeTransferDetails'
raw_transaction: '#/components/schemas/TonRawTransactionDetails'
chain:
$ref: '#/components/schemas/EnrichedTonChain'
description: The details of the chain this transaction is on.
nonce:
title: Nonce
description: The nonce of the transaction.
type: integer
sender:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The sender of the transaction.
payload:
$ref: '#/components/schemas/TonTransactionPayload'
description: The payload of the transaction.
hash:
title: Hash
description: The hash of the transaction.
type: string
maxLength: 64
pattern: ^[a-fA-F0-9]+$
example: c7482c1d424bdb2a555f069290a63ab144f3d06d34f944f6ae3505506b97989e
serialized_signed_transaction:
title: Serialized Signed Transaction
description: The serialized signed transaction.
type: string
example: SGVsbG8=
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/TonTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/TonTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, tonviewer.com
example: https://tonviewer.com/transaction/a8e5ab8f0b452190ad81f92341b42c6cadd57d0e858b92e8113d70b02bf0bfaa
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- ton_transaction_type_details
- chain
- sender
- payload
title: TonTransaction
PredictedSuiTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: sui_transaction
title: Type
description: Sui transaction type.
expected_result:
$ref: '#/components/schemas/SuiTransactionResult'
description: The expected result of the transaction in case it is mined.
chain:
$ref: '#/components/schemas/EnrichedSuiChain'
description: The details of the chain that this transaction is on.
sui_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/SuiNativeTransferDetails'
- $ref: '#/components/schemas/SuiCoinTransferDetails'
- $ref: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
description: Details of the Sui transaction based on its type.
discriminator:
propertyName: type
mapping:
coin_transfer: '#/components/schemas/SuiCoinTransferDetails'
native_transfer: '#/components/schemas/SuiNativeTransferDetails'
programmable_transaction_block: '#/components/schemas/SuiProgrammableTransactionBlockDetails'
gas_submitted:
$ref: '#/components/schemas/SuiGasConfig'
description: The gas details submitted for the transaction.
decoded_tx_bytes:
title: Decoded Tx Bytes
description: The json representation of the transaction's data
type: string
sender:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the transaction.
suggested_fees:
$ref: '#/components/schemas/SuiSuggestedFees'
description: The suggested fees.
fee_payer:
description: The address that pays the fee for this transaction (gas owner).
$ref: '#/components/schemas/EnrichedSuiAddress'
type: object
required:
- matched_policies
- risks
- type
- expected_result
- chain
- sui_transaction_type_details
- gas_submitted
- sender
- suggested_fees
title: PredictedSuiTransaction
SolanaEffects:
properties:
balance_changes:
items:
$ref: '#/components/schemas/SolanaBalanceChangeEffect'
type: array
title: Balance Changes
description: The aggregated balance changes of addresses.
transfers:
items:
$ref: '#/components/schemas/SolanaTransferEffect'
type: array
title: Transfers
description: The transfer events of the transaction.
allowances:
items:
$ref: '#/components/schemas/SolanaAllowanceEffect'
type: array
title: Allowances
description: Allowances set or modified as a result of the transaction
type: object
required:
- balance_changes
- transfers
- allowances
title: SolanaEffects
TonAddressRequest:
properties:
chain:
$ref: '#/components/schemas/TonChainUniqueId'
description: The chain details this address is of.
address:
type: string
maxLength: 67
pattern: ^[-0-9]+:[A-Fa-f0-9]{64}$
title: Address
description: Contract address in a raw format.
type: object
required:
- chain
- address
title: TonAddressRequest
description: Address represents a blockchain address.
TonBalanceChangeEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
diff:
type: string
pattern: ^-?\d+$
title: Diff
description: The amount of that was added to or deducted from the owner's balance. If the amount was deducted, the value is negative; if the amount was added, the value is positive.
example: '1000000000000000000'
address:
$ref: '#/components/schemas/EnrichedTonAddress'
description: The address affected by the balance change.
type: object
required:
- priced_asset
- diff
- address
title: TonBalanceChangeEffect
ProviderFee:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the provider fee.
amount:
type: string
pattern: ^0*[1-9]\d*$
title: Amount
description: The amount of the provider fee.
example: '1000000000000000000'
type: object
required:
- priced_asset
- amount
title: ProviderFee
AptosGasData:
properties:
gas_limit:
type: string
pattern: ^0*[1-9]\d*$
title: Gas Limit
description: The gas limit of the transaction.
example: '1000000000000000000'
price:
$ref: '#/components/schemas/AptosGasPrice'
description: The price per gas unit.
type: object
required:
- gas_limit
- price
title: AptosGasData
ExchangeTransferEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
from:
$ref: '#/components/schemas/EnrichedExchangeAddress'
description: The sender of the transfer.
to:
$ref: '#/components/schemas/EnrichedAddress'
description: The receiver of the transfer.
type: object
required:
- priced_asset
- amount
- from
- to
title: ExchangeTransferEffect
EvmContractDeploymentEffect:
properties:
address:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address of the deployed contract.
type: object
required:
- address
title: EvmContractDeploymentEffect
RelatedTransactionType:
type: string
enum:
- swap_fulfilled_by
- swap_fulfilling
- bridge_intent
- bridge_source
- bridge_destination
- stellar_claim_of
- stellar_claimed_by
- canton_accept_of
- canton_accepted_by
title: RelatedTransactionType
StarknetSuggestedFees:
properties:
type:
type: string
const: starknet
title: Type
description: The type of the chain.
chain_unique_id:
$ref: '#/components/schemas/StarknetChainUniqueId'
description: The Starknet chain unique id.
gas_price:
type: string
pattern: ^\d+$
title: Gas Price
description: The Current L1 gas price in FRI.
example: '1000000000000000000'
type: object
required:
- type
- chain_unique_id
- gas_price
title: StarknetSuggestedFees
AminoMessagesList:
properties:
format:
type: string
const: amino
title: Format
messages:
items:
$ref: '#/components/schemas/AminoMessage'
type: array
title: Messages
description: List of messages in amino format.
type: object
required:
- format
- messages
title: AminoMessagesList
EvmMessageType:
type: string
enum:
- personal_message_type
- typed_message_type
- typed_message_type_v1
title: EvmMessageType
SuiNativeTransferDetails:
properties:
type:
type: string
const: native_transfer
title: Type
description: 'A transaction involving the transfer of SUI coin from one address to another. '
sender:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The sender of the coins.
recipient:
$ref: '#/components/schemas/EnrichedSuiAddress'
description: The recipient of the coins.
is_internal:
title: Is Internal
description: Is this transfer an internal transfer between two vaults. None if the transaction is incoming.
type: boolean
type: object
required:
- type
- sender
- recipient
title: SuiNativeTransferDetails
PredictedExchangeTransaction:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
aml_policy_match:
description: The AML policy match.
$ref: '#/components/schemas/AmlPolicyMatchOutgoing'
aml_results:
description: The AML results.
$ref: '#/components/schemas/AmlResults'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: exchange_transaction
title: Type
description: Starknet transaction type.
expected_result:
$ref: '#/components/schemas/ExchangeTransactionResult'
description: The expected result of the transaction in case it's executed.
exchange_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/ExchangeExternalWithdrawDetails'
- $ref: '#/components/schemas/ExchangeInternalTransferDetails'
description: Details of the Exchange transaction based on its type.
discriminator:
propertyName: type
mapping:
external_withdraw: '#/components/schemas/ExchangeExternalWithdrawDetails'
internal_transfer: '#/components/schemas/ExchangeInternalTransferDetails'
type: object
required:
- matched_policies
- risks
- type
- expected_result
- exchange_transaction_type_details
title: PredictedExchangeTransaction
ArchAddressRequest:
properties:
chain:
$ref: '#/components/schemas/ArchChainUniqueId'
description: The chain details this address is of.
base58_repr:
type: string
maxLength: 44
minLength: 32
pattern: ^[a-km-zA-HJ-NP-Z1-9]+$
title: Base58 Repr
description: Base58 representation of the address in the chain.
example: 4fYNw3dojWmQ4dXtSGE9epjRGy9pFSx62YypT7avPYvA
type: object
required:
- chain
- base58_repr
title: ArchAddressRequest
description: Address represents a blockchain address.
SolanaRawTransactionDetails:
properties:
type:
type: string
const: raw_transaction
title: Type
description: A transaction capable of any operation.
recipients:
items:
$ref: '#/components/schemas/EnrichedSolanaAddress'
type: array
title: Recipients
description: The recipients of the tokens.
type: object
required:
- type
- recipients
title: SolanaRawTransactionDetails
AptosFeeStatement:
properties:
execution_gas_units:
type: string
pattern: ^\d+$
title: Execution Gas Units
example: '1000000000000000000'
io_gas_units:
type: string
pattern: ^\d+$
title: Io Gas Units
example: '1000000000000000000'
storage_fee_octas:
type: string
pattern: ^\d+$
title: Storage Fee Octas
example: '1000000000000000000'
storage_fee_refund_octas:
type: string
pattern: ^\d+$
title: Storage Fee Refund Octas
example: '1000000000000000000'
total_charge_gas_units:
type: string
pattern: ^\d+$
title: Total Charge Gas Units
example: '1000000000000000000'
total_gas:
type: string
pattern: ^-?\d+$
title: Total Gas
description: The total gas fee of the transaction (in Octa).
example: '1000000000000000000'
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The information of the asset used to pay the fee and amount used.
type: object
required:
- execution_gas_units
- io_gas_units
- storage_fee_octas
- storage_fee_refund_octas
- total_charge_gas_units
- total_gas
- priced_asset
title: AptosFeeStatement
SetCodeAuthorizationEffect:
properties:
eoa:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address of the EOA that authorized the contract to be set.
contract:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The address of the contract that was set for the EOA.
type: object
required:
- eoa
- contract
title: SetCodeAuthorizationEffect
EnrichedTonAddress:
properties:
vault:
description: The vault corresponding to this address.
$ref: '#/components/schemas/VaultRef'
explorer_url:
title: Explorer Url
description: The URL of a blockchain explorer that provides real-time information about the address.
type: string
maxLength: 2083
minLength: 1
format: uri
contact:
description: The contact details of this address.
$ref: '#/components/schemas/ContactRef'
type:
type: string
const: ton
title: Type
raw_account:
type: string
maxLength: 67
pattern: ^[-0-9]+:[A-Fa-f0-9]{64}$
title: Raw Account
description: The address TON contract in a raw format.
base64_url_bounceable_account:
type: string
maxLength: 48
minLength: 48
title: Base64 Url Bounceable Account
description: The bounceable address of the contract in base64 url format
example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
base64_url_non_bounceable_account:
type: string
maxLength: 48
minLength: 48
title: Base64 Url Non Bounceable Account
description: The non-bounceable address of the contract in base64 url format
example: UQBxs5hnTxjzvzsnDofRfbJeXsylUcxR8OSW7UUv317csHZ1
original_account:
type: string
title: Original Account
description: The address TON contract in the originally inserted format.
type: object
required:
- type
- raw_account
- base64_url_bounceable_account
- base64_url_non_bounceable_account
- original_account
title: EnrichedTonAddress
SolanaMessageResult:
properties:
effects:
$ref: '#/components/schemas/SolanaEffects'
description: The effects of the transaction.
type: object
required:
- effects
title: SolanaMessageResult
SolanaAllowanceEffect:
properties:
priced_asset:
$ref: '#/components/schemas/PricedAsset'
description: The asset information.
amount:
type: string
pattern: ^\d+$
title: Amount
description: The amount of the transfer.
example: '1000000000000000000'
owner:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The owner of the tokens
spender:
$ref: '#/components/schemas/EnrichedSolanaAddress'
description: The address allowed to spend
type: object
required:
- priced_asset
- amount
- owner
- spender
title: SolanaAllowanceEffect
ArchReversion:
properties:
state:
$ref: '#/components/schemas/ArchReversionState'
description: 'The state of the reversion. Is one of the following:- `not_reverted`: No reversion, meaning, completed successfully.
- `unknown_revert`: Fordefi does not know the reason for the reversion.
- `contract_asserted`: The smart contract originally made an assertion that was later rejected and the transaction was halted.
- `insufficient_funds_gas_and_value`: A transaction was sent for which there were insufficient funds.
- `insufficient_funds_for_rent`: There is not enough SOL in the account to pay for the rent.
'
reason:
title: Reason
description: The reason for the reversion (additional information).
type: string
type: object
required:
- state
title: ArchReversion
CosmosMessageData:
oneOf:
- $ref: '#/components/schemas/CosmosMessageStrData'
- $ref: '#/components/schemas/CosmosMessageBase64Data'
discriminator:
propertyName: type
mapping:
base64: '#/components/schemas/CosmosMessageBase64Data'
string: '#/components/schemas/CosmosMessageStrData'
CosmosTokenAssetIdentifierRequest:
properties:
type:
type: string
const: token
title: Type
description: Token asset identifier type.
chain:
$ref: '#/components/schemas/CosmosChainUniqueId'
description: The unique id of the chain of the asset.
denom:
type: string
title: Denom
description: The denom of the asset.
type: object
required:
- type
- chain
- denom
title: CosmosTokenAssetIdentifierRequest
ProviderInfo:
properties:
provider_id:
$ref: '#/components/schemas/ProviderId'
description: The provider ID.
provider_name:
type: string
title: Provider Name
description: The provider name.
type: object
required:
- provider_id
- provider_name
title: ProviderInfo
TronAddressBookContactAddressRef:
properties:
chain_type:
type: string
const: tron
title: Chain Type
description: The type of the chain.
address:
type: string
maxLength: 34
minLength: 34
pattern: ^T[a-km-zA-HJ-NP-Z1-9]+$
title: Address
description: The address on the TRON chain.
example: TJCnKsPa7y5okkXvQAidZBzqx3QyQ6sxMW
chains:
items:
$ref: '#/components/schemas/TronChain'
type: array
title: Chains
description: The chains the contact belongs to.
memo:
title: Memo
description: Memo is an additional address feature used for identifying a recipient.
type: string
type: object
required:
- chain_type
- address
- chains
title: TronAddressBookContactAddressRef
TronTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: tron_transaction
title: Type
description: TRON transaction type.
tron_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/TronNativeTransferDetails'
- $ref: '#/components/schemas/TronTokenTransferDetails'
- $ref: '#/components/schemas/TronStakeDetails'
- $ref: '#/components/schemas/TronUnstakeDetails'
- $ref: '#/components/schemas/TronDelegateDetails'
- $ref: '#/components/schemas/TronUndelegateDetails'
- $ref: '#/components/schemas/TronContractCallDetails'
description: Details of the TRON transaction based on its type.
discriminator:
propertyName: type
mapping:
contract_call: '#/components/schemas/TronContractCallDetails'
delegate: '#/components/schemas/TronDelegateDetails'
native_transfer: '#/components/schemas/TronNativeTransferDetails'
stake: '#/components/schemas/TronStakeDetails'
token_transfer: '#/components/schemas/TronTokenTransferDetails'
undelegate: '#/components/schemas/TronUndelegateDetails'
unstake: '#/components/schemas/TronUnstakeDetails'
chain:
$ref: '#/components/schemas/EnrichedTronChain'
description: The details of the chain this transaction is on.
sender:
$ref: '#/components/schemas/EnrichedTronAddress'
description: The sender of the transaction.
hash:
title: Hash
description: The hash of the transaction.
type: string
maxLength: 64
minLength: 64
pattern: ^[a-fA-F0-9]+$
example: 32bd287f0d6c5fde3381cca851fb7c021cc9782165c08078d9a8554163a86b17
serialized_signed_transaction:
title: Serialized Signed Transaction
description: The serialized signed transaction.
type: string
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/TronTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/TronTransactionResult'
explorer_url:
title: Explorer Url
description: The URL of this transaction in a blockchain explorer. For example, https://explorer.hiro.so/
example: https://explorer.hiro.so/txid/0xd303fc22b2b8c346a0a1fa164a1ccb878a172dc2b8ce08253a6b2312cafb1520
type: string
maxLength: 2083
minLength: 1
format: uri
memo:
title: Memo
description: The memo of the transaction.
type: string
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- tron_transaction_type_details
- chain
- sender
title: TronTransaction
StateChangeReason:
type: string
enum:
- failed_to_verify_signature
- original_transaction_was_completed
- stale_nonce
- quote_expired
- another_dlc_transaction_was_completed
- fee_limit_exceeded
- not_in_mempool_or_chain
- exchange_withdraw_address_not_whitelisted
- exchange_invalid_api_key_permissions
- exchange_funds_pending_settlement
- exchange_withdrawal_limit_exceeded
- exchange_security_and_policy_holds
- exchange_service_unavailable
title: StateChangeReason
ApprovalRequest:
properties:
state:
$ref: '#/components/schemas/ApprovalRequestState'
description: The state of the approval request.
required_groups:
type: integer
title: Required Groups
description: The number of required approval groups.
approval_groups:
items:
$ref: '#/components/schemas/ApprovalRequestGroup'
type: array
title: Approval Groups
description: A list of the possible approvers from different groups.
error_message:
title: Error Message
description: The error message if the request failed.
type: string
type: object
required:
- state
- required_groups
- approval_groups
title: ApprovalRequest
description: Represents an approval request for an action in the Fordefi platform
TronTransactionResult:
properties:
reversion:
$ref: '#/components/schemas/TronReversion'
description: Details whether the transaction was reverted or not.
fee:
$ref: '#/components/schemas/TronFee'
description: The fees of the transaction.
effects:
$ref: '#/components/schemas/TronEffects'
description: The effects of the transaction.
type: object
required:
- reversion
- fee
- effects
title: TronTransactionResult
StellarMessageType:
type: string
enum:
- personal_message
title: StellarMessageType
ExchangeType:
type: string
enum:
- binance
- bybit
- coinbase_international
- coinbase_us
- okx
- kraken
title: ExchangeType
PredictedEvmMessage:
properties:
policy_match:
description: The policy match.
$ref: '#/components/schemas/PolicyMatch'
matched_policies:
items:
$ref: '#/components/schemas/PolicyMatch'
type: array
title: Matched Policies
description: List of policies matched by the transactions in the batch.
approval_request:
description: The approval request.
$ref: '#/components/schemas/ApprovalRequest'
risks:
items:
$ref: '#/components/schemas/TransactionRisk'
type: array
title: Risks
description: The list of risks associated with this transaction.
note:
title: Note
description: An optional transaction note.
type: string
tx_policy_explanation_id:
title: Tx Policy Explanation Id
description: The id of the transaction policy explanation produced for this prediction, if any.
type: string
format: uuid
type:
type: string
const: evm_message
title: Type
description: The type of the transaction.
chain:
$ref: '#/components/schemas/EnrichedEvmChain'
description: The details of the chain that this message is on.
sender:
$ref: '#/components/schemas/EnrichedEvmAddress'
description: The sender of the message.
evm_message_type:
$ref: '#/components/schemas/EvmMessageType'
description: The type of the EVM message.
typed_data:
description: The typed data of the messages.
oneOf:
- $ref: '#/components/schemas/UnknownTypedMessageEvmMessage'
- $ref: '#/components/schemas/PermitTypedMessageEvmMessage'
- $ref: '#/components/schemas/Permit2TypedMessageEvmMessage'
- $ref: '#/components/schemas/SpotSwapTypedMessageEvmMessage'
- $ref: '#/components/schemas/SafeTypedMessageEvmMessage'
- $ref: '#/components/schemas/HyperliquidTypedMessageEvmMessage'
discriminator:
propertyName: type
mapping:
hyperliquid: '#/components/schemas/HyperliquidTypedMessageEvmMessage'
permit: '#/components/schemas/PermitTypedMessageEvmMessage'
permit2: '#/components/schemas/Permit2TypedMessageEvmMessage'
safe: '#/components/schemas/SafeTypedMessageEvmMessage'
spot_swap: '#/components/schemas/SpotSwapTypedMessageEvmMessage'
unknown: '#/components/schemas/UnknownTypedMessageEvmMessage'
message_to_display:
type: string
title: Message To Display
description: User-friendly formatting of the message to be signed.
expected_result:
$ref: '#/components/schemas/EvmMessageResult'
description: Predicted outcome of message execution when simulation is available. Simulation is supported for specific intent types including ERC20 Permit messages and swaps created via the Fordefi web console. Is empty when simulation is not available for the intent type.
type: object
required:
- matched_policies
- risks
- type
- chain
- sender
- evm_message_type
- message_to_display
- expected_result
title: PredictedEvmMessage
StarknetReversionState:
type: string
enum:
- not_reverted
- unknown_revert
- contract_asserted
- insufficient_funds_gas_and_value
title: StarknetReversionState
SignMode:
type: string
enum:
- auto
- triggered
title: SignMode
CantonTransaction:
properties:
id:
type: string
format: uuid
title: Id
description: The unique identifier of the object in the Fordefi platform.
created_at:
type: string
format: date-time
title: Created At
description: The date and time when the object was created.
modified_at:
type: string
format: date-time
title: Modified At
description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
managed_transaction_data:
description: '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). '
$ref: '#/components/schemas/ManagedTransactionData'
signatures:
items:
$ref: '#/components/schemas/Signature'
type: array
title: Signatures
description: The transaction signatures.
note:
title: Note
description: An optional transaction note.
type: string
spam_state:
$ref: '#/components/schemas/TransactionSpamState'
description: '`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
direction:
$ref: '#/components/schemas/TransactionDirection'
description: The direction of the transaction.
signed_externally:
type: boolean
title: Signed Externally
description: Whether the transaction was signed by an external user (for example in case of imported vault).
default: false
interacted_vaults:
items:
$ref: '#/components/schemas/VaultRef'
type: array
title: Interacted Vaults
description: The vaults that interacted with the transaction.
related_transactions:
title: Related Transactions
description: The related transactions.
items:
$ref: '#/components/schemas/RelatedTransaction'
type: array
organization_id:
type: string
format: uuid
title: Organization Id
description: The organization that the transaction belongs to.
block:
description: The block of the transaction.
$ref: '#/components/schemas/Block'
state:
$ref: '#/components/schemas/PushableTransactionState'
description: The state of the transaction.
state_changes:
items:
$ref: '#/components/schemas/PushableTransactionStateChange'
type: array
title: State Changes
description: The state changes of the transaction.
aml_check:
description: The AML check.
$ref: '#/components/schemas/AmlCheck'
mined_result_status:
description: The mined result status of the transaction.
$ref: '#/components/schemas/MinedResultStatus'
simulation_status_result:
description: Whether simulation succeeded, reverted or failed.
$ref: '#/components/schemas/SimulationStatusResult'
type:
type: string
const: canton_transaction
title: Type
description: Canton transaction type.
canton_transaction_type_details:
oneOf:
- $ref: '#/components/schemas/CantonNativeTransferDetails'
- $ref: '#/components/schemas/CantonTokenTransferDetails'
- $ref: '#/components/schemas/CantonPartyAllocationDetails'
- $ref: '#/components/schemas/CantonApproveTransferDetails'
- $ref: '#/components/schemas/CantonPreApprovalSetupDetails'
description: Details of the Canton transaction based on its type.
discriminator:
propertyName: type
mapping:
approve_transfer: '#/components/schemas/CantonApproveTransferDetails'
native_transfer: '#/components/schemas/CantonNativeTransferDetails'
party_allocation: '#/components/schemas/CantonPartyAllocationDetails'
pre_approval_setup: '#/components/schemas/CantonPreApprovalSetupDetails'
token_transfer: '#/components/schemas/CantonTokenTransferDetails'
chain:
$ref: '#/components/schemas/EnrichedCantonChain'
description: The details of the chain this transaction is on.
sender:
$ref: '#/components/schemas/EnrichedCantonAddress'
description: The sender of the transaction.
recipient:
description: The recipient of the assets.
$ref: '#/components/schemas/EnrichedCantonAddress'
expected_result:
description: The expected result of the transaction in case it is mined.
$ref: '#/components/schemas/CantonTransactionResult'
mined_result:
description: The result of the transaction after it was mined.
$ref: '#/components/schemas/CantonTransactionResult'
memo:
title: Memo
description: Optional memo attached to the transfer.
type: string
approval_status:
description: The approval status of the transaction. Set to 'requires_approval' when the receiver must accept an incoming transfer, 'approved' once the transfer has settled (including auto-accept via pre-approval), or 'expired' when the transfer window has elapsed before acceptance.
$ref: '#/components/schemas/CantonApprovalStatus'
approval_expires_at:
title: Approval Expires At
description: Only set when `approval_status` is `requires_approval`. The sender's `executeBefore` on the pending TransferInstruction — the receiver must accept before this time or the transfer expires.
type: string
format: date-time
hash:
title: Hash
description: The on-ledger update id of the transaction.
type: string
explorer_url:
title: Explorer Url
description: Link to view the transaction on the block explorer.
type: string
maxLength: 2083
minLength: 1
format: uri
type: object
required:
- id
- created_at
- modified_at
- signatures
- direction
- interacted_vaults
- organization_id
- state
- state_changes
- type
- canton_transaction_type_details
- chain
- sender
title: CantonTransaction
Permit2TypedMessageEvmMessage:
properties:
domain:
$ref: '#/components/schemas/EvmMessageDomainData'
description: The domain data.
primary_type:
type: string
title: Primary Type
description: Used to identify the primary type of the message.
enriched_addresses:
additionalProperties:
$ref: '#/components/schemas/EnrichedEvmAddress'
type: object
title: Enriched Addresses
description: 'Addresses that are related to this message, enriched with metadata.Please NOTE: the dictionary keys are EIP-55 checksummed addresses'
default: {}
type:
type: string
const: permit2
title: Type
description: The typed message type.
deadline:
type: string
format: date-time
title: Deadline
description: Signature deadline.
type: object
required:
- domain
- primary_type
- type
- deadline
title: Permit2TypedMessageEvmMessage
ValidationErrorDetail:
properties:
loc:
items:
anyOf:
- type: integer
- type: string
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationErrorDetail
ExchangeAssetIdentifier:
properties:
type:
type: string
const: exchange
title: Type
description: Asset identifier type.
exchange_type:
$ref: '#/components/schemas/ExchangeType'
description: exchange type.
asset_symbol:
type: string
title: Asset Symbol
description: The symbol of the asset on the exchange.
chain:
$ref: '#/components/schemas/EnrichedExchangeChain'
type: object
required:
- type
- exchange_type
- asset_symbol
- chain
title: ExchangeAssetIdentifier
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT