DFNS
MPC wallets and keys across many blockchains: transfers, transactions, signatures, policies and approvals, permissions, users, service accounts, staking, swaps, payins, payouts, vaults and webhooks.
Authentication
This connector uses Token-based authentication.
info
Set up your connection in the Abstra Console before using it in your workflows.
How to use
Using the Smart Chat
Execute the action "CHOOSE_ONE_ACTION_BELOW" from my connector "YOUR_CONNECTOR_NAME" using the params "PARAMS_HERE".
Using the Web Editor
from abstra.connectors import run_connection_action
result = run_connection_action(
connection_name="your_connection_name",
action_name="your_action_name",
params={
"param1": "value1",
"param2": "value2"
})
Available Actions
This connector provides 267 actions:
| Action | Purpose | Parameters |
|---|---|---|
| post_address_watches | Registers an on chain address to watch. An address watch is not controlled by Dfns: it holds no key, it cannot sign or move funds. The indexer matches on chain activity touching the address and sends the corresponding webhooks. The address must already exist on chain and is normalized to the form the indexer matches on lowercase for EVM networks. Only networks that support address watches are accepted. A given address can only be watched once per network within an organization while the watch i | data: { . network . address (string) . name (string) . externalId (string) } (object) required |
| get_address_watches | Retrieves the list of address watches in your organization. Pagination is supported via limit and paginationToken parameters. | limit (integer) paginationToken (string) |
| delete_address_watches_by_address_watch_id | Deletes an address watch. Once deleted, the address is not watched anymore, no webhook is sent for it, and it won't count in your overall organisation wallet count. Watching the same address again on the same network re-activates this watch, with the same ID and the same history. | addressWatchId (string) required |
| get_address_watches_by_address_watch_id | Retrieves an address watch by its ID. | addressWatchId (string) required |
| get_address_watches_by_address_watch_id_assets | Retrieves the list of assets held by the address watch, as tracked by the indexer. Balances are tracked from the moment the watch is created. | addressWatchId (string) required netWorth (string) |
| get_address_watches_by_address_watch_id_blockchain_events | Retrieves a list of decoded blockchain events indexed for the specified address watch. Blockchain events are not value transfers: asset and token transfers are listed by Get Address Watch Historyhttps://docs.dfns.co/api-reference/address-watches/get-address-watch-history instead. Events from the same transaction share the same txHash across both lists. Items are sorted by descending block number; within one block the item order is not the on-chain order. index is the block scoped log index as | addressWatchId (string) required limit (integer) paginationToken (string) name (string) contract (string) txHash (string) |
| get_address_watches_by_address_watch_id_history | Retrieves the list of indexed on chain activities for the specified address watch. The list reflects the indexed on chain activity from the moment the watch was created. Events from before the watch are not backfilled. | addressWatchId (string) required limit (integer) paginationToken (string) direction (string) kind (string) contract (string) |
| get_agreements_latest_unaccepted | Get the latest unaccepted agreement for a specific agreement type | agreementType (string) required |
| post_agreements_by_agreement_id_accept | Record the acceptance of a specific agreement by its ID | agreementId (string) required |
| post_allocations_get_0fns_quote | Get a price quote for a 0fns deposit or withdrawal at the current market rate. | data: { . walletId (string) . protocol (string) . kind (string) . sourceAsset (object) . targetAsset (object) } (object) required |
| post_allocations | Create a new allocation. An allocation deposits assets from one of your wallets into a rewards-earning protocol. Two providers are available: | Provider | Description | Supported chains | |-----------|---------------------------------------------------------------------------------------------------------------------------------|---------------------------------- | data required |
| get_allocations | Lists the allocations of your organization. | limit (integer) paginationToken (string) |
| post_allocations_by_allocation_id_actions | Create a new action for an existing allocation. | allocationId (string) required data required |
| get_allocations_by_allocation_id_actions | Retrieve the list of actions for a specific allocation. | allocationId (string) required limit (integer) paginationToken (string) |
| get_allocations_by_allocation_id | Retrieve the details of a specific allocation. | allocationId (string) required |
| get_allocations_info | Retrieve the current reward rate APY for each supported allocation protocol. | No parameters |
| post_allocations_cancel_0fns_order_placement | Craft and broadcast an on-chain cancelOrder to cancel a 0fns OrderBook order placement that was not filled, reclaiming its escrow. The escrowed input token is returned to the wallet that funded the order. | data: { . allocationActionId (string) . externalId (string) . feeSponsorId (string) } (object) required |
| post_auth_action | Completes the user action signing process and provides a signing token that can be used to verify the user intended to perform the action. This is the first step of the User Action Signing flowhttps://docs.dfns.co/api-reference/auth/signing-flows. The type of credentials used to sign the action is determined by the kind field in the nested objects firstFactor and secondFactor. Supported credential kinds are: Fido2: User action is signed by a user's signing device using WebAuthn. Key: User ac | data: { . challengeIdentifier (string) . firstFactor . secondFactor } (object) required |
| post_auth_action_init | Starts a user action signing session, returning a challenge that will be used to verify the user's intent to perform an action. This is the first step of the User Action Signing flowhttps://docs.dfns.co/api-reference/auth/signing-flows. | data: { . userActionServerKind (string) . userActionHttpMethod (string) . userActionHttpPath (string) . userActionPayload (string) } (object) required |
| get_auth_action_logs | Gets all signature events which have occurred in the over the timeframe. The time range is unbounded, but the export is capped at 100,000 rows. When the result is truncated, the X-Dfns-Result-Truncated: true response header is set and a trailing TRUNCATED ... line is appended to the CSV; narrow the time range to retrieve all data. StartTime and EndTime are URL-encoded UTC ISO timestamps: startTime=2025-08-29T02%3A46%3A40Z endTime=2025-09-01T02%3A46%3A40Z An additional optional query | startTime (string) required endTime (string) required userId (string) |
| get_auth_action_logs_by_id | Gets detailed information for a particular audit log. Specifically, the API returns the action performed, as well as the firstFactorCredential in which you will find the signature information required to validate it. Dfns maintains a script which can be used for audit log signature validation: WebAuthn Signature Verifierhttps://github.com/dfns/dfns-sdk-python/tree/main/examples/verify-webauthn-signature Because the response includes the full signed action request body and path, details are o | id required |
| get_auth_apps | Warning Applications are deprecated and will be removed in a future release. See details herehttps://docs.dfns.co/deprecation/applications-deprecation. /Warning | No parameters |
| get_auth_apps_by_app_id | Warning Applications are deprecated and will be removed in a future release. See details herehttps://docs.dfns.co/deprecation/applications-deprecation. /Warning | appId (string) required |
| post_auth_credentials | Part of the flow Create Credential Regular flowhttps://docs.dfns.co/api-reference/auth/credentials regular-flow. Adds a new credential to a user's account. See Credential Kindshttps://docs.dfns.co/api-reference/auth/credentials credential-kinds for all supported credential types. | data required |
| get_auth_credentials | List all credentials for a user. | No parameters |
| post_auth_credentials_init | Part of the flow Create Credential Regular flowhttps://docs.dfns.co/api-reference/auth/credentials regular-flow. Starts a create user credential session, returning a challenge that will be used to verify the user's identity. | data: { . kind (string) } (object) required |
| put_auth_credentials_activate | Activates a credential that was previously deactivated. If the credential is already activated no action is taken. | data: { . credentialUuid (string) } (object) required |
| delete_auth_credentials_by_credential_uuid | Delete a specific credential. | credentialUuid (string) required |
| put_auth_credentials_deactivate | Deactivates a credential that was previously active. If the credential is already deactivated no action is taken. | data: { . credentialUuid (string) } (object) required |
| post_auth_credentials_code | Part of the Create Credential With Code flowhttps://docs.dfns.co/api-reference/auth/credentials create-credential-with-code-flow. Creates a one-time-code that can then be used to create a new credential from a place you don't have access to one of your existing credential. | data: { . expiration } (object) required |
| post_auth_credentials_code_init | Part of the flow Create Credential With Codehttps://docs.dfns.co/api-reference/auth/credentials create-credential-with-code-flow. Creates a credential challenge using a one time code-time-code. This challenge must then be signed by the new credential, before finalizing the flow. | data: { . credentialKind (string) . code (string) } (object) required |
| post_auth_credentials_code_verify | Finalizes the flow Create Credential With Codehttps://docs.dfns.co/api-reference/auth/credentials create-credential-with-code-flow. Adds a new credential to a user's account. This endpoint is similar to the Create Credentialhttps://docs.dfns.co/api-reference/auth/create-credential endpoint, except: it does not need the user to be authenticated it does not need user action signing it will only work with the challenge gotten from the Create Credential Challenge With Codehttps://docs.dfns.co/ | data required |
| post_auth_login_init | Start a user login session, returning a challenge that will be used to verify the user's identity. If the user has a credential of kind PasswordProtectedKey a temporary one time code needs to be passed in the loginCode field. If the user has at least one discoverable WebAuthn credential, username is optional username-less flow. | data: { . username (string) . orgId (string) . tenantId (string) . loginCode (string) } (object) required |
| post_auth_login_delegated | Warning Only a Service Accounthttps://docs.dfns.co/api-reference/auth/service-accounts can use this endpoint. /Warning Logs a user into an organization without the user's credentials. If you want to use your own authentication system, while still using Delegated Signing, you can use this endpoint to authenticate a user without needing the user's credentials. The user authentication token can be used for read operations within the Dfns API, however, write operations will still require the u | data: { . username (string) } (object) required |
| post_auth_login | Completes the login process and provides the authenticated user with their authentication token. The type of credentials used to login is determined by the kind field in the nested objects firstFactor and secondFactor. Supported credential kinds are: Fido2: Login challenge is signed by a user's signing device using WebAuthn. Key: Login challenge is signed by a user's private key. PasswordProtectedKey: Login challenge is signed by the decrypted user's private key that was sent during the Crea | data: { . challengeIdentifier (string) . firstFactor . secondFactor } (object) required |
| put_auth_logout | Completes the user logout process. | data: { . allSessions (boolean) } (object) required |
| post_auth_login_oidc_credentials | Registers the first credential for an OIDC-authenticated user, bootstrapping from the credential challenge issued by OIDC Login/api-reference/auth/complete-oidc-login. Rejected if the user already has an active first-factor credential; use Create Credential/api-reference/auth/create-credential in that case. | data required |
| post_auth_login_oidc | Completes the OIDC login process by exchanging the authorization code obtained from the identity provider. Returns the user's authentication token; when the verified user has no active first-factor credential yet, the response also includes a credential challenge so the client can register one before performing any user-action-signed operation. | data: { . code (string) . state (string) } (object) required |
| post_auth_login_oidc_init | Initialize the OIDC login process by returning the identity provider authorization URL to redirect the user to. | data: { . orgId (string) . tenantId (string) . redirectUri (string) . nonce (string) } (object) required |
| post_auth_login_code | Sends a temporary one time code to the user that can be used during login flow. If the user has a credential of kind PasswordProtectedKey a temporary one time code needs to be passed in the loginCode field. That's because the Create Login Challengehttps://docs.dfns.co/api-reference/auth/create-login-challenge is unauthenticated and returns the encrypted private key of the user. So we need a first step to verify the identity of the user to prevent anybody from fetching the encrypted private k | data: { . username (string) . orgId (string) . tenantId (string) } (object) required |
| post_auth_login_social | Logs a user in with a JWT id token issued by a social login provider and provides the authenticated user with their authentication token. | data: { . orgId (string) . socialLoginProviderKind (string) . idToken (string) } (object) required |
| post_auth_login_sso | Completes the SSO login process by exchanging the authorization code obtained from the identity provider for the user's authentication token. | data: { . code (string) . state (string) } (object) required |
| post_auth_login_sso_init | Initialize the login process with SSO by returning the IdP URL to call. | data: { . orgId (string) . tenantId (string) . clientId (string) . redirectUri (string) } (object) required |
| post_auth_tokens | Only for TenantUsers - Exchanges the current user access token, for an org-bound or tenant-bound token. The user must have access to the target org / tenant. The new access token expiration won't exceed the current token's one. | data: { . target (string) } (object) required |
| get_auth_pats | Retrieve the list of your Personal Access Tokens. | No parameters |
| post_auth_pats | Create a new Personal Access Token for the caller. | data: { . name (string) . publicKey (string) . permissionId (string) . externalId (string) . daysValid (integer) . secondsValid (integer) } (object) required |
| get_auth_pats_by_token_id | Retrieve a specific Personal Access Token. | tokenId (string) required |
| put_auth_pats_by_token_id | Update a specific Personal Access Token. | tokenId (string) required data: { . name (string) . externalId (string) } (object) required |
| delete_auth_pats_by_token_id | Delete a specific Personal Access Token. | tokenId (string) required |
| put_auth_pats_by_token_id_activate | Activate a specific Personal Access Token. | tokenId (string) required |
| put_auth_pats_by_token_id_deactivate | Deactivates a personal access token that was previously active. If the token is already deactivated no action is taken. | tokenId (string) required |
| post_auth_recover_user_delegated | Warning Only a Service Accounthttps://docs.dfns.co/api-reference/auth/service-accounts can use this endpoint. /Warning Starts a recovery session for an end user under your brand, without sending a Dfns recovery email. Call this after you have verified the user's identity with your own auth system. The response returns a recovery challenge. Pass it to your frontend so the user can decrypt their recovery credential and sign, then call Recover Userhttps://docs.dfns.co/api-reference/auth/recover- | data: { . username (string) . credentialId (string) } (object) required |
| post_auth_recover_user | Recovers a user, using a recovery credential. After successfully recovering the user, all of the user's previous credentials and personal access tokens will be invalidated. This flow requires cryptographic validation of newly created credentials using a recovery credential. The recovery.credentialAssertion.clientData field's challenge must be the base64url-encoded representation of the newCredential object. The process is as follows: 1. Construct the newCredential object, using the challeng | data: { . recovery (object) . newCredentials (object) } (object) required |
| post_auth_recover_user_init | Starts a user recovery session, returning a challenge that will be used to verify the user's identity. | data: { . username (string) . verificationCode (string) . orgId (string) . tenantId (string) . credentialId (string) } (object) required |
| post_auth_recover_user_code | Send the user a recovery verification code. This code is used as a second factor to verify the user initiated the recovery request. | data: { . username (string) . orgId (string) . tenantId (string) } (object) required |
| post_auth_registration_delegated | Warning Only a Service Accounthttps://docs.dfns.co/api-reference/auth/service-accounts can use this endpoint. /Warning Registers a new End User in your organization and returns a registration challenge, without sending a Dfns registration email. Use this when your application owns the authentication system and you want delegated signing under your brand. The response includes: 1. A new EndUser attached to your organization. 2. A registration challenge plus a temporaryAuthenticationToken to aut | data: { . email (string) . kind (string) . externalId (string) } (object) required |
| post_auth_registration_init | Starts a user registration session. It returns a challenge that will need to be signed by a passkey and used to perform the step Complete User Registration/api-reference/auth/complete-user-registration | data: { . orgId (string) . tenantId (string) . username (string) . registrationCode (string) } (object) required |
| post_auth_registration_social | Starts an end-user registration session by passing a JWT obtained by an IdP. It returns a challenge that will need to be signed by a passkey and used to perform Complete End User Registration with Wallets/api-reference/auth/complete-end-user-registration-with-wallets. | data: { . orgId (string) . socialLoginProviderKind (string) . idToken (string) } (object) required |
| post_auth_registration | Completes the user registration process and creates the user's initial credentials. All credentials submitted in this call firstFactorCredential, secondFactorCredential, recoveryCredential sign the same challenge returned by the registration init endpoint Create Registration Challengehttps://docs.dfns.co/api-reference/auth/create-registration-challenge, Create Delegated Registration Challengehttps://docs.dfns.co/api-reference/auth/create-delegated-registration-challenge, or Create Social Regist | data: { . firstFactorCredential . secondFactorCredential . recoveryCredential (object) } (object) required |
| post_auth_registration_enduser | Completes the end user registration process and creates the user's initial credentials along with delegated wallets for the new end user. All credentials submitted in this call firstFactorCredential, secondFactorCredential, recoveryCredential sign the same challenge returned by the registration init endpoint Create Delegated Registration Challengehttps://docs.dfns.co/api-reference/auth/create-delegated-registration-challenge or Create Social Registration Challengehttps://docs.dfns.co/api-refere | data: { . firstFactorCredential . secondFactorCredential . recoveryCredential (object) . wallets (array) } (object) required |
| put_auth_registration_code | Sends the user a new registration code. The previous registration code will be marked invalid. If the user has already completed their registration no action will be taken. | data: { . username (string) . orgId (string) . tenantId (string) } (object) required |
| get_auth_service_accounts | List all Service Accounts in your organization. | No parameters |
| post_auth_service_accounts | Create a new Service Account for your organization. | data: { . name (string) . publicKey (string) . permissionId (string) . externalId (string) . daysValid (integer) . federatedIdentity (object) } (object) required |
| get_auth_service_accounts_by_service_account_id | Get information about a specific Service Account. | serviceAccountId (string) required |
| put_auth_service_accounts_by_service_account_id | Update a specific Service Account. | serviceAccountId (string) required data: { . name (string) . externalId (string) } (object) required |
| delete_auth_service_accounts_by_service_account_id | Delete a specific Service Account. | serviceAccountId (string) required force (boolean,null) |
| put_auth_service_accounts_by_service_account_id_activate | Activate a specific Service Account. | serviceAccountId (string) required |
| put_auth_service_accounts_by_service_account_id_deactivate | Deactivate a specific Service Account. | serviceAccountId (string) required data: { . force (boolean) } (object) required |
| post_auth_service_accounts_credentials | Add a new Key credential to the OIDC service account authenticated by this request. The caller must be an OIDC service account — the IdP access token identifies the SA; the user-action is signed with an existing active credential to prove rotation authority. | data: { . publicKey (string) . name (string) } (object) required |
| delete_auth_service_accounts_credentials_by_credential_uuid | Delete a credential of the OIDC service account authenticated by this request. The caller must be an OIDC service account. At least one active credential must remain after the delete. | credentialUuid (string) required |
| put_auth_users_by_user_id_activate | Activate a specific User. | userId (string) required |
| put_auth_users_by_user_id_deactivate | Deactivate a specific User. | userId (string) required |
| delete_auth_users_by_user_id | Delete a specific User. | userId (string) required |
| get_auth_users_by_user_id | Retrieve information about a specific User. | userId (string) required |
| put_auth_users_by_user_id | Update a specific User. | userId (string) required data: { . isSSORequired (boolean) } (object) required |
| post_auth_users | Invite a new user in the caller's org. This will create the user and send a registration email to the created User's email, with a registration code, and pointing him to complete his registration on Dfns Dashboard. The user is created without any permissions. NoteIf you want the created User to not know about about Dfns, and don't want him to receive the registration email from Dfns, you should rather use the Delegated Registration endpoint./Note | data: { . email (string) . kind (string) . publicKey (string) . externalId (string) . isSSORequired (boolean) } (object) required |
| get_auth_users | List all Users in your organization. | limit (integer) paginationToken (string) kind |
| post_auth_users_invite | Invite an existing Tenant User in the caller's org. The invited Tenant User starts without any permissions within the org. | data: { . email (string) . kind (string) } (object) required |
| post_auth_user_groups | Create a user group in the caller's org. A group holds permissions through the regular permission assignment endpoint, and its members hold those permissions in addition to their own. | data: { . name (string) . description (string) } (object) required |
| get_auth_user_groups | List the user groups in the caller's org. | limit (integer) paginationToken (string) |
| get_auth_user_groups_by_user_group_id | Get a specific user group. | userGroupId (string) required |
| put_auth_user_groups_by_user_group_id | Rename a user group or change its description. Fields left out keep their value. Its permissions and members are unaffected. | userGroupId (string) required data: { . name (string) . description (string,null) } (object) required |
| delete_auth_user_groups_by_user_group_id | Delete a user group. Its permission assignments are revoked and its members are removed. The name can be reused. | userGroupId (string) required |
| get_auth_user_groups_by_user_group_id_members | List the members of a user group. | userGroupId (string) required limit (integer) paginationToken (string) |
| post_auth_user_groups_by_user_group_id_members | Add users to a user group. Each member gains every permission assigned to the group, in addition to their own. | userGroupId (string) required data: { . userIds (array) } (object) required |
| delete_auth_user_groups_by_user_group_id_members | Remove users from a user group. Each removed user immediately loses every permission they held only through this group. | userGroupId (string) required data: { . userIds (array) } (object) required |
| get_exchanges_by_exchange_id | Retrieve the details of a specific exchange integration configuration. | exchangeId (string) required |
| delete_exchanges_by_exchange_id | Delete the exchange configuration from your organization. | exchangeId (string) required |
| post_exchanges | Link your organization with a cryptocurrency exchange. | data: { . name (string) . kind (string) . readConfiguration (object) . writeConfiguration (object) } (object) required |
| get_exchanges | List all configured exchange integrations. | limit (integer) paginationToken (string) |
| get_exchanges_by_exchange_id_accounts | Get a list of accounts for a specific exchange. | exchangeId (string) required limit (integer) paginationToken (string) |
| get_exchanges_by_exchange_id_accounts_by_account_id_assets | Retrieve the list of assets for a specific account on a specific exchange. | exchangeId (string) required accountId (string) required limit (integer) paginationToken (string) |
| get_exchanges_by_exchange_id_accounts_by_account_id_assets_by_asset_withdrawal_networks | Lists the networks to which the given asset can be withdrawn from an exchange account. | exchangeId (string) required accountId (string) required asset (string) required |
| post_exchanges_by_exchange_id_accounts_by_account_id_deposits | Creates a new exchange deposit transaction. | exchangeId (string) required accountId (string) required data required |
| post_exchanges_by_exchange_id_accounts_by_account_id_withdrawals | Creates a new exchange withdrawal transaction. | exchangeId (string) required accountId (string) required data required |
| post_fee_sponsors | Creates a new FeeSponsor associated with a sponsor wallet. Returns a new fee sponsor entity with the id to be used when making a transfer. | data: { . name (string) . walletId (string) . allowEndUser (boolean) } (object) required |
| get_fee_sponsors | Retrieves all Fee Sponsors configured in your organization. | limit (integer) paginationToken (string) |
| get_fee_sponsors_by_fee_sponsor_id | Retrieve a Fee Sponsor information by ID. | feeSponsorId (string) required |
| delete_fee_sponsors_by_fee_sponsor_id | Delete a Fee Sponsor. This action is irreversible. The fee sponsor won't be able to be used anymore when making a transfer. | feeSponsorId (string) required |
| put_fee_sponsors_by_fee_sponsor_id_deactivate | Deactivate a Fee Sponsor: The fee sponsor won't be able to be used anymore when making a transfer. | feeSponsorId (string) required |
| put_fee_sponsors_by_fee_sponsor_id_activate | Activate a Fee Sponsor: The fee sponsor can be used when making a transfer. | feeSponsorId (string) required |
| get_fee_sponsors_by_fee_sponsor_id_fees | Retrieves all fees paid by the specific Fee Sponsor. | feeSponsorId (string) required limit (string) paginationToken (string) |
| post_keys | Creates a key for the given scheme and curve. Returns the new key entity. | data: { . scheme (string) . curve (string) . name (string) . masterKey (boolean) . deriveFrom (object) . storeId (string) . delegateTo (string) . delayDelegation (boolean) } (object) required |
| get_keys | Retrieve all keys registered for your organization. | limit (integer) paginationToken (string) owner (string) |
| post_keys_by_key_id_delegate | Warning Only keys created with 'delayDelegation: true' can then be delegated to an end-user. It means you need to know ahead of time that you're creating a wallet meant to be delegated to an end-user later. This is a safety to prevent, for example, a treasury wallet from being unintentionally delegated to an end-user. /Warning Note When a key is delegated to an end user, all wallets using this key as the signing key are also automatically delegated to the same end user. Key and wallet ownership | keyId (string) required data: { . delegateTo (string) } (object) required |
| delete_keys_by_key_id | Deletes the key and all wallets using this key. Once deleted, keys and wallets are not usable anymore, and won't count in your overall organisation wallet count. | keyId (string) required |
| get_keys_by_key_id | Retrieves a key information by its ID. | keyId (string) required |
| put_keys_by_key_id | Updates the name of an existing key. | keyId (string) required data: { . name (string,null) } (object) required |
| post_keys_by_key_id_derive | Dfns decentralized key management network supports threshold Diffie-Hellman protocol based on GLOW20 paperhttps://eprint.iacr.org/2020/096. You can use the DH protocol to derive output from a domain separation tag and a seed value. The derivation process is deterministic, i.e. the same Diffie-Hellman key and seed will lead to the same derived output. To ensure reproducibility, we use hash to curve RFC9380https://www.rfc-editor.org/rfc/rfc9380.html and standard ciphersuite secp256k1_XMD:SHA-256_S | keyId (string) required data: { . domain (string) . seed (string) } (object) required |
| post_keys_by_key_id_export | Dfns secures private keys by generating them as MPC key shares in our decentralized key management network. Our goal is to eliminate all single points of failure SPOFs associated with blockchain private keys. In certain circumstances, however, customers require Dfns to export a private key. In this case, Dfns exposes the following endpoint which can be used in conjunction with our export SDKhttps://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/export-wallet. Each signer returns its key share | keyId (string) required data: { . encryptionKey (string) . supportedSchemes (array) } (object) required |
| post_keys_by_key_id_signatures | Request to generate a signature with the key. This process does not broadcast anything on-chain, this is just an off-chain signature request. Dfns is compatible with any blockchain that uses a supported key formathttps://docs.dfns.co/networks/supported-key-formats. If Dfns doesn't officially integrate with a blockchain, you can use hash signing to generate the signatures to interact with the chain. Note If you were using the deprecated POST /wallets/walletId/signatures endpoint, then you shoul | keyId (string) required data required |
| get_keys_by_key_id_signatures | List all signature requests for a key. | keyId (string) required limit (integer) paginationToken (string) |
| get_keys_by_key_id_signatures_by_signature_id | Retrieve a signature request details. | keyId (string) required signatureId (string) required |
| post_keys_import | Dfns secures private keys by generating them as MPC key shares in our decentralized key management network. This happens by default when you create a keyhttps://docs.dfns.co/api-reference/keys/create-key or wallethttps://docs.dfns.co/api-reference/wallets/create-wallet. In some circumstances, however, you may need to import an existing private key into Dfns infrastructure, instead of creating a brand new wallet with Dfns and transfer funds to it. As an example, you might want to keep an existi | data: { . name (string) . curve (string) . protocol . minSigners (integer) . encryptedKeyShares (array) . masterKey (boolean) } (object) required |
| get_networks_fees | Gets real-time fee details for a given network, allowing users to make decisions based on their preferences for transaction speed/priority. Three levels of priority will be displayed: slow, standard, fast. Legacy pre-London EVM networks such as Ethereum Classic do not support EIP-1559 fee estimation and are not listed here. When broadcasting on those networks, omit priority and a legacy gasPrice is filled automatically. | network (string) required |
| post_networks_by_network_call_function | Call a read-only function on a smart contract. In Solidity, these are functions with the state mutability set to view. Note Currently only works on EVM compatible chains. /Note | network (string) required data: { . contract (string) . abi (object) . calldata (object) } (object) required |
| get_networks_by_network_validators_by_validator_id | Return a configured Canton Validator in your organization. | network (string) required validatorId (string) required |
| put_networks_by_network_validators_by_validator_id | Update an existing Canton Validator configuration. Read details about the process herehttps://docs.dfns.co/networks/canton. | network (string) required validatorId (string) required data: { . name (string) . validator (object) . ledger (object) } (object) required |
| delete_networks_by_network_validators_by_validator_id | Delete a specific Canton Validator configuration. | network (string) required validatorId (string) required |
| post_networks_by_network_validators | Link a Canton Validator to your organization. This is required in order to create wallets or interact with the Canton network. The Shared option allows you to use a shared validator hosted by Dfns and get started in seconds, while the Custom option allows you to connect your own validator and ledger nodes using OAuth2 authentication. Read details about the process herehttps://docs.dfns.co/networks/canton. | network (string) required data required |
| get_networks_by_network_validators | Retrieve the list of configured Canton Validators in your organization. | network (string) required limit (integer) paginationToken (string) |
| post_networks_by_network_transactions_reindex | Re-index a finalized transaction that is missing from your wallets' history. A transaction that is already indexed is not processed again. Note Limited to 10 requests per organization per 10 minutes. /Note | network (string) required data: { . txHash (string) } (object) required |
| post_payins | Deliver stablecoin from the organisation's provider balance to a wallet on-chain. | data required |
| get_payins | List payins with optional filtering and pagination. | limit (integer) paginationToken (string) walletId (string) status (array) provider (array) |
| post_payins_quote | Request a quote from a given provider for a payin. Returns the stablecoin amount to be delivered and the fees. | data required |
| post_payins_recipients | Register a wallet's address as an payin recipient with the provider. The registration then needs to be approved on the provider's side for Circle Mint: by an administrator in the Mint Console before payins to that wallet can be created. | data required |
| get_payins_recipients | Check whether a wallet's address is registered and approved as an payin recipient with the provider. | provider (string) required walletId (string) required currency (string) required |
| get_payins_by_payin_id | Retrieve the current status of an payin by its ID. | payinId (string) required |
| get_payins_accounts | List the provider accounts, with their registered wallet addresses per asset. An account is created on the provider platform e.g. the Borderless dashboard and its registered addresses serve both directions: a payin delivers to — and a payout is funded from — a wallet whose address is registered on the account. | provider (string) required |
| get_payins_balances | The organisation's available balance at the payin provider, one entry per currency — the funds payins can deliver on-chain. | provider (string) required |
| get_payins_options | List the currently available payin options — deliverable assets and fiat currency/payment-method/country combinations — as covered by the active provider institutions. | provider (string) required |
| post_payins_accounts_assets | Register a wallet's address for an asset on a provider account, a prerequisite for both payins the wallet receives the delivered asset and payouts the wallet funds the withdrawal. Returns the updated account. | data required |
| post_payouts | Create a new payout to convert crypto assets to fiat currency. | data required |
| get_payouts | List payouts with optional filtering and pagination. | limit (integer) paginationToken (string) walletId (string) status (array) provider (array) |
| post_payouts_quote | Request a quote from a given provider for a payout. Returns estimated fiat amount and fees. | data required |
| get_payouts_by_payout_id | Retrieve the current status of a payout by its ID. | payoutId (string) required |
| post_payouts_by_payout_id_action | Perform an action on a payout, such as confirming or canceling. | payoutId (string) required data required |
| put_permissions_by_permission_id_archive | @deprecated in favor of 'deletePermission'. Deletes a permission aka 'Role'. | permissionId (string) required data: { . isArchived (boolean) } (object) required |
| delete_permissions_by_permission_id | Deletes a permission aka 'Role'. | permissionId (string) required |
| get_permissions_by_permission_id | Retrieves a permission role by ID, including any pending change request. | permissionId (string) required |
| put_permissions_by_permission_id | Updates the name or operations of an existing permission role. | permissionId (string) required data: { . name (string) . operations (array) } (object) required |
| post_permissions_by_permission_id_assignments | Assigns a permission role to an identity user, PAT, service account or user group, granting it access to the operations defined in the permission. Returns the assignment on success 200, or a pending change request if approval is required 202. | permissionId (string) required data: { . identityId (string) } (object) required |
| get_permissions_by_permission_id_assignments | Lists all permission role assignments for a given permission. | permissionId (string) required limit (integer) paginationToken (string) |
| post_permissions | Creates a new permission also referred to as 'role' in the dashboard that grants access to the specified API operations. | data: { . name (string) . operations (array) } (object) required |
| get_permissions | Lists all permissions roles in the organization. | limit (integer) paginationToken (string) |
| delete_permissions_by_permission_id_assignments_by_assignment_id | Revokes a permission role assignment, removing the identity's access to the operations granted by the permission. | permissionId (string) required assignmentId (string) required force (boolean,null) |
| delete_v2_policies_by_policy_id | Delete an existing policy. | policyId (string) required |
| get_v2_policies_by_policy_id | Retrieve information about a specific policy. | policyId (string) required |
| put_v2_policies_by_policy_id | Update an existing policy. The policy status is not editable through this endpoint — the update body has no status field. To deactivate a policy, use the Archive Policy endpoint instead. | policyId (string) required data required |
| post_v2_policy_approvals_by_approval_id_decisions | Approve or Reject an Approval request. | approvalId (string) required data: { . value (string) . reason (string) } (object) required |
| post_v2_policies | Setup a new Policy for your organization. Every policy requires a rule to be specified. Upon policy evaluation, the configuration specified in the rule will be used to determine whether the policy should trigger or not for a given activity. By exposing controls on permissions and policies, Dfns enables the specification of an admin quorum to approve sensitive actions which could change system governance. Note Dfns does not expose a separate 'admin quorum' concept like some of our com | data required |
| get_v2_policies | Retrieve the list of policies on your organization. | limit (string) paginationToken (string) status (string) |
| get_v2_policies_travel_rule_sumsub_public_key | Retrieve the RSA public key JWK, RFC 7517 of the org's Sumsub Travel Rule integration. Use it to JWE-encrypt RSA-OAEP-256 / A256GCM, compact serialization the JWS-signed IVMS101 payload client-side before submitting a transfer screened by a Sumsub Travel Rule policy. Requires Travel Rule to be enabled for the tenant and an activated Sumsub integration on the org. | No parameters |
| get_v2_policy_approvals_by_approval_id | Retrieve information about a specific approval request. | approvalId (string) required |
| get_v2_policy_approvals | Retrieve the list of pending approval requests. | limit (string) paginationToken (string) status (string) initiatorId (string) approverId (string) |
| post_key_stores_by_store_id_fleet_operations_cancel | Cancel Fleet Operation | storeId (string) required data: { . groupId (string) . reason (string) } (object) required |
| post_key_stores_by_store_id_add_mac_user_input | Creates the input archive for an add-mac-user fleet operation, which registers a new Mac operator machine with an HSM in the key store's trust set. | storeId (string) required data: { . kind (string) . macTargetSerial (string) . hsmTargetSerial (string) } (object) required |
| post_key_stores_by_store_id_add_provisioner_input | Creates the input archive for an add-provisioner fleet operation, which registers a new provisioner YubiKey into the key store's governance set. | storeId (string) required data: { . kind (string) . yubikeySerial (string) . hsmTargetSerial (string) } (object) required |
| post_key_stores_by_store_id_clone_input | Creates the input archive for a clone fleet operation, which replicates a key store from a source HSM to a target HSM. | storeId (string) required data: { . kind (string) . hsmSourceSerial (string) . hsmTargetSerial (string) . macTargetSerial (string) } (object) required |
| post_key_stores_by_store_id_genesis_input | Creates the input archive for a genesis fleet operation, which provisions a new offline signer fleet and generates the key store's initial signing keys. | storeId (string) required data: { . kind (string) . numProvisioners (integer) . numOperational (integer) . numSecp256k1 (integer) . numEd25519 (integer) . hsmGenesisSerial (string) . macGenesisSerial (string) . hsmGenesisFirmwareVersion (string) . debugOptions (object) } (object) required |
| post_key_stores_by_store_id_key_harvest_input | Create Key Harvest Input | storeId (string) required data: { . kind (string) . hsmTargetSerial (string) . macTargetSerial (string) . macTargetUsername (string) . numSecp256k1 (integer) . numEd25519 (integer) } (object) required |
| post_key_stores_by_store_id_onchain_sign_input | Creates the input archive for an onchain-sign operation covering the key store's pending signature requests. | storeId (string) required data: { } (object) required |
| post_key_stores_by_store_id_proof_of_control_input | Creates the input archive for a proof-of-control operation covering the keys of the specified wallets. | storeId (string) required data: { . walletIds (array) } (object) required |
| get_key_stores | Lists the key stores of your organization. | No parameters |
| get_signers | Lists the signer clusters of your key store, including each signer's ID and encryption public key. | No parameters |
| post_key_stores_by_store_id_add_mac_user_output | Submits the output archive produced by the offline signer fleet for an add-mac-user operation. | storeId (string) required data: { . data (object) . file (object) } (object) required |
| post_key_stores_by_store_id_add_provisioner_output | Submits the output archive produced by the offline signer fleet for an add-provisioner operation. | storeId (string) required data: { . data (object) . file (object) } (object) required |
| post_key_stores_by_store_id_clone_output | Submits the output archive produced by the offline signer fleet for a clone operation. | storeId (string) required data: { . data (object) . file (object) } (object) required |
| post_key_stores_by_store_id_genesis_output | Submits the output archive produced by the offline signer fleet for a genesis operation. | storeId (string) required data: { . data (object) . file (object) } (object) required |
| post_key_stores_by_store_id_key_harvest_output | Submit Key Harvest Output | storeId (string) required data: { . data (object) . file (object) } (object) required |
| post_key_stores_by_store_id_onchain_sign_output | Submits the output archive produced by the offline signer fleet for an onchain-sign operation. | storeId (string) required data: { . data (object) . file (object) } (object) required |
| post_key_stores_by_store_id_proof_of_control_output | Submits the output archive produced by the offline signer fleet for a proof-of-control operation. | storeId (string) required data: { . data (object) . file (object) } (object) required |
| post_staking_stakes | Create a new stake. | data required |
| get_staking_stakes | Retrieve the list of stakes. | limit (integer) paginationToken (string) |
| post_staking_stakes_by_stake_id_actions | Create a new action for an existing stake. | stakeId (string) required data required |
| get_staking_stakes_by_stake_id_actions | Retrieve the list of actions for a specific stake. | stakeId (string) required limit (integer) paginationToken (string) |
| get_staking_stakes_by_stake_id | Retrieve the details of a specific stake. | stakeId (string) required limit (integer) paginationToken (string) |
| get_staking_stakes_by_stake_id_rewards | Retrieves the rewards linked to a specific stake. | stakeId (string) required |
| post_swaps | Create a new swap based on an existing quote. This is the second step of the Swap flowhttps://docs.dfns.co/api-reference/swaps flow-overview. | data required |
| get_swaps | List all swaps with pagination | limit (integer) paginationToken (string) |
| post_swaps_quotes | Request a quote from a given provider for swapping assets. This is the first step of the Swap flowhttps://docs.dfns.co/api-reference/swaps flow-overview. | data required |
| get_swaps_by_swap_id | Get details of a specific swap by its ID | swapId (string) required |
| get_swaps_quotes_by_quote_id | Get details of a specific swap quote by its ID | quoteId (string) required |
| post_tenant_permissions_by_permission_id_assign | Creates a permission that allows certain specified operations to be executed. Response is either the permission object itself success or a reason why it was not possible to create the permission failure. | permissionId (string) required data: { . identityId (string) } (object) required |
| post_tenant_permissions_by_permission_id_revoke | Revokes a permission assignment success or gives reason why it's not possible failure. | permissionId (string) required data: { . identityId (string) } (object) required |
| get_tenant_permissions_by_permission_id | Retrieves a specific permission success or gives a reason why it's not possible failure. | permissionId (string) required |
| get_tenant_permissions | Retrieves a list of permissions success or gives a reason why it's not possible failure. | limit (integer) paginationToken (string) |
| post_tenant_users | Creates a new Tenant User. This creates the user and sends him an email with a registration code. The user is created without any permissions. | data: { . email (string) . externalId (string) . isSSORequired (boolean) } (object) required |
| get_tenant_users | List all Users in your Tenant. | limit (integer) paginationToken (string) |
| put_tenant_users_by_user_id | Updates a new Tenant User details. | userId (string) required data: { . isSSORequired (boolean) } (object) required |
| delete_tenant_users_by_user_id | Delete a specific Tenant User. | userId (string) required |
| get_tenant_users_by_user_id | Get a Tenant User. | userId (string) required |
| get_tenant_orgs | List all Orgs in your Tenant. By default, returns non-archived Orgs, unless specific status are passed | limit (integer) paginationToken (string) status |
| post_tenant_orgs | Create a new Org in your Tenant. The creator of the org will be granted access to the Org as the first Org Admin. | data: { . name (string) . keyStores (array) } (object) required |
| post_tenant_user_groups | Create a user group in the caller's tenant. A group holds tenant permissions through the tenant permission assignment endpoint, and its members hold those permissions in addition to their own. | data: { . name (string) . description (string) } (object) required |
| get_tenant_user_groups | List the user groups in the caller's tenant. | limit (integer) paginationToken (string) |
| get_tenant_user_groups_by_user_group_id | Get a specific user group of the caller's tenant. | userGroupId (string) required |
| put_tenant_user_groups_by_user_group_id | Rename a user group of the caller's tenant or change its description. Fields left out keep their value. Its permissions and members are unaffected. | userGroupId (string) required data: { . name (string) . description (string,null) } (object) required |
| delete_tenant_user_groups_by_user_group_id | Delete a user group of the caller's tenant. Its tenant permission assignments are revoked and its members are removed. The name can be reused. | userGroupId (string) required |
| get_tenant_user_groups_by_user_group_id_members | List the members of a user group of the caller's tenant. | userGroupId (string) required limit (integer) paginationToken (string) |
| post_tenant_user_groups_by_user_group_id_members | Add tenant users to a user group. Each member gains every tenant permission assigned to the group, in addition to their own. | userGroupId (string) required data: { . userIds (array) } (object) required |
| delete_tenant_user_groups_by_user_group_id_members | Remove tenant users from a user group. Each removed user immediately loses every tenant permission they held only through this group. | userGroupId (string) required data: { . userIds (array) } (object) required |
| get_tenant_orgs_by_org_id | Get details on a single Org within your Tenant. | orgId (string) required |
| put_tenant_orgs_by_org_id | Update the name of an Org within your Tenant. | orgId (string) required data: { . name (string) } (object) required |
| put_tenant_orgs_by_org_id_status | Change the status of an Org within your Tenant. | orgId (string) required data: { . status (string) } (object) required |
| post_vaults | Creates a new Vault. | data: { . name (string) . tags (array) . externalId (string) } (object) required |
| get_vaults | Retrieves the list of Vaults in your organization. | limit (integer) paginationToken (string) |
| post_vaults_by_vault_id_addresses | Creates a vault address managed wallet on a network that supports vaults — EVM networks, Bitcoin, and Solana native SOL and SPL/Token-2022 tokens. Add one network per call. | vaultId (string) required data: { . network (string) } (object) required |
| post_vaults_by_vault_id_locks | Requests locking funds from the vault's available balance for off-chain settlement or escrow. Returns the created lock 200, or the pending lock request 202 when a policy requires approval. | vaultId (string) required data: { . network (string) . tid (string) . amount (string) . externalId (string) . reason (string) . beneficiary (string) } (object) required |
| get_vaults_by_vault_id_locks | Lists a vault's locks, active and released. | vaultId (string) required limit (integer) paginationToken (string) network (string) tid (string) |
| post_vaults_by_vault_id_transfers | Creates a transfer out of a vault, reserving the amount and estimated fee from the vault's available balance. | vaultId (string) required data: { . network (string) . tid (string) . to (string) . amount (string) . externalId (string) } (object) required |
| get_vaults_by_vault_id | Retrieves a Vault by its ID. | vaultId (string) required |
| put_vaults_by_vault_id | Updates an existing Vault. | vaultId (string) required data: { . name (string) . externalId (string) } (object) required |
| get_vaults_by_vault_id_locks_by_lock_id | Retrieves a vault lock by its ID. | vaultId (string) required lockId (string) required |
| get_vaults_by_vault_id_quarantines_by_quarantine_id | Retrieves a vault quarantine by its ID. | vaultId (string) required quarantineId (string) required |
| get_vaults_by_vault_id_assets | Lists a vault's assets with balances available/quarantined/locked and USD valuation. | vaultId (string) required showUnverified (boolean,null) network (string) |
| get_vaults_by_vault_id_balances | Lists a vault's balance entries. | vaultId (string) required limit (integer) paginationToken (string) kind (string) network (string) tid (string) |
| get_vaults_by_vault_id_history | Lists a vault's history, most recent first: one item per incoming or outgoing transfer, carrying its current status, and one per lock creation or deletion. | vaultId (string) required limit (integer) paginationToken (string) network tid kind |
| get_vaults_by_vault_id_quarantines | Lists a vault's quarantines, active and released. | vaultId (string) required limit (integer) paginationToken (string) network (string) |
| post_vaults_by_vault_id_quarantines_by_quarantine_id_release | Releases quarantined funds into the available balance. | vaultId (string) required quarantineId (string) required data: { . reason (string) } (object) required |
| post_vaults_by_vault_id_locks_by_lock_id_release | Releases a lock, returning the locked funds to the vault's available balance. Owner only. | vaultId (string) required lockId (string) required |
| put_vaults_by_vault_id_tags | Add tags to a vault. | vaultId (string) required data: { . tags (array) } (object) required |
| delete_vaults_by_vault_id_tags | Removes the specified tags from a vault. | vaultId (string) required data: { . tags (array) } (object) required |
| post_vaults_by_vault_id_locks_by_lock_id_transfer | Sends part or all of the locked amount to the lock's beneficiary, paying the network fee from the vault's available balance. Owner only, not subject to policies. Returns the outgoing transfer. The funds stay locked while it is in flight; once confirmed the lock is deleted and any unsent remainder returns to the available balance. If the transfer fails the lock stays in place and can be transferred again. | vaultId (string) required lockId (string) required data: { . amount (string) } (object) required |
| post_vaults_by_vault_id_locks_by_lock_id_replace | Requests replacing a lock with a new lock at a new total amount. Owner only. Executed immediately unless a policy requires approval. On execution the lock is released, a new lock is created at the new amount carrying over the owner, externalId and reason, and the new lock is returned. If a policy requires approval, responds 202 with the pending replace request instead. | vaultId (string) required lockId (string) required data: { . amount (string) . reason (string) } (object) required |
| put_wallets_by_wallet_id_transactions_by_transaction_id_abort | Aborts a transaction that is currently in 'Executing' status and has not yet been signed. Sets the transaction status to 'Failed' and removes it from the retry queue. This is useful when a transaction is stuck in the execution pipeline e.g., during construct or sign phase and you want to abort it without waiting for it to fail on its own. Unlike cancel, which creates a replacement on-chain transaction, abort simply marks the transaction as failed without any blockchain interaction. | walletId (string) required transactionId (string) required |
| put_wallets_by_wallet_id_transfers_by_transfer_id_abort | Aborts a transfer that is currently in 'Executing' status and has not yet been signed. Sets the transfer status to 'Failed' and removes it from the retry queue. This is useful when a transfer is stuck in the execution pipeline e.g., during construct or sign phase and you want to abort it without waiting for it to fail on its own. Unlike cancel, which creates a replacement on-chain transaction, abort simply marks the transfer as failed without any blockchain interaction. | walletId (string) required transferId (string) required |
| post_wallets_by_wallet_id_activate | Activates a wallet by deploying the account contract on-chain, making it ready for transactions. This operation is required for wallets on networks where you need to explicitly activate your account on-chain before it can be used for transactions. - Starknet: Deploys the account contract using the wallet's public key to initialize the account on the blockchain. No additional parameters required. - Concordium: Deploys the account using credential deployment information and crypt | walletId (string) required data required |
| post_wallets_bulk_create | Creates a batch of custodial wallets asynchronously via HD key derivation. Returns a job handle immediately; poll the bulk-create job endpoints for progress. | data: { . network (string) . count (integer) . name (string) . tags (array) . keystoreId (string) } (object) required |
| get_wallets_bulk_create | List the org bulk wallet creation jobs, most recent first, with progress and status. | limit (integer) paginationToken (string) status (string) |
| get_wallets_bulk_create_by_job_id | Retrieve a single bulk wallet creation job by its ID, with progress and status. | jobId (string) required |
| get_wallets_bulk_create_by_job_id_wallets | List every wallet created by a bulk wallet creation job, ordered by wallet ID and paginated. Only available once the job has completed. | jobId (string) required limit (integer) paginationToken (string) |
| post_wallets_by_wallet_id_transactions | Sign and Broadcast transaction enables communication with any arbitrary smart contract of the target blockchain. You can construct a transaction that performs a complex task and this endpoint will sign the transaction, add the signature and broadcast it to chain. It can be used to call smart contract functions like mint tokens and even deploy new smart contracts. | Status | Definition | walletId (string) required data required |
| get_wallets_by_wallet_id_transactions | Retrieves a list of transactions requests for the specified wallet. | walletId (string) required limit (integer) paginationToken (string) |
| post_wallets_by_wallet_id_transactions_by_transaction_id_cancel | Cancels an EVM transaction by creating a replacement transaction with the same nonce. The new transaction sends 0 value to the same address, effectively nullifying the original transaction. This endpoint works for: - EVM-compatible networks Ethereum, Polygon, BSC, etc. - Transactions that are in 'Broadcasted' status pending inclusion in a block - Transactions that are in 'Failed' status, but failed off-chain before being broadcasted to the network The cancellation works by: 1. | walletId (string) required transactionId (string) required |
| post_wallets_by_wallet_id_transfers_by_transfer_id_cancel | Cancels an EVM transfer by creating a replacement transaction with the same nonce. The new transaction sends 0 value to the same address, effectively nullifying the original transfer. This endpoint works for: - EVM-compatible networks Ethereum, Polygon, BSC, etc. - Transfers that are in 'Broadcasted' status pending inclusion in a block - Transfers that are in 'Failed' status, but failed off-chain before being broadcasted to the network The cancellation works by: 1. Extracting t | walletId (string) required transferId (string) required |
| post_wallets_by_wallet_id_canton_ledger_api | Proxies a request to the Canton Ledger API associated with this wallet, using the validator's OAuth2 credentials. Restricted to a curated allow-list of read-style resources. Used to satisfy the Canton WalletConnect canton_ledgerApi method. | walletId (string) required data: { . requestMethod (string) . resource (string) . body } (object) required |
| post_wallets_by_wallet_id_transactions_by_transaction_id_speed_up | Speeds up a transaction by creating a replacement transaction with the same parameters but higher gas fees. This endpoint only works for: - EVM-compatible networks Ethereum, Polygon, BSC, etc. - Transactions that are in 'Broadcasted' status already submitted to blockchain, but not confirmed yet The speed-up works by: 1. Extracting the parameters from the original broadcasted transaction 2. Creating a new transaction with the same nonce, recipient, value, and data 3. Using hig | walletId (string) required transactionId (string) required |
| post_wallets_by_wallet_id_transfers_by_transfer_id_speed_up | Speeds up a transfer by creating a replacement transaction with the same parameters but higher gas fees. This endpoint only works for: - EVM-compatible networks Ethereum, Polygon, BSC, etc. - Transfers that are in 'Broadcasted' status already submitted to blockchain, but not confirmed yet The speed-up works by: 1. Extracting the parameters from the original broadcasted transfer 2. Creating a new transaction with the same nonce, recipient, value, and data 3. Using higher gas f | walletId (string) required transferId (string) required |
| post_wallets | Creates a new Wallet associated with the given chain such as Bitcoin or Ethereum . Returns a new wallet entity. | data: { . network (string) . name (string) . signingKey (object) . delegateTo (string) . delayDelegation (boolean) . externalId (string) . tags (array) } (object) required |
| get_wallets | Retrieves the list of Wallets in your organization. You can filter the results by owner either by owner id or owner username. The list cannot be filtered by tags or externalId — those are set at wallet creation only; to segment wallets by tag or externalId, list them and filter client-side, or maintain the mapping in your own system. Pagination is supported via limit and paginationToken parameters. | limit (integer) paginationToken (string) owner (string) ownerId (string) ownerUsername (string) |
| get_wallets_by_wallet_id_transactions_by_transaction_id | Retrieve information about a specific transaction. | walletId (string) required transactionId (string) required |
| get_wallets_by_wallet_id_transfers_by_transfer_id | Retrieves a Wallet Transfer Request by its ID. | walletId (string) required transferId (string) required |
| get_wallets_by_wallet_id | Retrieves a Wallet information by its ID. | walletId (string) required |
| put_wallets_by_wallet_id | Updates the name of an existing wallet. | walletId (string) required data: { . name (string,null) . externalId (string,null) } (object) required |
| get_wallets_by_wallet_id_assets | Retrieves a list of assets owned by the specified wallet. Return values vary by chain as shown below. Each asset includes its current USD market price quotes; pass netWorth=true to also return the wallet's total USD value net worth. | walletId (string) required netWorth (string) |
| get_wallets_by_wallet_id_history | Retrieves a list of historical on chain activities for the specified wallet. The list reflects the indexed on-chain activity: it includes confirmed transactions only. If you need to list your on-going or failed transactions please use the related endpoints List Transfershttps://docs.dfns.co/api-reference/wallets/list-transfers or List Transactionshttps://docs.dfns.co/api-reference/wallets/list-transactions depending on the API you are using. | walletId (string) required limit (integer) paginationToken (string) direction (string) kind (string) contract (string) |
| get_wallets_by_wallet_id_nfts | Retrieves a list of NFTs owned by the specified Wallet. | walletId (string) required |
| post_wallets_import | Warning This endpoint is not enabled by default. Contact Dfnshttps://support.dfns.co to have it activated. /Warning Dfns secures private keys by generating them as MPC key shares in our decentralized key management network. This happens by default when you create a wallethttps://docs.dfns.co/api-reference/wallets/create-wallet. In some circumstances, however, you may need to import an existing wallet an existing private key into Dfns infrastructure, instead of creating a brand new wallet with | data: { . name (string) . curve (string) . protocol . minSigners (integer) . encryptedKeyShares (array) . network (string) . externalId (string) } (object) required |
| get_wallets_by_wallet_id_transfers | Retrieves a list of transfer requests for the specified wallet. | walletId (string) required limit (integer) paginationToken (string) |
| post_wallets_by_wallet_id_transfers | Transfer an asset out of the specified wallet to a destination address. For all fungible token transfers, the transfer amount must be specified in the minimum denomination of that token. For example, use the amount in Satoshi for a Bitcoin transfer, or the amount in Wei for an Ethereum transfer etc. See the different options in the Body description below. You can also select your kind of transfers in the payload examples in the different languages. Tip Binance chains users can use ERC transfe | walletId (string) required data required |
| put_wallets_by_wallet_id_tags | Add a Taghttps://docs.dfns.co/api-reference/wallets/tags to a wallet. | walletId (string) required data: { . tags (array) } (object) required |
| delete_wallets_by_wallet_id_tags | Removes the specified tags from a wallet. | walletId (string) required data: { . tags (array) } (object) required |
| get_wallets_by_wallet_id_offers_by_offer_id | Retrieve information about a specific offer received on your wallet. | walletId (string) required offerId (string) required |
| get_wallets_by_wallet_id_offers | List all offers received on a specific wallet. | walletId (string) required limit (integer) paginationToken (string) |
| put_wallets_by_wallet_id_offers_by_offer_id_accept | Accept an offer received on your wallet. | walletId (string) required offerId (string) required |
| put_wallets_by_wallet_id_offers_by_offer_id_reject | Reject an offer received on your wallet. | walletId (string) required offerId (string) required |
| get_wallets_all_history | Retrieve the transaction history across all wallets within a specified timeframe. The time range is unbounded, but the CSV export is capped at 100,000 rows. | limit (integer) paginationToken (string) startTime (string) required endTime (string) required |
| post_webhooks | Register a new webhook. | data: { . url (string) . status (string) . description (string) . events (array) } (object) required |
| get_webhooks | List all webhooks for the authenticated user's organization. The results are paginated. | limit (integer) paginationToken (string) |
| delete_webhooks_by_webhook_id | Deletes an existing webhook registration. | webhookId (string) required |
| get_webhooks_by_webhook_id | Retrieve information about a specific webhook. | webhookId (string) required |
| put_webhooks_by_webhook_id | Update the definition of an existing webhook. | webhookId (string) required data: { . url (string) . description (string) . events (array) . status (string) } (object) required |
| post_webhooks_by_webhook_id_ping | This endpoint is meant for webhook setup and troubleshooting. Calling the endpoint will trigger a fake test event that will be pushed to the webhook URL. The fake event will not be saved and not appear in further requests to Webhook Events. | webhookId (string) required |
| get_webhooks_by_webhook_id_events_by_webhook_event_id | Retrieve a specific webhook event details by its ID. Warning We only keep a trace of those Webhook Events in our system for a retention period of 31 days. Past that, they are discarded, so you cannot see them using List Webhook Eventshttps://docs.dfns.co/api-reference/webhooks/list-webhook-events or Get Webhook Eventhttps://docs.dfns.co/api-reference/webhooks/get-webhook-event endpoints. /Warning | webhookId (string) required webhookEventId (string) required |
| get_webhooks_by_webhook_id_events | Lists all events for a given webhook. Warning We only keep a trace of those Webhook Events in our system for a retention period of 31 days. Past that, they are discarded, so you cannot see them using List Webhook Eventshttps://docs.dfns.co/api-reference/webhooks/list-webhook-events or Get Webhook Eventhttps://docs.dfns.co/api-reference/webhooks/get-webhook-event endpoints. /Warning | webhookId (string) required kind (string) deliveryFailed (string) limit (integer) paginationToken (string) |
| custom | Call any endpoint of the connected service while reusing the connection auth. Pass the full URL as _url. Other reserved keys: _method, _query, _body, _headers. Remaining params flow naturally — empty → GET, non-empty → POST JSON body. | _url (string) required _method (string) _query (object) _body _headers (object) |
Webhook Events
This connector emits 40 events back to your workflow. To receive one, create a hook whose path is <connection-name>/<event> — the connection name you configured plus the event from the table below.
| Event | Description |
|---|---|
| policy-triggered | A policy got triggered upon some activity the policy rule got evaluated, and it triggered. |
| policy-approval-pending | A new approval process has been created and is pending. |
| policy-approval-resolved | An approval process is finalized: its status resolves to Approved or Denied. |
| key-created | A key has been created. |
| key-deleted | A key has been deleted. |
| key-delegated | A key has been delegated. |
| key-exported | A key has been exported. |
| wallet-blockchainevent-detected | A wallet event has been detected on chain eg. a deposit. Only available for Tier-1 chains. |
| wallet-blockchain-event-transfer-included | An incoming transfer has been detected in a block that is not yet finalized pre-confirmation. |
| wallet-blockchain-event-misc-confirmed | A wallet on-chain event that is not a transfer has been confirmed. |
| wallet-created | A wallet has been created. |
| wallet-activated | A wallet has been activated for example, a Canton wallet. |
| wallet-delegated | A wallet has been delegated. |
| wallet-exported | A wallet has been exported deprecated. |
| wallet-signature-requested | A generate signature request has been created. |
| wallet-signature-failed | A generate signature request has failed to process. |
| wallet-signature-rejected | A generate signature request with a policy approval has been rejected. |
| wallet-signature-signed | A generate signature request has completed. |
| wallet-transaction-requested | A broadcast transaction request has been created. |
| wallet-transaction-failed | A broadcast transaction request has failed to process. |
| wallet-transaction-rejected | A broadcast transaction request with a policy approval has been rejected. |
| wallet-transaction-broadcasted | A broadcast transaction request has been submitted to the mempool. |
| wallet-transaction-confirmed | A broadcast transaction request has been confirmed on chain. Only available for Tier-1 chains. |
| wallet-transfer-requested | A wallet transfer request has been created. |
| wallet-transfer-failed | A wallet transfer request has failed to process. |
| wallet-transfer-rejected | A wallet transfer request with a policy approval has been rejected. |
| wallet-transfer-broadcasted | A wallet transfer request has been submitted to the mempool. |
| wallet-transfer-confirmed | A wallet transfer request has been confirmed on chain. Only available for Tier-1 chains. |
| wallet-offer-received | A new transfer offer has been made to a wallet. |
| wallet-offer-accepted | A transfer offer has been accepted and settlement confirmed on chain. |
| wallet-offer-rejected | A transfer offer has been rejected and settlement confirmed on chain. |
| wallet-offer-withdrawn | A transfer offer has been withdrawn by the sender. |
| wallet-tags-modified | A wallet's tags have been modified. |
| vault-created | A vault has been created. |
| vault-updated | A vault has been updated. |
| vault-tags-modified | Tags have been added to or removed from a vault. |
| vault-event-created | An entry has been appended to a vault's balance ledger. |
| address-watch-blockchain-event-transfer-confirmed | A transfer touching one of your watched addresses has been confirmed on chain. |
| address-watch-blockchain-event-misc-confirmed | An on-chain event that is not a transfer has been confirmed on one of your watched addresses. |
| payout-action-required | A payout requires an action for example, an approval. |