# Dfns documentation
## Docs
- [Account Abstraction on EVMs](https://docs.dfns.co/advanced/account-abstraction-on-evms.md)
- [Credentials](https://docs.dfns.co/advanced/credentials.md)
- [Delegated Signing](https://docs.dfns.co/advanced/delegated-signing.md)
- [Using Hardware Security Modules (HSMs)](https://docs.dfns.co/advanced/deployment-models/hsm.md)
- [Dfns deployment models](https://docs.dfns.co/advanced/deployment-models/index.md)
- [On premise deployment](https://docs.dfns.co/advanced/deployment-models/on-premise-deployment.md): With Dfns you can deploy the signers or the HSM signing server on your infrastructure.
- [Interoperability](https://docs.dfns.co/advanced/interoperability.md)
- [Non-custodial wallets](https://docs.dfns.co/advanced/non-custodial-wallets.md): Give your end users sole and full control over their digital assets
- [Agreements](https://docs.dfns.co/api-reference/agreements.md): Sign Dfns and third-party providers service agreements, privacy policy, etc
- [Get Latest Unaccepted Agreement](https://docs.dfns.co/api-reference/agreements/get-latest-unaccepted-agreement.md): Get the latest unaccepted agreement for a specific agreement type
- [Record Agreement Acceptance](https://docs.dfns.co/api-reference/agreements/record-agreement-acceptance.md): Record the acceptance of a specific agreement by its ID
- [Allocations](https://docs.dfns.co/api-reference/allocations.md): Dfns supports reward generation via multiple providers to let you earn rewards on your crypto holdings across supported chains. Below is an overview of the rewards providers, what they are, and which chains each supports.
- [Create Allocation](https://docs.dfns.co/api-reference/allocations/create-allocation.md): Create a new allocation.
- [Create Allocation Action](https://docs.dfns.co/api-reference/allocations/create-allocation-action.md): Create a new action for an existing allocation.
- [Get Allocation](https://docs.dfns.co/api-reference/allocations/get-allocation.md): Retrieve the details of a specific allocation.
- [List Allocation Actions](https://docs.dfns.co/api-reference/allocations/list-allocation-actions.md): Retrieve the list of actions for a specific allocation.
- [List Allocations](https://docs.dfns.co/api-reference/allocations/list-allocations.md)
- [Account Recovery](https://docs.dfns.co/api-reference/auth/account-recovery.md)
- [Activate Credential](https://docs.dfns.co/api-reference/auth/activate-credential.md): Activates a credential that was previously deactivated. If the credential is already activated no action is taken.
- [Activate Personal Access Token](https://docs.dfns.co/api-reference/auth/activate-personal-access-token.md): Activate a specific Personal Access Token.
- [Activate Service Account](https://docs.dfns.co/api-reference/auth/activate-service-account.md): Activate a specific Service Account.
- [Activate User](https://docs.dfns.co/api-reference/auth/activate-user.md): Activate a specific User.
- [Complete End User Registration with Wallets](https://docs.dfns.co/api-reference/auth/complete-end-user-registration-with-wallets.md): Completes the end user registration process and creates the user's initial credentials along with delegated wallets for the new end user.
The type of credentials being registered is determined by the `credentialKind` field in the nested objects (`firstFactorCredential` , `secondFactorCredential` and `RecoveryCredential`). Supported credential kinds are:
* `Fido2`: User action is signed by a user's signing device using `WebAuthn`.
* `Key`: User action is signed by a user's, or token's, private key.
* `PasswordProtectedKey`: User action is signed by a user's, or token's, private key. The encrypted version of the private key is stored by Dfns and returns during the signing flow for the user to decrypt it.
The number of delegated wallets created and the wallet types are determined by the `wallets` specifications. The end user is automatically assigned `ManagedDefaultEndUserAccess` managed permission that grants the end user full access to the wallets.
- [Complete SSO Login](https://docs.dfns.co/api-reference/auth/complete-sso-login.md): Completes the login process and provides the authenticated user with their authentication token.
- [Complete User Login](https://docs.dfns.co/api-reference/auth/complete-user-login.md): 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 [Create User Login Challenge](../registration/inituserregistration) step.
- [Complete User Registration](https://docs.dfns.co/api-reference/auth/complete-user-registration.md): Completes the user registration process and creates the user's initial credentials.
The type of credentials being registered is determined by the `credentialKind` field in the nested objects (`firstFactorCredential` , `secondFactorCredential` and `RecoveryCredential`). Supported credential kinds are:
* `Fido2`: User action is signed by a user's signing device using `WebAuthn`.
* `Key`: User action is signed by a user's, or token's, private key.
* `PasswordProtectedKey`: User action is signed by a user's, or token's, private key. The encrypted version of the private key is stored by Dfns and returns during the signing flow for the user to decrypt it.
* `RecoveryKey` : Similar to `PasswordProtectedKey`, but this credential can only be used to recover an account not to sign an action or login. Once this credential is used all the other user's credentials are invalidated.
- [Create Credential](https://docs.dfns.co/api-reference/auth/create-credential.md): Part of the flow [Create Credential Regular flow](https://docs.dfns.co/api-reference/auth/credentials#regular-flow).
Adds a new credential to a user's account. See [Credential Kinds](https://docs.dfns.co/api-reference/auth/credentials#credential-kinds) for all supported credential types.
- [Create Credential Challenge](https://docs.dfns.co/api-reference/auth/create-credential-challenge.md): Part of the flow [Create Credential Regular flow](https://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.
- [Create Credential Challenge With Code](https://docs.dfns.co/api-reference/auth/create-credential-challenge-with-code.md): Part of the flow [Create Credential With Code](https://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.
- [Create Credential Code](https://docs.dfns.co/api-reference/auth/create-credential-code.md): Part of the [Create Credential With Code flow](https://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.
- [Create Credential With Code](https://docs.dfns.co/api-reference/auth/create-credential-with-code.md): Finalizes the flow [Create Credential With Code](https://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 Credential](https://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 Code](https://docs.dfns.co/api-reference/auth/create-credential-challenge-with-code) endpoint
- [Create Delegated Recovery Challenge](https://docs.dfns.co/api-reference/auth/create-delegated-recovery-challenge.md):
Only a [Service Account](https://docs.dfns.co/api-reference/auth/service-accounts) can use this endpoint.
This endpoint enables setting up a recovery workflow for Delegated Signing. Via this configuration, the end user will not receive an email from Dfns but instead can establish recovery credentials that leverage the customer's brand for the recovery workflow.
Once the user has been verified by your auth system and this API has been called, you can call [Recover User](https://docs.dfns.co/api-reference/auth/recover-user) to complete the recovery process.
- [Create Delegated Registration Challenge](https://docs.dfns.co/api-reference/auth/create-delegated-registration-challenge.md):
Only a [Service Account](https://docs.dfns.co/api-reference/auth/service-accounts) can use this endpoint.
If you want to use your own authentication system, while still using `Delegated Signing`, you can use this endpoint to register a new End User in your organization, without your user needing to receive an email from Dfns.
This endpoint will:
1. Create a new User attached to your organization
2. Initiates a User Registration Challenge and returns the registration challenge.
On successful creation, the user's registration challenge will be returned. You will then need to call [Complete User Registration](https://docs.dfns.co/api-reference/auth/complete-user-registration) or [Complete End User Registration with Wallets](https://docs.dfns.co/api-reference/auth/complete-end-user-registration-with-wallets) to complete the user's registration.
- [Create Login Challenge](https://docs.dfns.co/api-reference/auth/create-login-challenge.md): 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 (usernamless flow).
- [Create Personal Access Token](https://docs.dfns.co/api-reference/auth/create-personal-access-token.md): Create a new Personal Access Token for the caller.
- [Create Recovery Challenge](https://docs.dfns.co/api-reference/auth/create-recovery-challenge.md): Starts a user recovery session, returning a challenge that will be used to verify the user's identity.
- [Create Registration Challenge](https://docs.dfns.co/api-reference/auth/create-registration-challenge.md): 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/register)
- [Create Service Account](https://docs.dfns.co/api-reference/auth/create-service-account.md): Create a new Service Account for your organization.
- [Create Social Registration Challenge](https://docs.dfns.co/api-reference/auth/create-social-registration-challenge.md): 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/register-end-user).
- [Create User](https://docs.dfns.co/api-reference/auth/create-user.md): 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.
If 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.
- [Create User Action Challenge](https://docs.dfns.co/api-reference/auth/create-user-action-challenge.md): 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 flow](http://docs.dfns.co/api-reference/auth/signing-flows).
- [Create User Action Signature](https://docs.dfns.co/api-reference/auth/create-user-action-signature.md): 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 flow](http://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 action is signed by a user's, or token's, private key.
* `PasswordProtectedKey`: Login challenge is signed by the decrypted user's private key that was sent during [Create User Action Signature Challenge](https://docs.dfns.co/api-reference/auth/create-user-action-challenge) step.
- [Credentials](https://docs.dfns.co/api-reference/auth/credentials.md)
- [Credentials API data](https://docs.dfns.co/api-reference/auth/credentials-data.md)
- [Deactivate Credential](https://docs.dfns.co/api-reference/auth/deactivate-credential.md): Deactivates a credential that was previously active. If the credential is already deactivated no action is taken.
- [Deactivate Personal Access Token](https://docs.dfns.co/api-reference/auth/deactivate-personal-access-token.md): Deactivates a credential that was previously active. If the credential is already deactivated no action is taken.
- [Deactivate Service Account](https://docs.dfns.co/api-reference/auth/deactivate-service-account.md): Deactivate a specific Service Account.
- [Deactivate User](https://docs.dfns.co/api-reference/auth/deactivate-user.md): Deactivate a specific User.
- [Delegated Login](https://docs.dfns.co/api-reference/auth/delegated-login.md):
Only a [Service Account](https://docs.dfns.co/api-reference/auth/service-accounts) can use this endpoint.
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 user to sign the action.
- [Delete Personal Access Token](https://docs.dfns.co/api-reference/auth/delete-personal-access-token.md): Delete a specific Personal Access Token.
- [Delete Service Account](https://docs.dfns.co/api-reference/auth/delete-service-account.md): Delete a specific Service Account.
- [Delete User](https://docs.dfns.co/api-reference/auth/delete-user.md): Delete a specific User.
- [Get Audit Log](https://docs.dfns.co/api-reference/auth/get-audit-log.md):
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 Verifier](https://github.com/dfns/example-scripts/tree/m/python/utils)
- [Get Personal Access Token](https://docs.dfns.co/api-reference/auth/get-personal-access-token.md): Retrieve a specific Personal Access Token.
- [Get Service Account](https://docs.dfns.co/api-reference/auth/get-service-account.md): Get information about a specific Service Account.
- [Get User](https://docs.dfns.co/api-reference/auth/get-user.md): Retrieve information about a specific User.
- [Required headers](https://docs.dfns.co/api-reference/auth/index.md)
- [Initiate SSO Login](https://docs.dfns.co/api-reference/auth/initiate-sso-login.md): Initialize the login process with SSO by returning the IdP Url to call.
- [List Audit Logs](https://docs.dfns.co/api-reference/auth/list-audit-logs.md):
Gets all signature events which have occurred in the over the timeframe. The max range the API supports is 7 days.
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 parameter, `userId` can be specified to filter down events to a particular user. The API will return results found in CSV format.
Dfns maintains a script which can be used for audit log signature validation: [WebAuthn Signature Verifier](https://github.com/dfns/example-scripts/tree/m/python/utils)
- [List Credentials](https://docs.dfns.co/api-reference/auth/list-credentials.md): List all credentials for a user.
- [List Personal Access Tokens](https://docs.dfns.co/api-reference/auth/list-personal-access-tokens.md): Retrieve the list of your Personal Access Tokens.
- [List Service Accounts](https://docs.dfns.co/api-reference/auth/list-service-accounts.md): List all Service Accounts in your organization.
- [List Users](https://docs.dfns.co/api-reference/auth/list-users.md): List all Users in your organization.
- [Authentication flows](https://docs.dfns.co/api-reference/auth/login-flows.md): Dfns offers a flexible range of authentication flows to securely connect your users and manage their access to the Dfns API.
- [Logout](https://docs.dfns.co/api-reference/auth/logout.md): Completes the user logout process.
- [Personal Access Tokens (PAT)](https://docs.dfns.co/api-reference/auth/personal-access-tokens.md)
- [Recover User](https://docs.dfns.co/api-reference/auth/recover-user.md): 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 credential(s) 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 challenge obtained from either the [Create Recovery Challenge](https://docs.dfns.co/api-reference/auth/create-recovery-challenge) or [Create Delegated Recovery Challenge](https://docs.dfns.co/api-reference/auth/create-delegated-recovery-challenge) endpoints.
2. Serialize the `newCredential` object to JSON and then base64url-encode the resulting JSON string. This _base64url-encoded_ string will serve as the challenge for the `recovery.credentialAssertion` object.
3. Construct the `recovery.credentialAssertion` object, using the _base64url-encoded_ string generated in step 2 as its challenge.
- [Registration flows](https://docs.dfns.co/api-reference/auth/registration-flows.md): How Dfns handles registration
- [Resend Registration Code](https://docs.dfns.co/api-reference/auth/resend-registration-code.md): 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.
- [Send Login Code](https://docs.dfns.co/api-reference/auth/send-login-code.md):
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 Challenge](https://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 key and trying to brute force it offline.
- [Send Recovery Code Email](https://docs.dfns.co/api-reference/auth/send-recovery-code-email.md): Send the user a recovery verification code. This code is used as a second factor to verify the user initiated the recovery request.
- [Service Accounts](https://docs.dfns.co/api-reference/auth/service-accounts.md)
- [User Action Signing flows](https://docs.dfns.co/api-reference/auth/signing-flows.md): All API calls that make a change within the Dfns system need to be signed by a user. This ensures that only authorized users are able to make changes within the system, and the signature can be used to audit changes at a later time.
- [Social Login](https://docs.dfns.co/api-reference/auth/social-login.md): Completes the login process and provides the authenticated user with their authentication token.
- [Update Personal Access Token](https://docs.dfns.co/api-reference/auth/update-personal-access-token.md): Update a specific Personal Access Token.
- [Update Service Account](https://docs.dfns.co/api-reference/auth/update-service-account.md): Update a specific Service Account.
- [Update User](https://docs.dfns.co/api-reference/auth/update-user.md): Update a specific User.
- [Users](https://docs.dfns.co/api-reference/auth/users.md)
- [Algorand](https://docs.dfns.co/api-reference/broadcast/algorand.md)
- [Aptos](https://docs.dfns.co/api-reference/broadcast/aptos.md)
- [Bitcoin / Litecoin](https://docs.dfns.co/api-reference/broadcast/bitcoin.md)
- [Canton](https://docs.dfns.co/api-reference/broadcast/canton.md)
- [Cardano](https://docs.dfns.co/api-reference/broadcast/cardano.md)
- [EVM chains](https://docs.dfns.co/api-reference/broadcast/evm.md)
- [Hedera](https://docs.dfns.co/api-reference/broadcast/hedera.md)
- [Broadcast](https://docs.dfns.co/api-reference/broadcast/index.md)
- [IOTA](https://docs.dfns.co/api-reference/broadcast/iota.md)
- [NEAR](https://docs.dfns.co/api-reference/broadcast/near.md)
- [Solana](https://docs.dfns.co/api-reference/broadcast/solana.md)
- [Stellar](https://docs.dfns.co/api-reference/broadcast/stellar.md)
- [Sui](https://docs.dfns.co/api-reference/broadcast/sui.md)
- [Tezos](https://docs.dfns.co/api-reference/broadcast/tezos.md)
- [TRON](https://docs.dfns.co/api-reference/broadcast/tron.md)
- [XRP Ledger (Ripple)](https://docs.dfns.co/api-reference/broadcast/xrp.md)
- [Core API Objects](https://docs.dfns.co/api-reference/core-objects.md): The following are the core objects (also called entities) that you will interact with when using the Dfns APIs/SDKs.
- [API Errors](https://docs.dfns.co/api-reference/error-codes.md)
- [Create Exchange](https://docs.dfns.co/api-reference/exchanges/create-exchange.md): Link your organization with a cryptocurrency exchange.
- [Create Exchange Deposit](https://docs.dfns.co/api-reference/exchanges/create-exchange-deposit.md): Creates a new exchange deposit transaction.
- [Create Exchange Withdrawal](https://docs.dfns.co/api-reference/exchanges/create-exchange-withdrawal.md): Creates a new exchange withdrawal transaction.
- [Delete Exchange](https://docs.dfns.co/api-reference/exchanges/delete-exchange.md): Delete the exchange configuration from your organization.
- [Get Exchange](https://docs.dfns.co/api-reference/exchanges/get-exchange.md): Retrieve the details of a specific exchange integration configuration.
- [List Account Assets](https://docs.dfns.co/api-reference/exchanges/list-account-assets.md): Retrieve the list of assets for a specific account on a specific exchange.
- [List Accounts](https://docs.dfns.co/api-reference/exchanges/list-accounts.md): Get a list of accounts for a specific exchange.
- [List Asset Withdrawal Networks](https://docs.dfns.co/api-reference/exchanges/list-asset-withdrawal-networks.md)
- [List Exchanges](https://docs.dfns.co/api-reference/exchanges/list-exchanges.md): List all configured exchange integrations.
- [Swap completed](https://docs.dfns.co/api-reference/exchanges/swap-completed.md): A swap has completed successfully
- [Swap failed](https://docs.dfns.co/api-reference/exchanges/swap-failed.md): A Swap request has failed to process
- [Activate Fee Sponsor](https://docs.dfns.co/api-reference/fee-sponsors/activate-fee-sponsor.md): Activate a Fee Sponsor: The fee sponsor can be used when making a transfer.
- [Create Fee Sponsor](https://docs.dfns.co/api-reference/fee-sponsors/create-fee-sponsor.md): 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.
- [Deactivate Fee Sponsor](https://docs.dfns.co/api-reference/fee-sponsors/deactivate-fee-sponsor.md): Deactivate a Fee Sponsor: The fee sponsor won't be able to be used anymore when making a transfer.
- [Delete Fee Sponsor](https://docs.dfns.co/api-reference/fee-sponsors/delete-fee-sponsor.md): Delete a Fee Sponsor. This action is irreversible. The fee sponsor won't be able to be used anymore when making a transfer.
- [Get Fee Sponsor](https://docs.dfns.co/api-reference/fee-sponsors/get-fee-sponsor.md): Retrieve a Fee Sponsor information by ID.
- [List Fee Sponsors](https://docs.dfns.co/api-reference/fee-sponsors/list-fee-sponsors.md): Retrieves all Fee Sponsors configured in your organization.
- [List Sponsored Fees](https://docs.dfns.co/api-reference/fee-sponsors/list-sponsored-fees.md): Retrieves all fees paid by the specific Fee Sponsor.
- [Idempotency](https://docs.dfns.co/api-reference/idempotency.md)
- [API Reference](https://docs.dfns.co/api-reference/index.md): This section is where you can find our complete API reference, including request operations and responses.
- [Keys](https://docs.dfns.co/api-reference/keys.md): A technical overview of the `Key` object, used to derive wallets and perform raw signing operations via the API.
- [Create Key](https://docs.dfns.co/api-reference/keys/create-key.md): Creates a key for the given scheme and curve. Returns the new key entity.
- [Delegate Key](https://docs.dfns.co/api-reference/keys/delegate-key.md):
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.
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 ownerships are guaranteed to be always consistent.
This operation is irreversible. The key ownership will be transferred to the end-user
In most cases, when you want to implement [Wallet Delegation](https://docs.dfns.co/developers/guides/wallet-delegation), simply create the wallet by directly delegating it to an end user, in which case it will the non-custodial from the start. There are some rare cases, however, where the key or wallet must be created before the user has accessed to the system. To accommodate this, we've added the ability to create a key or wallet in delay delegation mode, and then later delegate it (ie. transfer ownership of it) to an end user via this endpoint.
- [Delete Key](https://docs.dfns.co/api-reference/keys/delete-key.md): 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.
- [Derive Key](https://docs.dfns.co/api-reference/keys/derive-key.md): Dfns decentralized key management network supports threshold Diffie-Hellman protocol based on [GLOW20 paper](https://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 [RFC9380](https://www.rfc-editor.org/rfc/rfc9380.html) and standard ciphersuite `secp256k1_XMD:SHA-256_SSWU_RO_`.
The seed doesn’t need to be secret. Without access to the DH key, it is not possible to do the derivation, even if the seed is known. Moreover, if both seed and derived output are known, it’s also not possible to do the derivation for another seed without having access to the DH key.
This endpoint only supports Diffie-Hellman keys. Regular threshold signature keys, like `ECDSA` or `EdDSA`, will not work. You can create a Diffie-Hellman key with the [Create Key](https://docs.dfns.co/api-reference/keys/create-key) endpoint using `scheme=DH` and `curve=secp256k1`.
- [Export Key](https://docs.dfns.co/api-reference/keys/export-key.md): 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 SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/export-wallet).
Dfns can not guarantee the security of exported keys as we have no way to control blockchain transactions once the single point of failure has been reconstituted. For this reason, this feature is restricted to customers who have signed a contractual addendum limiting our liability for exported keys. Additionally, by default exported keys can no longer be used to sign within the Dfns platform. Please contact your sales representative for more information.
- [Generate Signature](https://docs.dfns.co/api-reference/keys/generate-signature.md): 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 format](https://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.
If you were using the deprecated `POST /wallets/{walletId}/signatures` endpoint, then you should now use this one. See the [deprecation notice](https://docs.dfns.co/developers/guides/keys-and-multichain-migration-guide) to get more information about how to change your code. TL,DR: from a wallet you can obtain the key as `wallet.signingKey.id`.
- [Get Key](https://docs.dfns.co/api-reference/keys/get-key.md): Retrieves a key information by its ID.
- [Get Signature](https://docs.dfns.co/api-reference/keys/get-signature.md): Retrieve a signature request details.
- [Import Key](https://docs.dfns.co/api-reference/keys/import-key.md): 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 [key](https://docs.dfns.co/api-reference/keys/create-key) or [wallet](https://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 existing wallet if its address is tied to a smart contract which you don't want to re-deploy.
In such a case, Dfns exposes this key import API endpoint, which can be used in conjunction with our [import SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/import-wallet). Note this is intended to be used only to migrate wallets when first onboarding onto the Dfns platform.
Dfns can not guarantee the security of imported wallets, as we have no way to control who had access to the private key prior to import. For this reason, this feature is restricted to Enterprise customers who have signed a contractual addendum limiting our liability for imported keys. Please contact your sales representative for more information.
- [Key created](https://docs.dfns.co/api-reference/keys/key-created.md): A new key has been created
- [Key delegated](https://docs.dfns.co/api-reference/keys/key-delegated.md): A key was delegated to an End User
- [Key deleted](https://docs.dfns.co/api-reference/keys/key-deleted.md): A key has been deleted
- [Key exported](https://docs.dfns.co/api-reference/keys/key-exported.md): A key was exported
- [List Keys](https://docs.dfns.co/api-reference/keys/list-keys.md): Retrieve all keys registered for your organization.
- [List Signatures](https://docs.dfns.co/api-reference/keys/list-signatures.md): List all signature requests for a key.
- [Signature complete](https://docs.dfns.co/api-reference/keys/signature-complete.md): A signature request has been completed. The signature is available.
- [Signature failed](https://docs.dfns.co/api-reference/keys/signature-failed.md): A signature request failed.
- [Signature rejected](https://docs.dfns.co/api-reference/keys/signature-rejected.md): A signature request has been rejected by a policy approval action.
- [Signature requested](https://docs.dfns.co/api-reference/keys/signature-requested.md): A signature using one of your keys has been requested.
- [Update Key](https://docs.dfns.co/api-reference/keys/update-key.md): Updates the name of an existing key.
- [Create Canton Validator](https://docs.dfns.co/api-reference/networks/create-canton-validator.md): 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 [here](https://docs.dfns.co/networks/canton-validators).
- [Delete Canton Validator](https://docs.dfns.co/api-reference/networks/delete-canton-validator.md): Delete a specific Canton Validator configuration.
- [Estimate Fees](https://docs.dfns.co/api-reference/networks/estimate-fees.md): 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`.
- [Get Canton Validator](https://docs.dfns.co/api-reference/networks/get-canton-validator.md): Return a configured Canton Validator in your organization.
- [List Canton Validators](https://docs.dfns.co/api-reference/networks/list-canton-validators.md): Retrieve the list of configured Canton Validators in your organization.
- [Read Contract](https://docs.dfns.co/api-reference/networks/read-contract.md): Call a read-only function on a smart contract. In Solidity, this use the `view` keyword.
Currently only works on EVM compatible chains.
- [Update Canton Validator](https://docs.dfns.co/api-reference/networks/update-canton-validator.md): Update an existing Canton Validator configuration.
Read details about the process [here](https://docs.dfns.co/networks/canton-validators).
- [OpenAPI & Postman](https://docs.dfns.co/api-reference/openapi-postman.md): Standardized specifications of the Dfns API
- [Assign Permission](https://docs.dfns.co/api-reference/permissions/assign-permission.md): 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).
- [Create Permission](https://docs.dfns.co/api-reference/permissions/create-permission.md): Creates a permission that allows certain specified operations to be executed.
- [Delete Permission](https://docs.dfns.co/api-reference/permissions/delete-permission.md): Delete a specific Permission.
- [Get Permission](https://docs.dfns.co/api-reference/permissions/get-permission.md): Retrieves a specific permission (success) or gives a reason why it's not possible (failure).
- [List Permission Assignments](https://docs.dfns.co/api-reference/permissions/list-permission-assignments.md): Retrieves a list of permission assignments (success) or gives a reason why it's not possible (failure).
- [List Permissions](https://docs.dfns.co/api-reference/permissions/list-permissions.md): Retrieves a list of permissions (success) or gives a reason why it's not possible (failure).
- [Revoke Permission](https://docs.dfns.co/api-reference/permissions/revoke-permission.md): Revokes a permission assignment (success) or gives reason why it’s not possible (failure).
- [Update Permission](https://docs.dfns.co/api-reference/permissions/update-permission.md): Updates an existing permission. Response either returns the updated permission (success) or the reason why it was not possible to update (failure).
- [Policies](https://docs.dfns.co/api-reference/policies.md)
- [Create Approval Decision](https://docs.dfns.co/api-reference/policies/create-approval-decision.md): Approve or Reject an Approval request.
- [Create Policy](https://docs.dfns.co/api-reference/policies/create-policy.md): 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 competitors - we simply enable this use case as another configuration of the policy engine itself. This was chosen to promote flexibility as not every customer will have the same requirements around creating and managing admin quorums.
- [Delete Policy](https://docs.dfns.co/api-reference/policies/delete-policy.md): Delete an existing policy.
- [Get Approval](https://docs.dfns.co/api-reference/policies/get-approval.md): Retrieve information about a specific approval request.
- [Get Policy](https://docs.dfns.co/api-reference/policies/get-policy.md): Retrieve information about a specific policy.
- [List Approvals](https://docs.dfns.co/api-reference/policies/list-approvals.md): Retrieve the list of pending approval requests.
- [List Policies](https://docs.dfns.co/api-reference/policies/list-policies.md): Retrieve the list of policies on your organization.
- [Policy activity resolved](https://docs.dfns.co/api-reference/policies/policy-activity-resolved.md): A policy has been fulfilled.
- [Policy approval pending](https://docs.dfns.co/api-reference/policies/policy-approval-pending.md): A new [Approval](https://docs.dfns.co/api-reference/policy-approvals) process has been created and is pending.
- [Policy approval resolved](https://docs.dfns.co/api-reference/policies/policy-approval-resolved.md): An [Approval](https://docs.dfns.co/api-reference/policy-approvals) process is finalized: it has been either approved or rejected.
- [Policy triggered](https://docs.dfns.co/api-reference/policies/policy-triggered.md): A policy got triggered upon some activity (the policy rule got evaluated, and it triggered).
- [Update Policy](https://docs.dfns.co/api-reference/policies/update-policy.md): Update an existing policy.
- [Policy Approvals](https://docs.dfns.co/api-reference/policy-approvals.md)
- [Rate Limits](https://docs.dfns.co/api-reference/rate-limits.md)
- [Dfns Regions](https://docs.dfns.co/api-reference/regions.md): Everything you need to know about our cloud platform hosting.
- [Algorand](https://docs.dfns.co/api-reference/sign/algorand.md)
- [Aptos](https://docs.dfns.co/api-reference/sign/aptos.md)
- [Bitcoin / Litecoin](https://docs.dfns.co/api-reference/sign/bitcoin.md)
- [Cardano](https://docs.dfns.co/api-reference/sign/cardano.md)
- [Cosmos](https://docs.dfns.co/api-reference/sign/cosmos.md)
- [EVM chains](https://docs.dfns.co/api-reference/sign/evm.md)
- [Hedera](https://docs.dfns.co/api-reference/sign/hedera.md)
- [Sign](https://docs.dfns.co/api-reference/sign/index.md)
- [IOTA](https://docs.dfns.co/api-reference/sign/iota.md)
- [Kadena](https://docs.dfns.co/api-reference/sign/kadena.md)
- [NEAR](https://docs.dfns.co/api-reference/sign/near.md)
- [Solana](https://docs.dfns.co/api-reference/sign/solana.md)
- [Stellar](https://docs.dfns.co/api-reference/sign/stellar.md)
- [Substrate (Polkadot)](https://docs.dfns.co/api-reference/sign/substrate.md)
- [Sui](https://docs.dfns.co/api-reference/sign/sui.md)
- [Tezos](https://docs.dfns.co/api-reference/sign/tezos.md)
- [TON](https://docs.dfns.co/api-reference/sign/ton.md)
- [TRON](https://docs.dfns.co/api-reference/sign/tron.md)
- [XRP Ledger (Ripple)](https://docs.dfns.co/api-reference/sign/xrp.md)
- [List Key Stores](https://docs.dfns.co/api-reference/signers/list-key-stores.md)
- [List Signers](https://docs.dfns.co/api-reference/signers/list-signers.md)
- [Create Stake](https://docs.dfns.co/api-reference/staking/create-stake.md): Create a new stake.
- [Create Stake Action](https://docs.dfns.co/api-reference/staking/create-stake-action.md): Create a new action for an existing stake.
- [Get Stake Rewards](https://docs.dfns.co/api-reference/staking/get-stake-rewards.md): Retrieves the rewards linked to a specific stake.
- [Get Stakes](https://docs.dfns.co/api-reference/staking/get-stakes.md): Retrieve the details of a specific stake.
- [List Stake Actions](https://docs.dfns.co/api-reference/staking/list-stake-actions.md): Retrieve the list of actions for a specific stake.
- [List Stakes](https://docs.dfns.co/api-reference/staking/list-stakes.md): Retrieve the list of stakes.
- [Swaps](https://docs.dfns.co/api-reference/swaps.md): Dfns supports swapping via multiple providers to let you execute token swaps across supported EVM-chains. Below is an overview of the swap providers, what they are, and which chains each supports.
- [Create Swap](https://docs.dfns.co/api-reference/swaps/create-swap.md): Create a new swap based on an existing quote. This is the second step of the [Swap flow](https://docs.dfns.co/api-reference/swaps#flow-overview).
- [Get Swap](https://docs.dfns.co/api-reference/swaps/get-swap.md): Get details of a specific swap by its ID
- [Get Swap Quote](https://docs.dfns.co/api-reference/swaps/get-swap-quote.md): Get details of a specific swap quote by its ID
- [List Swaps](https://docs.dfns.co/api-reference/swaps/list-swaps.md): List all swaps with pagination
- [Request Swap Quote](https://docs.dfns.co/api-reference/swaps/request-swap-quote.md): Request a quote from a given provider for swapping assets. This is the first step of the [Swap flow](https://docs.dfns.co/api-reference/swaps#flow-overview).
- [Transfer](https://docs.dfns.co/api-reference/transfer.md)
- [Accept Offer](https://docs.dfns.co/api-reference/wallets/accept-offer.md): Accept an offer received on your wallet.
- [Activate Wallet](https://docs.dfns.co/api-reference/wallets/activate-wallet.md): 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 cryptographic randomness returned by the IDApp.
- [Blockchain event detected](https://docs.dfns.co/api-reference/wallets/blockchain-event-detected.md): A wallet event has been detected on chain (eg. a deposit). Note: This is only available for [Tier-1 chains](https://docs.dfns.co/d/api-docs/wallets#tier-1-vs-tier-2-support).
- [Cancel Transaction](https://docs.dfns.co/api-reference/wallets/cancel-transaction.md): Cancels an EVM transaction by creating a replacement transaction with the same nonce but with a self-transfer of 0 native tokens.
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)
- Transactions that haven't been included in a block yet
The cancellation works by:
1. Extracting the nonce from the original broadcasted transaction
2. Creating a new native transfer to the same wallet address with 0 amount
3. Using the same nonce to replace the original transaction in the mempool
Note: Success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
- [Cancel Transfer](https://docs.dfns.co/api-reference/wallets/cancel-transfer.md): Cancels an EVM transfer by creating a replacement transaction with the same nonce but with a self-transfer of 0 native tokens.
This endpoint only works for:
- EVM-compatible networks (Ethereum, Polygon, BSC, etc.)
- Transfers that are in 'Broadcasted' status (already submitted to blockchain)
- Transfers that haven't been confirmed yet
The cancellation works by:
1. Extracting the nonce from the original broadcasted transaction
2. Creating a new native transfer to the same wallet address with 0 amount
3. Using the same nonce to replace the original transaction in the mempool
Note: Success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
- [Create Wallet](https://docs.dfns.co/api-reference/wallets/create-wallet.md): Creates a new Wallet associated with the given chain (such as Bitcoin or Ethereum ). Returns a new wallet entity.
- [Get Offer](https://docs.dfns.co/api-reference/wallets/get-offer.md): Retrieve information about a specific offer received on your wallet.
- [Get Transaction](https://docs.dfns.co/api-reference/wallets/get-transaction.md): Retrieve information about a specific transaction.
- [Get Transfer](https://docs.dfns.co/api-reference/wallets/get-transfer.md): Retrieves a Wallet Transfer Request by its ID.
- [Get Wallet](https://docs.dfns.co/api-reference/wallets/get-wallet.md): Retrieves a Wallet information by its ID.
- [Get Wallet Assets](https://docs.dfns.co/api-reference/wallets/get-wallet-assets.md): Retrieves a list of assets owned by the specified wallet. Return values vary by chain as shown below.
- [Get Wallet History](https://docs.dfns.co/api-reference/wallets/get-wallet-history.md): 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 Transfers](https://docs.dfns.co/api-reference/wallets/list-transfers) or
[List Transactions](https://docs.dfns.co/api-reference/wallets/list-transactions)
depending on the API you are using).
- [Get Wallet Nfts](https://docs.dfns.co/api-reference/wallets/get-wallet-nfts.md): Retrieves a list of NFTs owned by the specified Wallet.
- [Import Wallet](https://docs.dfns.co/api-reference/wallets/import-wallet.md):
This endpoint is not enabled by default. [Contact Dfns](https://support.dfns.co) to have it activated.
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 wallet](https://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 Dfns and transfer funds to it. As an example, you might want to keep an existing wallet if its address is tied to a smart contract which you don't want to re-deploy.
In such a case, Dfns exposes this wallet import API endpoint, which can be used in conjunction with our [import SDK](https://github.com/dfns/dfns-sdk-ts/tree/m/examples/sdk/import-wallet). Note this is intended to be used only to migrate wallets when first onboarding onto the Dfns platform.
Dfns can not guarantee the security of imported wallets, as we have no way to control who had access to the private key prior to import. For this reason, this feature is restricted to Enterprise customers who have signed a contractual addendum limiting our liability for imported keys. Please contact your sales representative for more information.
- [Wallets](https://docs.dfns.co/api-reference/wallets/index.md)
- [List Offers](https://docs.dfns.co/api-reference/wallets/list-offers.md): List all offers received on a specific wallet.
- [List Org Wallet History](https://docs.dfns.co/api-reference/wallets/list-org-wallet-history.md): Retrieve the transaction history across all wallets within a specified timeframe.
- [List Transactions](https://docs.dfns.co/api-reference/wallets/list-transactions.md): Retrieves a list of transactions requests for the specified wallet.
- [List Transfers](https://docs.dfns.co/api-reference/wallets/list-transfers.md): Retrieves a list of transfer requests for the specified wallet.
- [List Wallets](https://docs.dfns.co/api-reference/wallets/list-wallets.md): Retrieves the list of Wallets in your organization. You can filter the results by owner (either by owner id or owner username). Pagination is supported via limit and paginationToken parameters.
- [Offer accepted](https://docs.dfns.co/api-reference/wallets/offer-accepted.md): The offer was accepted and this settlement was confirmed on chain.
- [Offer received](https://docs.dfns.co/api-reference/wallets/offer-received.md): A new offer was made to a wallet.
- [Offer rejected](https://docs.dfns.co/api-reference/wallets/offer-rejected.md): The offer was rejected and this settlement was confirmed on chain.
- [Reject Offer](https://docs.dfns.co/api-reference/wallets/reject-offer.md): Reject an offer received on your wallet.
- [Sign and Broadcast Transaction](https://docs.dfns.co/api-reference/wallets/sign-and-broadcast-transaction.md): Sign & 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 |
|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
| Pending | The request is pending approval due to a policy applied to the wallet. |
| Executing | The request is approved and is in the process of being executed. note this status is only set for a short time between pending and broadcasted. |
| Broadcasted | The transaction has been successfully written to the mempool. |
| Confirmed | The transaction has been confirmed on-chain by our indexing pipeline. |
| Failed | Indicates either a system failure to complete the request or the transaction failed on chain. |
| Rejected | The request has been rejected by a policy approval action. |
for reading from a "view" function on EVM chains, please use [Read Contract](https://docs.dfns.co/api-reference/networks/read-contract) endpoint.
- [Speed Up Transaction](https://docs.dfns.co/api-reference/wallets/speed-up-transaction.md): 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)
- Transactions that haven't been included in a block 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 higher gas fees (maximum between 10% bump or Fast network fees)
4. Replacing the original transaction in the mempool
Note: Success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
- [Speed Up Transfer](https://docs.dfns.co/api-reference/wallets/speed-up-transfer.md): 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)
- Transfers that haven't been included in a block 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 fees (maximum between 10% bump or Fast network fees)
4. Replacing the original transaction in the mempool
Note: Success is not guaranteed as it depends on network conditions and whether the original transaction has already been mined.
- [Tag Wallet](https://docs.dfns.co/api-reference/wallets/tag-wallet.md): Add a [Tag](https://docs.dfns.co/api-reference/wallets/tags) to a wallet.
- [Tags](https://docs.dfns.co/api-reference/wallets/tags.md)
- [Transaction broadcasted](https://docs.dfns.co/api-reference/wallets/transaction-broadcasted.md): A transaction request has been successfully written to the mempool.
- [Transaction confirmed](https://docs.dfns.co/api-reference/wallets/transaction-confirmed.md): A transaction request has been confirmed on-chain by our indexing pipeline.
- [Transaction failed](https://docs.dfns.co/api-reference/wallets/transaction-failed.md): A transaction request failed. Indicates either a system failure to complete the request or the transaction failed on chain.
- [Transaction rejected](https://docs.dfns.co/api-reference/wallets/transaction-rejected.md): A transaction request has been rejected by a policy approval action.
- [Transaction requested](https://docs.dfns.co/api-reference/wallets/transaction-requested.md): A transaction signature and broadcast using one of your wallets has been requested.
- [Transfer Asset](https://docs.dfns.co/api-reference/wallets/transfer-asset.md):
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.
- [Transfer broadcasted](https://docs.dfns.co/api-reference/wallets/transfer-broadcasted.md): A wallet transfer request has been submitted to the mempool
- [Transfer confirmed](https://docs.dfns.co/api-reference/wallets/transfer-confirmed.md): A wallet transfer request has been confirmed on chain
- [Transfer failed](https://docs.dfns.co/api-reference/wallets/transfer-failed.md): A wallet transfer request has failed to process
- [Transfer rejected](https://docs.dfns.co/api-reference/wallets/transfer-rejected.md): A wallet transfer request with a policy approval has been rejected
- [Transfer requested](https://docs.dfns.co/api-reference/wallets/transfer-requested.md): A wallet transfer request has been created
- [Untag Wallet](https://docs.dfns.co/api-reference/wallets/untag-wallet.md): Removes the specified tags from a wallet.
- [Update Wallet](https://docs.dfns.co/api-reference/wallets/update-wallet.md): Updates the name of an existing wallet.
- [Wallet created](https://docs.dfns.co/api-reference/wallets/wallet-created.md): A new wallet has been created
- [Wallet delegated](https://docs.dfns.co/api-reference/wallets/wallet-delegated.md): A wallet was delegated to an End User
- [Wallet exported](https://docs.dfns.co/api-reference/wallets/wallet-exported.md): A wallet was exported
- [Wallet tags modified](https://docs.dfns.co/api-reference/wallets/wallet-tags-modified.md): Tags of a wallet were modified
- [Webhook Events](https://docs.dfns.co/api-reference/webhook-events.md)
- [Webhooks Configuration](https://docs.dfns.co/api-reference/webhooks.md): Learn about the different webhook events supported by our platform.
- [Create Webhook](https://docs.dfns.co/api-reference/webhooks/create-webhook.md): Register a new webhook.
- [Delete Webhook](https://docs.dfns.co/api-reference/webhooks/delete-webhook.md): Deletes an existing webhook registration.
- [Get Webhook](https://docs.dfns.co/api-reference/webhooks/get-webhook.md): Retrieve information about a specific webhook.
- [Get Webhook Event](https://docs.dfns.co/api-reference/webhooks/get-webhook-event.md): Retrieve a specific webhook event details by its ID.
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 Events](https://docs.dfns.co/api-reference/webhooks/list-webhook-events) or [Get Webhook Event](https://docs.dfns.co/api-reference/webhooks/get-webhook-event) endpoints.
- [List Webhook Events](https://docs.dfns.co/api-reference/webhooks/list-webhook-events.md): Lists all events for a given webhook.
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 Events](https://docs.dfns.co/api-reference/webhooks/list-webhook-events) or [Get Webhook Event](https://docs.dfns.co/api-reference/webhooks/get-webhook-event) endpoints.
- [List Webhooks](https://docs.dfns.co/api-reference/webhooks/list-webhooks.md): List all webhooks for the authenticated user's organization. The results are paginated.
- [Ping Webhook](https://docs.dfns.co/api-reference/webhooks/ping-webhook.md): 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.
- [Update Webhook](https://docs.dfns.co/api-reference/webhooks/update-webhook.md): Update the definition of an existing webhook.
- [Webhook event retry](https://docs.dfns.co/api-reference/webhooks/webhook-event-retry.md): A webhook delivery is being retried. See [Webhook Event Deliveries & Retries](https://docs.dfns.co/api-reference/webhook-events#webhook-event-deliveries-%26-retries) for details.
- [Product Updates](https://docs.dfns.co/changelog.md): Change log detailing product releases
- [Architecture](https://docs.dfns.co/core-concepts/architecture.md): Welcome to Dfns! This page will walk you through the Dfns architecture, explaining how we help businesses securely manage digital assets. We've designed this for a broad audience, so you don't need to be a cryptography expert to understand it.
- [Dfns Security Model](https://docs.dfns.co/core-concepts/dfns-security-model.md): Our security model is built on a simple but powerful idea: **the best way to protect a secret is to ensure no single person or system ever knows it.** At Dfns, we've designed our entire platform around this principle, eliminating single points of failure to provide mathematically provable and layered security for your digital assets.
- [Introduction to MPC](https://docs.dfns.co/core-concepts/how-mpc-wallets-work.md)
- [Passkeys](https://docs.dfns.co/core-concepts/passkeys.md): Why Dfns Champions Passkeys for Unparalleled Security
- [Permissions](https://docs.dfns.co/core-concepts/permissions.md)
- [Policies](https://docs.dfns.co/core-concepts/policies.md): Policies enable businesses to enforce rules and request approvals on top of actions taken using the Dfns API.
- [Wallets & Keys](https://docs.dfns.co/core-concepts/wallets-and-keys.md): Dfns Wallet-as-a-Service infrastructure enables you to create wallets across a wide variety of chains, at scale.
- [Applications - Deprecation](https://docs.dfns.co/deprecation/applications-deprecation.md)
- [Keys & Multichain - Migration Guide](https://docs.dfns.co/deprecation/keys-and-multichain-migration-guide.md)
- [Passkey Settings - Migration guide](https://docs.dfns.co/deprecation/passkey-settings-migration-guide.md)
- [Generate a Key Pair](https://docs.dfns.co/developers/guides/generate-a-key-pair.md)
- [Signing requests (User Action Signature)](https://docs.dfns.co/developers/guides/signing-requests.md): All mutating requests need to be signed with a user or service account credential.
- [Connect AI Tools to Dfns Docs](https://docs.dfns.co/developers/guides/using-llms.md): Give your AI coding assistants direct access to Dfns documentation for accurate, real-time answers.
- [Wallet Delegation](https://docs.dfns.co/developers/guides/wallet-delegation.md): Learn how to implement wallet-delegation in your application
- [Start Building with Dfns](https://docs.dfns.co/developers/index.md): Your first steps to integrating with the Dfns API: focusing on our unique two-token authentication model.
- [Webhooks](https://docs.dfns.co/developers/webhooks.md): Listen for events so you can automatically trigger reactions.
- [FAQ](https://docs.dfns.co/faq.md)
- [Allocations](https://docs.dfns.co/features/allocations.md): The **Allocations** feature allows you to earn rewards on your crypto holdings directly within the Dfns platform—no need to connect to external DeFi protocols or leave your dashboard. By integrating with leading protocols, Allocations delivers a fast, secure, and user-friendly experience for earning rewards.
- [AML / KYT](https://docs.dfns.co/features/aml-kyt.md): Anti-money laundering and Know Your Transaction are key compliance capabilities. Dfns integrates with the top platforms in the industry to bring these capabilities to Dfns wallets.
- [Exchanges](https://docs.dfns.co/features/exchanges.md): Dfns offers seamless centralized exchange integrations, enabling efficient asset management, deposits, and withdrawals for users. Our service is designed to simplify interactions with exchanges, providing a secure and user-friendly experience. While we currently support integration with Kraken, we are actively working on expanding our offering to include additional major exchanges such as Coinbase, Kraken, Binance, and many more in the near future. This ensures that users can manage their assets across multiple platforms with ease and confidence, all within the Dfns ecosystem.
- [Fee Sponsors](https://docs.dfns.co/features/fee-sponsors.md)
- [Fiat On/Off-Ramps](https://docs.dfns.co/features/fiat-on-offboarding.md): The Dfns APIs seamlessly interoperate with most fiat on/offboarding providers.
- [Discover Dfns Features ✨](https://docs.dfns.co/features/index.md): Dfns is more than just secure custody. We provide a complete, API-first platform with powerful features designed to help you build, launch, and scale your web3 application. From core transaction management to DeFi, compliance, and seamless user experiences, our tools are built to handle the entire digital asset lifecycle.
- [Staking](https://docs.dfns.co/features/staking.md): Dfns offers seamless staking integrations, enabling efficient asset management for users. Our service is designed to simplify interactions with staking provider, providing a secure and user-friendly experience.
- [Swaps](https://docs.dfns.co/features/swaps.md): The **Swaps** feature allows you to seamlessly exchange one token for another directly within the Dfns platform—no need to connect to external decentralized exchanges (DEXs) or leave your dashboard. By integrating with leading DEX protocols, Swaps delivers a fast, secure, and user-friendly experience for token trading.
- [Transactions](https://docs.dfns.co/features/transactions.md): Dfns offers three primary ways to create a transaction, each offering a different balance of convenience and control. Your choice depends on how much of the transaction lifecycle you want to manage yourself.
- [Travel Rule](https://docs.dfns.co/features/travel-rule.md)
- [Creating policies](https://docs.dfns.co/guides/creating-policies.md): Make sure your internal processes are directly replicated into your Dfns org.
- [Dashboard Videos](https://docs.dfns.co/guides/dashboard-videos.md): This section provides a series of video guides designed to help you navigate and make the most of the dashboard.
- [Emailing approval requests with Zapier](https://docs.dfns.co/guides/email-approval-requests-with-zapier.md): Automate sending an email using Zapier or other automation tools
- [Locating your Organization id](https://docs.dfns.co/guides/locating-your-organization-id.md): The Organization id is the unique identifier Dfns uses to segregate all your information from other companies. It is conveniently located on your dashboard Account page.
- [Managing Users & Roles](https://docs.dfns.co/guides/managing-users-and-roles.md): Learn how to manage team members and their permissions within your Dfns organization.
- [Onboarding a new device](https://docs.dfns.co/guides/onboarding-a-new-device.md): How to log into the dashboard from a device you have never registered before.
- [Permission-Based Access Control](https://docs.dfns.co/guides/permission-based-access-control.md): Invite new users and setup your Dfns access management with user permissions.
- [Registering a new Passkey Credential](https://docs.dfns.co/guides/registering-a-new-passkey-credential.md): A user can register as many credentials as required for logging into his Dfns org and signing actions. Here is how to add new ones.
- [Setting up Single Sign-On (SSO)](https://docs.dfns.co/guides/set-up-sso.md): Single Sign-On (SSO) allows your team to log in to Dfns using your existing identity provider. This enhances security by centralizing user authentication and management. This guide will walk you through setting up SSO with Dfns using our dashboard.
- [Policies for signing requests](https://docs.dfns.co/guides/signing-policies.md): How to configure policies when using Sign & Broadcast or Generate Signature
- [Storing WebAuthn Credentials in Password Managers](https://docs.dfns.co/guides/storing-webauthn-credentials-in-password-managers.md)
- [Transferring assets](https://docs.dfns.co/guides/transferring-assets.md): This guide will walk you through making a one-off transfer directly from the Dfns Dashboard. For automated or high-volume transfers, we recommend using the **Dfns API**.
- [Using the Address Book](https://docs.dfns.co/guides/using-address-book.md): Your Address Book helps you easily manage and identify the blockchain addresses your team interacts with. Instead of handling long, unreadable strings, you can assign clear, human-friendly aliases to any address you trust or frequently use.
- [Using Networks' Testnets](https://docs.dfns.co/guides/using-networks-testnets.md)
- [null](https://docs.dfns.co/index.md)
- [Chainalysis](https://docs.dfns.co/integrations/aml-kyt/chainalysis.md)
- [Binance](https://docs.dfns.co/integrations/exchanges/binance.md)
- [Coinbase Prime](https://docs.dfns.co/integrations/exchanges/coinbase-prime.md)
- [Kraken](https://docs.dfns.co/integrations/exchanges/kraken.md)
- [Figment](https://docs.dfns.co/integrations/staking/figment.md)
- [Uniswap](https://docs.dfns.co/integrations/swaps/uniswap.md)
- [Notabene](https://docs.dfns.co/integrations/travel-rule/notabene.md)
- [Create your organization and invite employees](https://docs.dfns.co/introduction/quickstart/1-create-your-organization-and-invite-employees.md): Create your organization with you as the first user, then invite coworkers to join you.
- [Define and Assign Permissions](https://docs.dfns.co/introduction/quickstart/2-define-and-assign-permissions.md): Give your users the right level of access to the Dfns features and secure your organization by implement a clear set of reusable permissions.
- [Create policies](https://docs.dfns.co/introduction/quickstart/3-create-policies.md): Make sure your internal processes are directly replicated into your Dfns org.
- [Using the dashboard: create your first wallet](https://docs.dfns.co/introduction/quickstart/4-using-the-dashboard-create-your-first-wallet.md): Use the dashboard to create wallets which are fully managed and controlled by your company.
- [Start building: login & create a wallet via API](https://docs.dfns.co/introduction/quickstart/5-start-building-login-and-create-a-wallet-via-api.md): Building your own app? Learn how to consume the Dfns APIs using your Employee login.
- [Non-custody 1/2: Dfns API using a service account](https://docs.dfns.co/introduction/quickstart/6-non-custody-1-2-dfns-api-using-a-service-account.md): Building your own app? Learn how to consume the Dfns APIs using a Service Account.
- [Non-custody 2/2: customer login and delegated wallets](https://docs.dfns.co/introduction/quickstart/7-non-custody-2-2-customer-login-and-delegated-wallets.md): Give your users ownership and power to use their wallets directly.
- [Quickstart Guide](https://docs.dfns.co/introduction/quickstart/index.md): **Welcome to Dfns!** This guide will help you get set up with our platform. If you have any questions, don't hesitate to reach out to us.
- [Canton validators](https://docs.dfns.co/networks/canton-validators.md)
- [Supported Networks](https://docs.dfns.co/networks/index.md): Learn about the different networks supported by our platform.
- [Supported Assets](https://docs.dfns.co/networks/supported-assets.md): Dfns offers a wide array of chain-specific crypto asset support.
- [Supported Key Formats](https://docs.dfns.co/networks/supported-key-formats.md)
- [Dfns Platform Overview](https://docs.dfns.co/platform-overview.md): Understand the core concepts, architecture, and benefits of the Dfns API-first wallet infrastructure.
- [Development](https://docs.dfns.co/sdks/flutter/development.md)
- [Examples](https://docs.dfns.co/sdks/flutter/examples.md)
- [Flutter SDK](https://docs.dfns.co/sdks/flutter/index.md)
- [Development](https://docs.dfns.co/sdks/go/development.md)
- [Examples](https://docs.dfns.co/sdks/go/examples.md)
- [Golang SDK](https://docs.dfns.co/sdks/go/index.md)
- [Dfns SDKs](https://docs.dfns.co/sdks/index.md)
- [Development](https://docs.dfns.co/sdks/kotlin/development.md)
- [Examples](https://docs.dfns.co/sdks/kotlin/examples.md)
- [Kotlin SDK](https://docs.dfns.co/sdks/kotlin/index.md)
- [Developing in Python](https://docs.dfns.co/sdks/python/index.md)
- [Development](https://docs.dfns.co/sdks/swift/development.md)
- [Examples](https://docs.dfns.co/sdks/swift/examples.md)
- [Swift SDK](https://docs.dfns.co/sdks/swift/index.md)
- [Development](https://docs.dfns.co/sdks/typescript/development.md)
- [Examples](https://docs.dfns.co/sdks/typescript/examples.md)
- [TypeScript SDK](https://docs.dfns.co/sdks/typescript/index.md)