Terminology
- Permission - a Permission contains a set of Operations, and can be assigned to users (or Service-Accounts). When assigned to a user, a Permission allows him to perform these operations in our API. Each created Permission has a unique name, and unique ID. A Permission can be assigned to one user, or to multiple users, depending on what you need.
- Operation - an operation can be added to a Permission, and grants access to one action in the API. There is a fixed list of operations (see below) that you can include in Permissions. Every API endpoint requires one (or several) operations to use it. Eg. the endpoint Create Wallet is the operation
Wallets:Create. - Assignment - or βPermission Assignmentβ, is the assignment of a given Permission to a given User (or Service Account). A permission can be assigned to a User (aka βgrantedβ), or un-assigned from him (aka βrevokedβ).
Dfns-managed Permissions
When your Dfns organisation is created, some Permissions already exist in it. They are special, some of them are automatically assigned, and some of them are immutable (cannot be updated or archived).ManagedFullAdminAccess
This Permission is automatically assigned to the first User of the Organisation. It includes all existing (and future) operations available in Dfns API. Itβs immutable, so you cannot update it or archive it. You can only assign it or revoke it.
ManagedDefaultEndUserAccess
This unique Permission is assigned by default to any new EndUser in your organisation, and comes with an initial set of operations (which you can update at any time) allowing any EndUser to βdo stuff with the wallet he ownsβ by default. Here are the initial set of operations in this permission:
Regardless of Permissions, by design, an
EndUser can never access any wallet that he doesnβt own. So this permission does not allow your end-users to access any of your org wallets (aka βcustodialβ wallets)List of Permission Operations
Agreements:Acceptance:Create
- Record agreement acceptance (
POST/agreements/{agreementId}/acceptβ doc)
Agreements:Acceptance:Read
- Get latest unaccepted agreement (
GET/agreements/latest-unacceptedβ doc)
Allocations:Create
- Create allocation (
POST/allocationsβ doc)
Allocations:Read
- List allocations (
GET/allocationsβ doc) - List allocation actions (
GET/allocations/{allocationId}/actionsβ doc) - Get allocation (
GET/allocations/{allocationId}β doc)
Allocations:Update
- Create allocation action (
POST/allocations/{allocationId}/actionsβ doc)
Auth:Login:Delegated
- Delegated login (
POST/auth/login/delegatedβ doc)
Auth:Logs:Read
Auth:Pats:Create
- Create personal access token (
POST/auth/patsβ doc)
Auth:Recover:Delegated
- Create delegated recovery challenge (
POST/auth/recover/user/delegatedβ doc)
Auth:Register:Delegated
- Create delegated registration challenge (
POST/auth/registration/delegatedβ doc)
Auth:ServiceAccounts:Activate
- Activate service account (
PUT/auth/service-accounts/{serviceAccountId}/activateβ doc)
Auth:ServiceAccounts:Create
- Create service account (
POST/auth/service-accountsβ doc)
Auth:ServiceAccounts:Deactivate
- Deactivate service account (
PUT/auth/service-accounts/{serviceAccountId}/deactivateβ doc)
Auth:ServiceAccounts:Delete
- Delete service account (
DEL/auth/service-accounts/{serviceAccountId}β doc)
Auth:ServiceAccounts:Read
- List service accounts (
GET/auth/service-accountsβ doc) - Get service account (
GET/auth/service-accounts/{serviceAccountId}β doc)
Auth:ServiceAccounts:Update
- Update service account (
PUT/auth/service-accounts/{serviceAccountId}β doc)
Auth:Users:Activate
- Activate user (
PUT/auth/users/{userId}/activateβ doc)
Auth:Users:Create
- Create user (
POST/auth/usersβ doc)
Auth:Users:Deactivate
- Deactivate user (
PUT/auth/users/{userId}/deactivateβ doc)
Auth:Users:Delete
- Delete user (
DEL/auth/users/{userId}β doc)
Auth:Users:Read
Auth:Users:Update
- Update user (
PUT/auth/users/{userId}β doc)
Exchanges:Create
- Create exchange (
POST/exchangesβ doc)
Exchanges:Delete
- Delete exchange (
DEL/exchanges/{exchangeId}β doc)
Exchanges:Deposits:Create
- Create exchange deposit (
POST/exchanges/{exchangeId}/accounts/{accountId}/depositsβ doc)
Exchanges:Read
- Get exchange (
GET/exchanges/{exchangeId}β doc) - List exchanges (
GET/exchangesβ doc) - List accounts (
GET/exchanges/{exchangeId}/accountsβ doc) - List account assets (
GET/exchanges/{exchangeId}/accounts/{accountId}/assetsβ doc) - List asset withdrawal networks (
GET/exchanges/{exchangeId}/accounts/{accountId}/assets/{asset}/withdrawal-networksβ doc)
Exchanges:Withdrawals:Create
- Create exchange withdrawal (
POST/exchanges/{exchangeId}/accounts/{accountId}/withdrawalsβ doc)
FeeSponsors:Create
- Create fee sponsor (
POST/fee-sponsorsβ doc)
FeeSponsors:Delete
- Delete fee sponsor (
DEL/fee-sponsors/{feeSponsorId}β doc)
FeeSponsors:Read
- List fee sponsors (
GET/fee-sponsorsβ doc) - Get fee sponsor (
GET/fee-sponsors/{feeSponsorId}β doc) - List sponsored fees (
GET/fee-sponsors/{feeSponsorId}/feesβ doc)
FeeSponsors:Update
- Deactivate fee sponsor (
PUT/fee-sponsors/{feeSponsorId}/deactivateβ doc) - Activate fee sponsor (
PUT/fee-sponsors/{feeSponsorId}/activateβ doc)
FeeSponsors:Use
- Sign and broadcast transaction (
POST/wallets/{walletId}/transactionsβ doc) Required iffeeSponsorIdis specified - Transfer asset (
POST/wallets/{walletId}/transfersβ doc) Required iffeeSponsorIdis specified
KeyStores:Read
- List key stores (
GET/key-storesβ doc)
Keys:ChildKeys:Create
- Create key (
POST/keysβ doc) Required ifderiveFromis specified
Keys:Create
- Create key (
POST/keysβ doc) - Create wallet (
POST/walletsβ doc) Required if wallet creation also creates a new Key entity. This is the default behavior
Keys:Delegate
- Create key (
POST/keysβ doc) Required ifdelegateTois specified - Delegate key (
POST/keys/{keyId}/delegateβ doc) - Create wallet (
POST/walletsβ doc) Required ifdelegateTois specified - Delegate wallet (
POST/wallets/{walletId}/delegateβ deprecated)
Keys:Delete
- Delete key (
DEL/keys/{keyId}β doc)
Keys:Derive
- Derive key (
POST/keys/{keyId}/deriveβ doc)
Keys:Export
- Export key (
POST/keys/{keyId}/exportβ doc) - Export wallet (
POST/wallets/{walletId}/exportβ deprecated)
Keys:Import
Keys:Read
Keys:Reuse
- Create wallet (
POST/walletsβ doc) Required ifsigningKey.idis specified. Wallet will reuse an existing key instead of creating a new one
Keys:Signatures:Create
- Generate signature (
POST/keys/{keyId}/signaturesβ doc) - Generate signature (
POST/wallets/{walletId}/signaturesβ deprecated)
Keys:Signatures:Read
- List signatures (
GET/keys/{keyId}/signaturesβ doc) - Get signature (
GET/keys/{keyId}/signatures/{signatureId}β doc) - List signatures (
GET/wallets/{walletId}/signaturesβ deprecated) - Get signature (
GET/wallets/{walletId}/signatures/{signatureId}β deprecated)
Keys:Update
- Update key (
PUT/keys/{keyId}β doc)
Networks:CantonValidators:Create
- Create canton validator (
POST/networks/{network}/validatorsβ doc)
Networks:CantonValidators:Delete
- Delete canton validator (
DEL/networks/{network}/validators/{validatorId}β doc)
Networks:CantonValidators:Read
- Get canton validator (
GET/networks/{network}/validators/{validatorId}β doc) - List canton validators (
GET/networks/{network}/validatorsβ doc)
Networks:CantonValidators:Update
- Update canton validator (
PUT/networks/{network}/validators/{validatorId}β doc)
Permissions:Archive
- Delete permission (
PUT/permissions/{permissionId}/archiveβ doc)
Permissions:Assign
- Assign permission (
POST/permissions/{permissionId}/assignmentsβ doc)
Permissions:Assignments:Read
- List permission assignments (
GET/permissions/{permissionId}/assignmentsβ doc)
Permissions:Create
- Create permission (
POST/permissionsβ doc)
Permissions:Read
Permissions:Revoke
- Revoke permission (
DEL/permissions/{permissionId}/assignments/{assignmentId}β doc)
Permissions:Update
- Update permission (
PUT/permissions/{permissionId}β doc)
Policies:Approvals:Approve
- Create approval decision (
POST/v2/policy-approvals/{approvalId}/decisionsβ doc)
Policies:Approvals:Read
- Get approval (
GET/v2/policy-approvals/{approvalId}β doc) - List approvals (
GET/v2/policy-approvalsβ doc)
Policies:Archive
- Delete policy (
DEL/v2/policies/{policyId}β doc)
Policies:Create
- Create policy (
POST/v2/policiesβ doc)
Policies:Read
Policies:Update
- Update policy (
PUT/v2/policies/{policyId}β doc)
Signers:ListSigners
- List signers (
GET/signersβ doc)
Stakes:Create
- Create stake (
POST/staking/stakesβ doc)
Stakes:Read
- List stakes (
GET/staking/stakesβ doc) - List stake actions (
GET/staking/stakes/{stakeId}/actionsβ doc) - Get stakes (
GET/staking/stakes/{stakeId}β doc) - Get stake rewards (
GET/staking/stakes/{stakeId}/rewardsβ doc)
Stakes:Update
- Create stake action (
POST/staking/stakes/{stakeId}/actionsβ doc)
Swaps:Create
- Create swap (
POST/swapsβ doc)
Swaps:Read
Wallets:Create
- Activate wallet (
POST/wallets/{walletId}/activateβ doc) - Create wallet (
POST/walletsβ doc) - Import wallet (
POST/wallets/importβ doc)
Wallets:Offers:Read
- Get offer (
GET/wallets/{walletId}/offers/{offerId}β doc) - List offers (
GET/wallets/{walletId}/offersβ doc)
Wallets:Offers:Settle
- Accept offer (
PUT/wallets/{walletId}/offers/{offerId}/acceptβ doc) - Reject offer (
PUT/wallets/{walletId}/offers/{offerId}/rejectβ doc)
Wallets:Read
- List wallets (
GET/walletsβ doc) - Get wallet (
GET/wallets/{walletId}β doc) - Get wallet assets (
GET/wallets/{walletId}/assetsβ doc) - Get wallet history (
GET/wallets/{walletId}/historyβ doc) - Get wallet nfts (
GET/wallets/{walletId}/nftsβ doc) - List org wallet history (
GET/wallets/all/historyβ doc)
Wallets:Tags:Add
- Create wallet (
POST/walletsβ doc) Required iftagsare specified - Tag wallet (
PUT/wallets/{walletId}/tagsβ doc)
Wallets:Tags:Delete
- Untag wallet (
DEL/wallets/{walletId}/tagsβ doc)
Wallets:Transactions:Create
- Sign and broadcast transaction (
POST/wallets/{walletId}/transactionsβ doc)
Wallets:Transactions:Read
- List transactions (
GET/wallets/{walletId}/transactionsβ doc) - Get transaction (
GET/wallets/{walletId}/transactions/{transactionId}β doc)
Wallets:Transfers:Create
- Create exchange deposit (
POST/exchanges/{exchangeId}/accounts/{accountId}/depositsβ doc) - Transfer asset (
POST/wallets/{walletId}/transfersβ doc)
Wallets:Transfers:Read
- Get transfer (
GET/wallets/{walletId}/transfers/{transferId}β doc) - List transfers (
GET/wallets/{walletId}/transfersβ doc)
Wallets:Update
- Update wallet (
PUT/wallets/{walletId}β doc)
Webhooks:Create
- Create webhook (
POST/webhooksβ doc)
Webhooks:Delete
- Delete webhook (
DEL/webhooks/{webhookId}β doc)
Webhooks:Events:Read
- Get webhook event (
GET/webhooks/{webhookId}/events/{webhookEventId}β doc) - List webhook events (
GET/webhooks/{webhookId}/eventsβ doc)
Webhooks:Ping
- Ping webhook (
POST/webhooks/{webhookId}/pingβ doc)
Webhooks:Read
Webhooks:Update
- Update webhook (
PUT/webhooks/{webhookId}β doc)
