Roles enable you to control access to the platform on a granular basis (following the principle of least privilege). As an example, if you have an employee who needs to initiate payments, but shouldnβt be able to manipulate policies, you can create a role for that. Start by creating a role, selecting which permissions to include, and assigning it to a user.Documentation Index
Fetch the complete documentation index at: https://docs.dfns.co/llms.txt
Use this file to discover all available pages before exploring further.
Terminology
- Role: a role is a named collection of permissions that can be assigned to users or service accounts. When assigned, a role allows the user to perform those actions in the platform. Each role has a unique name and ID. A role can be assigned to one or multiple users, depending on what you need.
- Permission: a permission grants access to one action in the API (e.g.
Wallets:Create). There is a fixed list of permissions (see below) that you can include in roles. Every API endpoint requires one or more permissions to use it. - Assignment: the act of granting a role to a user or service account. A role can be assigned (aka βgrantedβ) or unassigned (aka βrevokedβ).
Dfns-managed roles
When your Dfns organization is created, some roles 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 role is automatically assigned to the first user of the organization. It includes all existing (and future) permissions available in the Dfns API. Itβs immutable, so you cannot update it or archive it. You can only assign it or revoke it.
ManagedDefaultEndUserAccess
This role is assigned by default to any new EndUser in your organization, and comes with an initial set of permissions (which you can update at any time) allowing any EndUser to use the wallet delegated to them by default.
EndUser can only access wallets delegated to them. This role does not allow end-users to access your organizationβs wallets. See Wallet Visibility below.User types
Dfns supports three types of identities, each designed for different use cases:| Type | Description | Typical use |
|---|---|---|
CustomerEmployee | Your team members | Dashboard access, wallet management |
EndUser | Your end customers | Delegated wallets (user holds signing authority) |
| Service Account | Machine identity | Automation, server-to-server API calls |
Comparison matrix
| Capability | CustomerEmployee | EndUser | Service Account |
|---|---|---|---|
| Wallet visibility | All org wallets | Only delegated wallets | All org wallets |
| Dashboard access | Yes | No | No |
| Policy coverage | Yes | No (bypassed) | Yes |
| Can hold credentials | Yes (passkeys, keys) | Yes (passkeys, keys) | Yes (keys only) |
| Created via | Dashboard or API | Delegated registration | Service Account API |
Wallet visibility
The wallets a user can see depends on their user type:| User Type | Wallet Visibility |
|---|---|
CustomerEmployee | All wallets in the organization |
EndUser | Only wallets delegated to them |
| Service Account | All wallets in the organization |
Wallets:Read, they can see all org-managed wallets. This enables shared visibility across your team for operational purposes.
EndUser accounts are for your end customers using delegated wallets. Each EndUser can only access wallets that have been delegated to them - they cannot see other usersβ wallets or your organizationβs wallets. This isolation is enforced at the platform level, regardless of permissions.
Service Accounts are machine identities for server-to-server API calls. They can access all organization wallets (when granted appropriate permissions) and are commonly used for automation workflows.
Role assignment
To assign roles to users, you need thePermissions:Assign permission. You can also create policies on Permissions:Assign activity to require approval for role changes.
List of permissions
Agreements
Acceptance:Create: Allows accepting legal agreements on behalf of the organization
Acceptance:Create: Allows accepting legal agreements on behalf of the organization
Agreements:Acceptance:Create- Record agreement acceptance ( β doc)
Acceptance:Read: Allows viewing agreement acceptance records
Acceptance:Read: Allows viewing agreement acceptance records
Agreements:Acceptance:Read- Get latest unaccepted agreement ( β doc)
Allocations
Create: Allows creating allocations
Create: Allows creating allocations
Allocations:Create- Create allocation ( β doc)
Read: Allows viewing allocations
Read: Allows viewing allocations
Update: Allows updating allocations
Update: Allows updating allocations
Allocations:Update- Create allocation action ( β doc)
Analytics
Read: Allows viewing analytics and usage metrics
Read: Allows viewing analytics and usage metrics
Authentication
Login:Delegated: Allows logging in users via delegated authentication
Login:Delegated: Allows logging in users via delegated authentication
Auth:Login:Delegated- Delegated login ( β doc)
Logs:Read: Allows reading authentication and access audit logs
Logs:Read: Allows reading authentication and access audit logs
Pats:Create: Allows creating Personal Access Tokens (PATs)
Pats:Create: Allows creating Personal Access Tokens (PATs)
Auth:Pats:Create- Create personal access token ( β doc)
Recover:Delegated: Allows initiating account recovery via delegated authentication
Recover:Delegated: Allows initiating account recovery via delegated authentication
Auth:Recover:Delegated- Create delegated recovery challenge ( β doc)
Register:Delegated: Allows registering users via delegated authentication
Register:Delegated: Allows registering users via delegated authentication
Auth:Register:Delegated- Create delegated registration challenge ( β doc)
ServiceAccounts:Activate: Allows activating a service account
ServiceAccounts:Activate: Allows activating a service account
Auth:ServiceAccounts:Activate- Activate service account ( β doc)
ServiceAccounts:Create: Allows creating service accounts for programmatic access
ServiceAccounts:Create: Allows creating service accounts for programmatic access
Auth:ServiceAccounts:Create- Create service account ( β doc)
ServiceAccounts:Deactivate: Allows deactivating a service account
ServiceAccounts:Deactivate: Allows deactivating a service account
Auth:ServiceAccounts:Deactivate- Deactivate service account ( β doc)
ServiceAccounts:Delete: Allows deleting a service account
ServiceAccounts:Delete: Allows deleting a service account
Auth:ServiceAccounts:Delete- Delete service account ( β doc)
ServiceAccounts:Read: Allows viewing service accounts and their configuration
ServiceAccounts:Read: Allows viewing service accounts and their configuration
ServiceAccounts:Update: Allows updating service account details
ServiceAccounts:Update: Allows updating service account details
Auth:ServiceAccounts:Update- Update service account ( β doc)
Users:Activate: Allows activating a user account
Users:Activate: Allows activating a user account
Auth:Users:Activate- Activate user ( β doc)
Users:Create: Allows creating new user accounts within the organization
Users:Create: Allows creating new user accounts within the organization
Auth:Users:Create- Create user ( β doc)
Users:Deactivate: Allows deactivating a user account
Users:Deactivate: Allows deactivating a user account
Auth:Users:Deactivate- Deactivate user ( β doc)
Users:Delete: Allows permanently deleting a user account
Users:Delete: Allows permanently deleting a user account
Auth:Users:Delete- Delete user ( β doc)
Users:Read: Allows viewing user profiles and user-related metadata
Users:Read: Allows viewing user profiles and user-related metadata
Users:Update: Allows updating user information and settings
Users:Update: Allows updating user information and settings
Auth:Users:Update- Update user ( β doc)
Billing
Read: Allows viewing billing and usage information
Read: Allows viewing billing and usage information
Write: Allows managing billing configuration
Write: Allows managing billing configuration
Events
Read: Allows reading system and product events
Read: Allows reading system and product events
Exchanges
Create: Allows creating exchange integrations
Create: Allows creating exchange integrations
Exchanges:Create- Create exchange ( β doc)
Delete: Allows removing exchange integrations
Delete: Allows removing exchange integrations
Exchanges:Delete- Delete exchange ( β doc)
Deposits:Create: Allows initiating deposits from exchanges
Deposits:Create: Allows initiating deposits from exchanges
Exchanges:Deposits:Create- Create exchange deposit ( β doc)
Read: Allows viewing configured exchanges
Read: Allows viewing configured exchanges
Withdrawals:Create: Allows initiating withdrawals to exchanges
Withdrawals:Create: Allows initiating withdrawals to exchanges
Exchanges:Withdrawals:Create- Create exchange withdrawal ( β doc)
Fee Sponsors
Create: Allows creating fee sponsor configurations
Create: Allows creating fee sponsor configurations
FeeSponsors:Create- Create fee sponsor ( β doc)
Delete: Allows deleting fee sponsors
Delete: Allows deleting fee sponsors
FeeSponsors:Delete- Delete fee sponsor ( β doc)
Read: Allows viewing fee sponsor configurations
Read: Allows viewing fee sponsor configurations
Update: Allows updating fee sponsor settings
Update: Allows updating fee sponsor settings
Key Stores
Read: Allows viewing key store configurations
Read: Allows viewing key store configurations
KeyStores:Read- List key stores ( β doc)
Keys
ChildKeys:Create: Allows creating child keys
ChildKeys:Create: Allows creating child keys
Keys:ChildKeys:Create- Create key ( β doc) Required if
deriveFromis specified
Create: Allows creating cryptographic keys
Create: Allows creating cryptographic keys
Keys:Create- Create key ( β doc)
- Create wallet ( β doc) Required if wallet creation also creates a new Key entity. This is the default behavior
Delegate: Allows delegating key usage
Delegate: Allows delegating key usage
Delete: Allows deleting keys
Delete: Allows deleting keys
Keys:Delete- Delete key ( β doc)
Derive: Allows deriving new keys from a parent key
Derive: Allows deriving new keys from a parent key
Keys:Derive- Derive key ( β doc)
Export: Allows exporting keys (if permitted by policy)
Export: Allows exporting keys (if permitted by policy)
Keys:Export- Export key ( β doc)
Import: Allows importing externally generated keys
Import: Allows importing externally generated keys
Reuse: Allows reusing existing keys
Reuse: Allows reusing existing keys
Keys:Reuse- Create wallet ( β doc) Required if
signingKey.idis specified. Wallet will reuse an existing key instead of creating a new one
Signatures:Create: Allows generating digital signatures
Signatures:Create: Allows generating digital signatures
Keys:Signatures:Create- Generate signature ( β doc)
Signatures:Read: Allows viewing signature requests and results
Signatures:Read: Allows viewing signature requests and results
Update: Allows updating key settings
Update: Allows updating key settings
Keys:Update- Update key ( β doc)
Networks
CantonValidators:Create: Allows creating Canton validator configurations
CantonValidators:Create: Allows creating Canton validator configurations
Networks:CantonValidators:Create- Create canton validator ( β doc)
CantonValidators:Delete: Allows deleting Canton validators
CantonValidators:Delete: Allows deleting Canton validators
Networks:CantonValidators:Delete- Delete canton validator ( β doc)
CantonValidators:Read: Allows viewing Canton validators
CantonValidators:Read: Allows viewing Canton validators
CantonValidators:Update: Allows updating Canton validators
CantonValidators:Update: Allows updating Canton validators
Networks:CantonValidators:Update- Update canton validator ( β doc)
Organization
Read: Allows viewing organization details
Read: Allows viewing organization details
Settings:Read: Allows viewing organization settings
Settings:Read: Allows viewing organization settings
Settings:Update: Allows updating organization settings
Settings:Update: Allows updating organization settings
Update: Allows updating organization information
Update: Allows updating organization information
Payouts
Create: Allows creating a payout and payout quotes
Create: Allows creating a payout and payout quotes
Read: Allows viewing the status of payouts
Read: Allows viewing the status of payouts
Write: Allows performing an action on a payout
Write: Allows performing an action on a payout
Payouts:Write- Create payout action ( β doc)
Permissions
Archive: Allows archiving permissions or roles
Archive: Allows archiving permissions or roles
Permissions:Archive- Archive permission ( β doc)
Assign: Allows assigning permissions to users or service accounts
Assign: Allows assigning permissions to users or service accounts
Permissions:Assign- Assign permission ( β doc)
Assignments:Read: Allows viewing permission assignments
Assignments:Read: Allows viewing permission assignments
Permissions:Assignments:Read- List permission assignments ( β doc)
Create: Allows creating new permissions or roles
Create: Allows creating new permissions or roles
Permissions:Create- Create permission ( β doc)
Read: Allows viewing permissions and roles
Read: Allows viewing permissions and roles
Revoke: Allows revoking assigned permissions
Revoke: Allows revoking assigned permissions
Permissions:Revoke- Revoke permission ( β doc)
Update: Allows updating permissions or roles
Update: Allows updating permissions or roles
Permissions:Update- Update permission ( β doc)
Policies
Approvals:Approve: Allows approving or rejecting policies
Approvals:Approve: Allows approving or rejecting policies
Policies:Approvals:Approve- Create approval decision ( β doc)
Approvals:Read: Allows viewing pending and historical policy approvals
Approvals:Read: Allows viewing pending and historical policy approvals
Archive: Allows archiving policies
Archive: Allows archiving policies
Policies:Archive- Delete policy ( β doc)
Create: Allows creating policies
Create: Allows creating policies
Policies:Create- Create policy ( β doc)
Read: Allows viewing policies
Read: Allows viewing policies
Update: Allows updating policies
Update: Allows updating policies
Policies:Update- Update policy ( β doc)
Registry
Addresses:Create: Allows creating new addresses in the address registry
Addresses:Create: Allows creating new addresses in the address registry
Addresses:Delete: Allows removing addresses from the registry
Addresses:Delete: Allows removing addresses from the registry
Addresses:Read: Allows viewing registered addresses and their metadata
Addresses:Read: Allows viewing registered addresses and their metadata
Addresses:Update: Allows updating metadata or aliases for registered addresses
Addresses:Update: Allows updating metadata or aliases for registered addresses
ContractSchemas:Create: Allows registering new smart contract schemas (ABIs)
ContractSchemas:Create: Allows registering new smart contract schemas (ABIs)
ContractSchemas:Delete: Allows removing contract schemas from the registry
ContractSchemas:Delete: Allows removing contract schemas from the registry
ContractSchemas:Read: Allows viewing registered contract schemas
ContractSchemas:Read: Allows viewing registered contract schemas
Signers
ListSigners: Allows listing available signing entities
ListSigners: Allows listing available signing entities
Signers:ListSigners- List signers ( β doc)
Staking
Create: Allows creating staking operations
Create: Allows creating staking operations
Stakes:Create- Create stake ( β doc)
Read: Allows viewing staking positions
Read: Allows viewing staking positions
Update: Allows updating staking configurations
Update: Allows updating staking configurations
Stakes:Update- Create stake action ( β doc)
Swaps
Create: Allows creating asset swap operations
Create: Allows creating asset swap operations
Swaps:Create- Create swap ( β doc)
Wallets
Create: Allows creating wallets
Create: Allows creating wallets
Offers:Read: Allows viewing settlement offers
Offers:Read: Allows viewing settlement offers
Offers:Settle: Allows settling offers
Offers:Settle: Allows settling offers
Read: Allows viewing wallet details
Read: Allows viewing wallet details
Tags:Add: Allows adding tags to wallets
Tags:Add: Allows adding tags to wallets
Tags:Delete: Allows removing wallet tags
Tags:Delete: Allows removing wallet tags
Transactions:Abort
Transactions:Abort
Wallets:Transactions:Abort- Abort transaction ( β doc)
Transactions:Create: Allows creating transactions
Transactions:Create: Allows creating transactions
Transactions:Read: Allows viewing wallet transactions
Transactions:Read: Allows viewing wallet transactions
Transfers:Abort
Transfers:Abort
Wallets:Transfers:Abort- Abort transfer ( β doc)
Transfers:Create: Allows creating wallet transfers
Transfers:Create: Allows creating wallet transfers
Transfers:Read: Allows viewing wallet transfers
Transfers:Read: Allows viewing wallet transfers
Update: Allows updating wallet configuration
Update: Allows updating wallet configuration
Wallets:Update- Update wallet ( β doc)
Webhooks
Create: Allows creating webhooks
Create: Allows creating webhooks
Webhooks:Create- Create webhook ( β doc)
Delete: Allows deleting webhooks
Delete: Allows deleting webhooks
Webhooks:Delete- Delete webhook ( β doc)
Events:Read: Allows viewing webhook event history
Events:Read: Allows viewing webhook event history
Ping: Allows testing webhook endpoints
Ping: Allows testing webhook endpoints
Webhooks:Ping- Ping webhook ( β doc)
Read: Allows viewing webhooks
Read: Allows viewing webhooks
Update: Allows updating webhook configuration
Update: Allows updating webhook configuration
Webhooks:Update- Update webhook ( β doc)
