Fordefi Agentic Access
Fordefi exposes 75 API operations that an AI agent could call, of which 45 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 30 read, 44 write, and 1 physical.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /api/v1/transactions/transfer | physical | conditional |
Source
Agentic Access
generated: '2026-07-19'
method: generated
source: openapi/fordefi-openapi-original.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 75
by_action_class:
connected: 30
acting: 45
by_consequence:
read: 30
write: 44
physical: 1
human_in_the_loop_required: 0
operations:
- path: /api/v1/blockchains
method: get
operationId: list_chains_api_v1_blockchains_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/blockchains/suggested-fees
method: get
operationId: get_suggested_fees_api_v1_blockchains_suggested_fees_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users
method: get
operationId: list_users_api_v1_users_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users/{id}
method: get
operationId: get_user_api_v1_users__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/user-groups
method: get
operationId: list_user_groups_api_v1_user_groups_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/user-groups/{id}
method: get
operationId: get_user_group_api_v1_user_groups__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vaults
method: get
operationId: list_vaults_api_v1_vaults_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vaults
method: post
operationId: create_vault_api_v1_vaults_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/vaults/export_async
method: get
operationId: export_vaults_with_assets_async_api_v1_vaults_export_async_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vaults/{id}
method: get
operationId: get_vault_api_v1_vaults__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vaults/{id}/assets/{asset_id}
method: get
operationId: get_vault_asset_api_v1_vaults__id__assets__asset_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vaults/{id}/assets
method: get
operationId: get_vault_assets_api_v1_vaults__id__assets_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vaults/{id}/proposals
method: post
operationId: submit_update_vault_change_proposal_api_v1_vaults__id__proposals_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/vaults/{id}/archive
method: post
operationId: archive_vault_api_v1_vaults__id__archive_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/vaults/{id}/restore
method: post
operationId: restore_vault_api_v1_vaults__id__restore_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/vaults/{id}/name
method: put
operationId: rename_vault_api_v1_vaults__id__name_put
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/vaults/{id}/addresses
method: post
operationId: create_address_api_v1_vaults__id__addresses_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/vaults/{id}/addresses
method: get
operationId: list_vault_addresses_api_v1_vaults__id__addresses_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vaults/addresses/{id}/name
method: put
operationId: rename_vault_address_api_v1_vaults_addresses__id__name_put
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/vault-groups
method: get
operationId: list_vault_groups_api_v1_vault_groups_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/assets/owned-assets/{id}
method: get
operationId: get_owned_asset_api_v1_assets_owned_assets__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/assets/owned-assets
method: get
operationId: list_owned_assets_api_v1_assets_owned_assets_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/assets
method: put
operationId: update_asset_configuration_api_v1_assets_put
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/assets/prices
method: post
operationId: fetch_asset_prices_api_v1_assets_prices_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/assets/asset-infos
method: post
operationId: create_asset_info_api_v1_assets_asset_infos_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/export
method: get
operationId: export_transactions_api_v1_transactions_export_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/transactions/index-by-hash
method: post
operationId: index_transaction_by_hash_api_v1_transactions_index_by_hash_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}
method: get
operationId: get_transaction_api_v1_transactions__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/transactions
method: get
operationId: list_transactions_api_v1_transactions_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/transactions
method: post
operationId: create_transaction_api_v1_transactions_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/transfer
method: post
operationId: create_transfer_api_v1_transactions_transfer_post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/create-and-wait
method: post
operationId: create_transaction_and_wait_api_v1_transactions_create_and_wait_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/approve
method: post
operationId: approve_transaction_api_v1_transactions__id__approve_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/abort
method: post
operationId: abort_transaction_api_v1_transactions__id__abort_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/release
method: post
operationId: release_transaction_api_v1_transactions__id__release_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/predict
method: post
operationId: predict_transaction_api_v1_transactions_predict_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/push
method: post
operationId: push_transaction_api_v1_transactions__id__push_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/update-spam-state
method: put
operationId: update_transaction_spam_state_api_v1_transactions__id__update_spam_state_put
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/trigger-signing
method: post
operationId: trigger_transaction_signing_api_v1_transactions__id__trigger_signing_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/unfreeze
method: post
operationId: unfreeze_transaction_api_v1_transactions__id__unfreeze_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/transactions/{id}/freeze
method: post
operationId: freeze_transaction_api_v1_transactions__id__freeze_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/batch-transactions
method: post
operationId: create_batch_transaction_api_v1_batch_transactions_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/batch-transactions/predict
method: post
operationId: predict_batch_transaction_api_v1_batch_transactions_predict_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/batch-transactions/{batch_id}/abort
method: post
operationId: abort_batch_transaction_api_v1_batch_transactions__batch_id__abort_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/batch-transactions/{batch_id}/approve
method: post
operationId: approve_batch_transaction_api_v1_batch_transactions__batch_id__approve_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/addressbook/contacts
method: post
operationId: create_contact_api_v1_addressbook_contacts_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/addressbook/contacts
method: get
operationId: list_contacts_api_v1_addressbook_contacts_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/addressbook/contacts/batch
method: post
operationId: create_batch_contacts_api_v1_addressbook_contacts_batch_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/addressbook/contacts/proposals/{proposal_id}/abort
method: post
operationId: abort_contact_change_proposal_api_v1_addressbook_contacts_proposals__proposal_id__abort_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/addressbook/contacts/{id}/proposals
method: post
operationId: edit_contact_api_v1_addressbook_contacts__id__proposals_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/webhooks/test
method: post
operationId: test_webhook_api_v1_webhooks_test_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/webhooks/trigger/transaction/{id}
method: post
operationId: trigger_transaction_webhook_api_v1_webhooks_trigger_transaction__id__post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/webhooks/trigger/audit-log/{id}
method: post
operationId: trigger_audit_log_webhook_api_v1_webhooks_trigger_audit_log__id__post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/organizations/import-keys
method: post
operationId: import_keys_api_v1_organizations_import_keys_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/organizations/abort-import-keys
method: post
operationId: abort_import_keys_api_v1_organizations_abort_import_keys_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/organizations/import-keys-status
method: get
operationId: get_import_keys_status_api_v1_organizations_import_keys_status_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/organizations/list-keys
method: get
operationId: list_keys_api_v1_organizations_list_keys_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/end-users
method: get
operationId: list_end_users_api_v1_end_users_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/end-users
method: post
operationId: create_end_user_api_v1_end_users_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/end-users/current
method: get
operationId: get_current_end_user_api_v1_end_users_current_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/end-users/{id}
method: get
operationId: get_end_user_api_v1_end_users__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/end-users/{id}
method: delete
operationId: delete_end_user_api_v1_end_users__id__delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/end-users/{id}/set-export-end-user-keys-permissions
method: put
operationId: set_export_end_user_keys_permissions_api_v1_end_users__id__set_export_end_user_keys_permissions_put
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/authorization-tokens
method: post
operationId: issue_authorization_token_api_v1_authorization_tokens_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/authorization-tokens
method: get
operationId: list_authorization_tokens_api_v1_authorization_tokens_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/authorization-tokens/{id}
method: delete
operationId: delete_authorization_token_api_v1_authorization_tokens__id__delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/audit-log
method: get
operationId: list_audit_log_records_api_v1_audit_log_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/audit-log/export
method: get
operationId: export_audit_log_api_v1_audit_log_export_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/exports/{id}
method: get
operationId: get_export_api_v1_exports__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/exports/{id}/abort
method: post
operationId: abort_export_api_v1_exports__id__abort_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/swaps/providers/{chain_type}
method: get
operationId: get_providers_api_v1_swaps_providers__chain_type__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/swaps/quotes
method: post
operationId: get_quotes_api_v1_swaps_quotes_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/swaps
method: post
operationId: create_transaction_api_v1_swaps_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/swaps/predict
method: post
operationId: predict_transaction_api_v1_swaps_predict_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/enclave-keys
method: get
operationId: list_enclave_keys_api_v1_enclave_keys_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none