Dfns API Documentation
  • 👋Welcome
  • Getting Started
    • Onboarding to Dfns
    • Dfns Environments
    • Core API Objects
    • Supported Assets
    • Postman
    • Dfns SDKs
    • Dashboard Videos
  • API Docs
    • Introduction
    • Authentication
      • Delegated Authentication
        • Delegated Registration
        • Delegated Registration Restart
        • Delegated Login
      • User Action Signing
        • Create User Action Signature Challenge
        • Create User Action Signature
      • Registration
        • Create User Registration Challenge
        • Complete User Registration
        • Complete End User Registration with Wallets
        • Resend Registration Code
        • Social Registration
      • Login
        • Create User Login Challenge
        • Complete User Login
        • Social Login
        • Logout
        • Send Login Code
      • Users
        • List Users
        • Create User
        • Get User
        • Activate User
        • Deactivate User
        • Archive User
      • Service Accounts
        • List Service Accounts
        • Create Service Account
        • Get Service Account
        • Update Service Account
        • Activate Service Account
        • Deactivate Service Account
        • Archive Service Account
      • Applications
        • List Applications
        • Create Application
        • Create Server-Signed Application
        • Get Application
        • Update Application
        • Activate Application
        • Deactivate Application
        • Archive Application
      • Personal Access Tokens
        • List Personal Access Tokens
        • Create Personal Access Token
        • Get Personal Access Token
        • Update Personal Access Token
        • Activate Personal Access Token
        • Deactivate Personal Access Token
        • Archive Personal Access Token
      • Credentials
        • Credentials Overview
        • API Reference
          • Create Credential Code
          • Create Credential Challenge
          • Create Credential Challenge With Code
          • Create Credential
          • Create Credential With Code
          • Deactivate Credential
          • Activate Credential
          • List Credentials
      • Recovery
        • Send Recovery Code Email
        • Create Recovery Challenge
        • Create Delegated Recovery Challenge
        • Recover User
    • Wallets
      • Create Wallet
      • Update Wallet
      • Delete Wallet
      • [deprecated] Delegate Wallet
      • Get Wallet by ID
      • List Wallets
      • Get Wallet Assets
      • Get Wallet NFTs
      • Get Wallet History
      • Tag Wallet
      • Untag Wallet
      • Transfer Asset
      • Get Transfer Request by ID
      • List Transfer Requests
      • Sign and Broadcast Transaction
        • Algorand
        • Aptos
        • Bitcoin / Litecoin
        • Canton
        • Cardano
        • EVM
        • Solana
        • Stellar
        • Tezos
        • TRON
        • XRP Ledger (Ripple)
      • Get Transaction Request by ID
      • List Transaction Requests
      • [deprecated] Generate Signature
      • Advanced Wallet APIs
        • Import Wallet
        • [deprecated] Export Wallet
    • Fee Sponsors
      • Create Fee Sponsor
      • Get Fee Sponsor
      • List Fee Sponsors
      • Activate Fee Sponsor
      • Deactivate Fee Sponsor
      • Delete Fee Sponsor
      • List Sponsored Fees
    • Keys
      • Create Key
      • Update Key
      • Delete Key
      • Delegate Key
      • Get Key by ID
      • List Keys
      • Generate Signature
        • Algorand
        • Aptos
        • Bitcoin / Litecoin
        • Cardano
        • Cosmos Appchain
        • EVM
        • Solana
        • Stellar
        • Substrate (Polkadot)
        • Tezos
        • TON
        • TRON
        • XRP Ledger (Ripple)
      • Get Signature Request by ID
      • List Signature Requests
      • Advanced Key APIs
        • Import Key
        • Export Key
        • Deterministic Derivation
    • Networks
      • Estimate fees
      • Read Contract
      • Validators
        • Create Validator
        • List Validators
    • Policy Engine
      • Policies Overview
      • API Reference
        • Create Policy
        • Get Policy
        • List Policies
        • Update Policy
        • Archive Policy
        • Get Approval
        • List Approvals
        • Create Approval Decision
    • Permissions
      • Permissions Overview
      • API Reference
        • Get Permission
        • List Permissions
        • Create Permission
        • Update Permission
        • Archive Permission
        • Assign Permission
        • Revoke Permission
        • List Permission Assignments
    • Webhooks
      • Create Webhook
      • Get Webhook
      • List Webhooks
      • Update Webhook
      • Delete Webhook
      • Ping Webhook
      • Get Webhook Event
      • List Webhook Events
    • Dfns Change Log
    • API Errors
  • Integrations
    • Exchanges
      • Kraken
      • Binance
      • Coinbase Prime
      • API Reference
        • Create Exchange
        • List Exchanges
        • Get Exchange
        • Delete Exchange
        • List Exchange Accounts
        • List Exchange Account Assets
        • Create Exchange Deposit
        • Create Exchange Withdrawal
    • AML / KYT
      • Chainalysis
    • Staking
      • API Reference
        • Create Stake
        • Create Stake Action
        • List Stakes
        • List Stake Actions
        • get Rewards
    • Fiat On/Off-Ramps
    • Account Abstraction on EVMs
  • Advanced Topics
    • Authentication
      • API Authentication
      • Request Headers
      • Credentials
        • Generate a Key Pair
        • User Credentials
        • Access Token Credentials
        • Storing WebAuthn Credentials in Password Managers
      • Request Signing
      • API objects
    • Delegated Signing
    • API Idempotency
    • FAQ
  • Guides
    • Passkey Settings - Migration guide
    • Keys & Multichain - Migration Guide
    • Applications - Depreaction
Powered by GitBook
On this page
  • TLDR;
  • Context
  • Deprecating Applications
  1. Guides

Applications - Depreaction

Last updated 4 days ago

TLDR;

"Applications" was a first-level entity in Dfns API. It's now getting deprecated and removed entirely from the API. This change won't break your existing Dfns integration. Moving forward, you can cleanup some — now unnecessary — things from your code.

Context

Historically, "Applications" were built to serve two main purposes:

  • Used as a "passkey setup" layer. Whitelisting a given passkey domain. On any given frontend application leveraging passkeys (web app / mobile app), by design, passkeys created there will be forever tied to the application domain. To use Dfns API, the right Dfns Application (with matching domain) needed to be used, otherwise a 403 Forbidden error would be raised.

  • Used as an additional permission layer. Which would allow segregating different Applications with different permissions, through which users would not be able to perform some operation. For example, if a user was granted the Wallets:Create permission, but was using Dfns API using an Application which was not granted the Wallets:Create permission, a 403 Forbidden error would be raised. This additional permission layer was only a real security feature, if used in conjunction with a given kind of Application: "Sever-side Application" (also baptised "Server-Signed Applications"). Otherwise, it was more of a way to segregate things, but was not strictly speaking a security feature, since we did not advertise the App ID as a secret.

Since Applications existed in our API, the feedback we had from our partners is they have been creating more confusion and friction than anything else.

A first step into solving that was to separate the configuration of whitelisted Passkey domains into its own thing (cf ).

At this point, the only function left to the Application was the second point above (the addition permission layer), which as mentioned, was only a true security feature in the context of "Server-Side Applications", which no-one was really using (no-one really asked for this, and setting this up added even more friction).

Deprecating Applications

In the end, the consensus within Dfns was to keep pushing in the same direction that was initiated with the effort: deprecate Applications entirely.

What that changes for you:

  • x-dfns-appid header is not required in Dfns API request anymore. You can still pass it, but it won't have any effect.

  • The permission check happening on every request is not the intersection App Permission ∩ User Permission ∩ Token Permission anymore, but it's the intersection of User Permission ∩ Token Permission .

  • Several headers required in API requests, only used in the context of Server Signed Apps, are deprecated as well: x-dfns-nonce, x-dfns-apisignature, x-dfns-appsecret

  • Newer versions of Dfns SDK will remove the requirement of passing appId in the DfnsApiClient instantiation.

For everyone currently using Dfns API, this deprecation will not break your code in production, you don't have any immediate action to take

Thank you all for being on our side in this journey. We always strive to make our product better, your feedback is helping us do that

👍
🙏
Passkey Settings - Migration Guide
Passkey Settings Migration