Command reference
All DALP CLI commands grouped by function, with authentication scope, global options, output formats, and exit codes.
The DALP CLI gives you terminal access to assets, identities, compliance, monitoring, webhooks, and automation. Find the right command group in the tables below, then run dalp <group> --help for full option details.
Most commands require stored credentials. You can run login, logout, config, mcp, and skills before logging in. For setup, see Getting started.
Authentication and config
Commands that do not require authentication:
| Command | Description |
|---|---|
dalp login [--url URL] | Authenticate via device authorization flow. |
dalp logout | Revoke API key and clear stored credentials. |
dalp config get [key] | View configuration. |
dalp config set <key> <value> | Update configuration. |
dalp mcp add | Register the CLI as an MCP server for local agents. |
dalp skills add | Install generated DALP skill files for agents. |
dalp skills list | List installed generated skill files. |
Commands that require authentication:
| Command | Description |
|---|---|
dalp whoami | Display current user, wallet, and organisation |
Auth management
Use dalp auth to manage sessions, API keys, and the organizations your account can access. Organisation member commands operate on the active organisation, so switch context before inviting or removing members.
| Command | Description |
|---|---|
dalp auth session-list | List active sessions for the current user. |
dalp auth session-revoke <sessionId> | Revoke one session by session token. |
dalp auth session-revoke-all | Revoke all other sessions while keeping the current one. |
dalp auth api-key-list | List API keys for the current user. |
dalp auth api-key-create <name> | Create an API key with a display name. |
dalp auth api-key-delete <keyId> | Delete an API key by ID. |
dalp auth org-list | List organizations the current user belongs to. |
dalp auth org-switch <organizationId> | Switch the active organization. |
dalp auth org-create <name> <slug> | Create an organisation. |
dalp auth org-invite <email> [role] | Invite a member to the active organisation by email. |
dalp auth org-add-member <userId> [--role <owner|member>] | Add an existing user directly to the active organisation. |
dalp auth org-remove-member <memberIdOrEmail> | Remove a member from the active organisation by ID or email. |
## Sessions
dalp auth session-list
dalp auth session-revoke <sessionId>
dalp auth session-revoke-all
## API keys
dalp auth api-key-list
dalp auth api-key-create "Treasury automation"
dalp auth api-key-delete <keyId>
## Organizations
dalp auth org-list
dalp auth org-switch <organizationId>
dalp auth org-create <name> <slug>
dalp auth org-invite [email protected] member
dalp auth org-add-member <userId> --role member
dalp auth org-remove-member [email protected]Use org-invite to invite someone by email; the recipient accepts before joining. Use org-add-member to add a user who already has an account, directly by user ID. Both commands accept owner or member as the role, and default to member when the role is omitted. Assigning owner requires you to be an owner of the target organisation.
org-add-member works only after the organisation has finished onboarding. Complete onboarding first, then add existing users directly. Until setup is complete, use org-invite to bring people in by email.
If an auth command fails, verify the active login and the current organisation context before retrying.
Settings and theme management
Use these commands to inspect platform configuration and manage the active Console theme:
- Upsert commands require
setting: upsert; delete commands requiresetting: remove. - Theme preview and logo-upload require
setting: upsert. - Selecting the global theme requires
setting: set-global-theme.
## Platform settings
dalp settings list
dalp settings read BASE_CURRENCY
dalp settings upsert --key BASE_CURRENCY --value EUR
dalp settings delete BASE_CURRENCY
dalp settings public-config
## Organization theme
dalp settings theme-get
## Preview a partial theme diff against the current theme version.
dalp settings theme-preview --baseVersion 3 \
--diff '{"cssVars":{"light":{"sm-accent":"#0052cc"}}}'
## Persist the theme change after reviewing the preview.
dalp settings theme-update --baseVersion 3 \
--diff '{"cssVars":{"light":{"sm-accent":"#0052cc"}}}'
## Theme assets
dalp settings theme-upload-logo --mode light --fileName logo.png \
--contentType image/png --fileSize 204800
dalp settings theme-proxy-upload-logo --mode favicon --fileName favicon.ico \
--contentType image/x-icon --fileData <base64>
## Global theme selection
dalp settings global-theme-get
dalp settings global-theme-set --orgId <organizationId>Both dalp settings theme-upload-logo and dalp settings theme-proxy-upload-logo
accept image/jpeg, image/png, image/svg+xml, image/webp, and image/x-icon.
Both apply to the active organisation, so switch to the target organisation before
uploading branding assets. The preview command accepts partial theme diffs under
supported keys such as cssVars.light, cssVars.dark, logo, images, and
fonts; use theme-update with the same diff to persist reviewed changes.
theme-upload-logo returns storage-specific headers and a presigned PUT URL for the
client upload. theme-proxy-upload-logo sends base64 file data through the Platform API
and enforces a 5 MiB file-size limit.
Custody provider management
Use dalp custody to operate the custody provider behind your organisation's signing.
The provider an organisation locks at onboarding stays fixed, so these commands read,
validate, and rotate the credentials for that locked provider. They never switch
custodians and never print secret material: a read returns a masked view, and a rotation
replaces credentials without echoing them back.
getis open to any member of the active organisation.test-credentialsis open to any member. When an owner or platform administrator runs it, the probe also records the validation outcome on the custody record.rotate-credentialsrequires the organisation owner role. A platform administrator may also rotate.admin-getanddestroy-credentialsare cross-tenant platform-administrator operations addressed by organisation ID.
## Read the active organisation's masked custody configuration
dalp custody get
## Probe candidate credentials without storing them
dalp custody test-credentials --provider dfns \
--credentials '{"auth":{"authToken":"...","credId":"...","privateKey":"..."}}' \
--workspaceId <dfnsOrgId>
## Rotate to new credentials for the locked provider
dalp custody rotate-credentials \
--credentials '{"auth":{"apiKey":"...","privateKey":"..."}}' \
--vaultId <fireblocksVaultId>
## Platform administrator: read any organisation's masked configuration
dalp custody admin-get --organizationId <organizationId>
## Platform administrator: destroy credential slots for an offboarded organisation
dalp custody destroy-credentials --organizationId <organizationId>Pass --credentials as a JSON object that carries authentication material only; the CLI
rejects a value that is not an object, and the platform rejects endpoint or mode fields
because those are platform-curated. The supported providers are local, dfns,
fireblocks, luna, and ripple, and each provider expects its own credential shape.
Use --workspaceId to pin a provider workspace identity (for example a DFNS organisation
ID or a Ripple domain ID) and --vaultId to pin a Fireblocks vault scope. Both are
non-secret. For Ripple, --workspaceId is required when the record has no existing
workspace pin, because the platform needs a pinned domain identity to attribute inbound
webhooks to the owning organisation. Omitting it for a pinless Ripple record returns a
CUSTODY_CREDENTIALS_INVALID error with reason missing-workspace-pin. destroy-credentials is irreversible and meant for offboarding:
it deletes every credential slot and leaves the custody record as a destroyed tombstone.
For request and response shapes, the masked-read fields, and the probe result, see the
Custody credentials API. For how
an organisation selects a provider and what the onboarding lock means, see
Custody providers.
Account state
Read indexed native-balance state for one account:
dalp account native-balance read <chainId> <address>Use this for operations checks that need the latest indexed gas balance for an operator wallet, smart account, system contract, or asset contract. For list and history reads, use the account native balance API.
Participant operations
Use dalp participants to search the participant directory, inspect on-chain activity, check global compliance eligibility, classify wallet addresses, and read a participant's transaction smart wallet. These commands run the same Platform API reads as the Console participant views, so a script and the interface return the same records.
What a participant sees depends on the caller's role. An operator with participant-search permission lists every deployed participant kind: person, organisation, claim issuer, asset, and add-on. A member without it sees only asset and add-on entries, and address-kinds returns an empty map. Activity and smart-wallet reads always let a participant read their own record.
## Search participant entries for an address purpose (transfer, identity, or participant)
dalp participants list --purpose transfer
dalp participants list --purpose participant --query "treasury"
## Filter the search to participants registered for a token
dalp participants list --purpose transfer \
--eligible-token-address 0x...list resolves entries for one address purpose. Use transfer for transfer counterparties, identity for identity-registry subjects, or participant for the directory view. Pass --query to search across entries. Add --eligible-token-address to keep only participants whose identity is registered for that token. This checks registry presence, not full action-specific compliance, so a registered participant may still fail a later mint or burn operation. For the response fields and pagination, see the participant directory API.
## List blockchain events involving any wallet of a participant
dalp participants activity-list <participantId>
## Activity statistics across all wallets owned by a participant
dalp participants activity-stats <participantId> \
--interval hour --from 2026-01-01 --to 2026-01-31activity-list and activity-stats cover every wallet a participant owns, counting both direct externally owned account events and smart-wallet operations. activity-stats returns a time series bucketed by --interval (hour or day) over the --from and --to range. Set --isPreset true only when the range matches one of the Console preset windows, because that changes server-side bucketing; leave it off for custom ranges. For the activity record shape, see the participant activity API.
## Evaluate a participant's global compliance eligibility verdict
dalp participants compliance-eligibility <participantId>
## Bypass the indexer and evaluate live on-chain
dalp participants compliance-eligibility <participantId> --livecompliance-eligibility returns the participant's global eligibility verdict from indexed state. Add --live to recheck on-chain instead: the live path reads cold from the node and takes several seconds, so reserve it for confirmation rather than bulk checks. For the verdict structure, see the participant compliance eligibility API.
## Classify org-participant wallet addresses as EOA or smart wallet
dalp participants address-kinds
## Read a participant's transaction smart wallet when account abstraction is enabled
dalp participants smart-wallet-read <participantId>address-kinds returns a map of organisation-participant wallet addresses classified as externally owned accounts or smart wallets. smart-wallet-read returns the participant's transaction smart-wallet address, its signing address, and whether the wallet is deployed on-chain. The smart-wallet read returns nothing when account abstraction is disabled for the organisation or when the participant has no signing account yet. To operate a smart wallet directly, use the smart wallet management commands below.
Smart wallet management
Use dalp smart-wallets to inspect smart accounts, create wallets, manage
validator modules, update signer sets, and co-sign multisig approvals. The CLI
submits the same platform API operations available to your other integrations.
Read operations
dalp smart-wallets list
dalp smart-wallets list --filter ownerAddress=0x... --sort -createdAt
dalp smart-wallets read 0x...
dalp smart-wallets gas-status 0x... --systemAddress 0x...
dalp smart-wallets custody-gas-balance
dalp smart-wallets signers 0x...
dalp smart-wallets approvals 0x...
dalp smart-wallets read-approval 0x... 0x<userOpHash>gas-status takes a wallet address and reports paymaster sponsorship and
zero-gas readiness for that wallet's system. custody-gas-balance takes no
address: it reads the native gas-token balance of the authenticated user's
managed-custody wallet straight from the custody provider and returns the
amount, token symbol, and decimals. It reports a result only when the active
signer is DFNS managed custody; for any other signer it returns nothing.
Create and configure
## Create with the default validator
dalp smart-wallets create --description "Treasury operations"
## Create a weighted multisig wallet
dalp smart-wallets create --description "Treasury multisig" \
--multisig '{"signers":[{"address":"0x...","weight":"1"}],"threshold":"1"}'
## Update metadata and modules
dalp smart-wallets update 0x... --description "Treasury operations"
dalp smart-wallets install-module 0x... --moduleAddress 0x... --initData 0x
dalp smart-wallets uninstall-module 0x... 0x...
## Manage multisig signers
dalp smart-wallets add-signer 0x... --signer 0x... --weight "1"
dalp smart-wallets remove-signer 0x... 0x...
dalp smart-wallets set-threshold 0x... --threshold "2"Weights and thresholds are decimal integer strings so uint64 values are not
rounded by JavaScript number handling. The API enforces signer authorization and
tenant scope. Server validation also checks thresholds and userOpHash.
Multisig approvals
dalp smart-wallets create-approval 0x... \
--userOpHash 0x... \
--callData 0x... \
--threshold "2" \
--description "Approve treasury operation"
dalp smart-wallets sign-approval 0x... 0x<userOpHash>
dalp smart-wallets read-approval 0x... 0x<userOpHash>create-approval records the initiator signature server-side. sign-approval
adds the authenticated co-signer signature and the platform submits the
UserOperation when the collected signer weight reaches the wallet threshold.
Token management
Read operations
Use token read commands to inspect records, holders, allowances, attached features, and indexed activity before running mutations. Commands that read one token take the token contract address. Allowance reads also require the owner and spender wallet addresses.
## Token records
dalp tokens list
dalp tokens list --query <query>
dalp tokens read <address>
## Holder and allowance state
dalp tokens holder --address 0x... --holder 0x...
dalp tokens holders <address>
dalp tokens allowance --address 0x... --owner 0x... --spender 0x...
## Activity and configuration views
dalp tokens actions <address>
dalp tokens events <address>
dalp tokens holdings <address>
dalp tokens compliance <address>
dalp tokens features <address>
dalp tokens metadata <address>Create and configure
Use the role-specific guide before running an exceptional servicing command. The CLI submits the mutation, but the approval, custody policy, and incident runbook remain outside the command itself.
See Forced transfers, Pause or unpause an asset, and Token lifecycle for the operating context around these controls.
## Create a token (pass type-specific fields as JSON)
dalp tokens create --type equity --name "Acme Shares" --symbol ACME \
--decimals 18 --countryCode 840 --json '{"maxSupply": "1000000"}'
## Supply management
dalp tokens mint --address 0x... --to 0x... --amount 1000
dalp tokens burn --address 0x... --from 0x... --amount 500
dalp tokens set-cap --address 0x... --cap 5000000
## Holder transfers
dalp tokens transfer --address 0x... --to 0x... --amount 100
dalp tokens approve --address 0x... --spender 0x... --amount 1000
## Custodian servicing
dalp tokens forced-transfer --address 0x... --from 0x... --to 0x... --amount 50
dalp tokens freeze-address --address 0x... --target 0x...
dalp tokens freeze-partial --address 0x... --target 0x... --amount 500
dalp tokens unfreeze-partial --address 0x... --target 0x... --amount 500
dalp tokens forced-recover --address 0x... --lostWallet 0x... --newWallet 0x...
## These commands require the custodian role and should match the governed
## servicing case you already approved outside the CLI. freeze-address sets the
## holder-level freeze flag. To clear it, call the token address-freezes API with
## freeze=false.
## Emergency recovery
dalp tokens recover-tokens --address 0x... --lostWallet 0x...
dalp tokens recover-erc20 --address 0x... --token-address 0x... --to 0x... --amount 1000
## State control
dalp tokens pause 0x...
dalp tokens unpause 0x...
## pause, unpause, recover-tokens, and recover-erc20 require the emergency role.
## Maturity and redemption
dalp tokens mature --address 0x...
dalp tokens redeem --address 0x... --amount 1000
## Access control
dalp tokens grant-role --address 0x... --role supplyManagement --account 0x...
dalp tokens revoke-role --address 0x... --role supplyManagement --account 0x...
## Compliance modules (params is JSON: typeId, module address, and values)
dalp tokens add-compliance-module --address 0x... \
--params '{"typeId":"country-allow-list","module":"0x...","values":[840,276]}'
dalp tokens remove-compliance-module --address 0x... --moduleAddress 0x...
dalp tokens set-compliance-module-params --address 0x... --moduleAddress 0x... \
--typeId country-allow-list --values '[840,276]'
## Identity claims
dalp tokens claim-issue --address 0x... --topic 1 --claim 0x...
dalp tokens claim-revoke --address 0x... --claimId 0x...
## Metadata
dalp tokens set-metadata --address 0x... --key prospectus --value "https://..."
dalp tokens remove-metadata --address 0x... --key prospectus
## External tokens
dalp external-tokens list
dalp external-tokens register --token-address <tokenAddress> --token-type <tokenType>
## Fee configuration
dalp tokens set-aum-fee-bps --address 0x... --featureAddress 0x... --feeBps 50
dalp tokens set-aum-fee-recipient --address 0x... --featureAddress 0x... --recipient 0x...
## Collateral and yield schedule
dalp tokens update-collateral --address 0x... --amount 150 --expiryTimestamp 2027-01-01T00:00:00Z
dalp tokens set-yield-schedule --address 0x... --schedule 0x...Use an ISO 8601 value for --expiryTimestamp so the collateral claim has a clear expiry moment.
Statistics
Use token statistics commands to inspect supply, volume, holder distribution, and yield views for a token contract. Each command takes the token contract address as the positional argument.
dalp tokens stats-bond-status 0x...
dalp tokens stats-collateral-ratio 0x...
dalp tokens stats-total-supply 0x...
dalp tokens stats-supply-changes 0x...
dalp tokens stats-volume 0x...
dalp tokens stats-wallet-distribution 0x...
dalp tokens stats-yield-distribution 0x...
dalp tokens stats-yield-coverage 0x...stats-total-supply, stats-supply-changes, and stats-volume return time-series history. stats-wallet-distribution returns holder distribution, while the yield commands return bond yield distribution and coverage views.
Token documents
Use dalp tokens documents to manage files attached to a token: list, upload, download, or delete. The upload flow has three steps: request a presigned upload URL, upload the file with the returned PUT method and headers, then confirm the upload with the returned object key.
## List documents attached to a token
dalp tokens documents list 0x...
## Request an upload URL for an offering document
dalp tokens documents get-upload-url --address 0x... \
--document-type prospectus \
--file-name prospectus.pdf \
--file-size 204800 \
--mime-type application/pdf \
--visibility public
## Upload the file to the returned uploadUrl before confirming it.
## Pass every returned header by repeating -H for each key/value pair.
curl -X PUT "<upload-url>" \
-H "Content-Type: application/pdf" \
-H "x-ms-blob-type: BlockBlob" \
--data-binary @prospectus.pdf
## Confirm the upload with the returned object key
dalp tokens documents confirm-upload --address 0x... \
--object-key <object-key> \
--document-type prospectus \
--file-name prospectus.pdf \
--file-size 204800 \
--mime-type application/pdf \
--visibility public
## Download or delete an existing token document
dalp tokens documents get-download-url --address 0x... --document-id <document-id>
dalp tokens documents delete --address 0x... --document-id <document-id>Token document uploads accept application/pdf, image/jpeg, image/png, image/webp, DOCX, and XLSX files. Document types include offering and compliance records such as prospectus, term_sheet, legal_opinion, regulatory_filing, reserve_audit, attestation_report, chain_of_custody, and other. Visibility can be public, holders, or restricted.
User management
## Read operations
dalp users list
dalp users me
dalp users events
dalp users list --query <query>
dalp users read-by-user-id <userId>
dalp users read-by-wallet <wallet>
dalp users read-by-national-id <nationalId>
## Create
dalp users create --email [email protected] --name "Jane Doe"
dalp users create-wallet
## Analytics
dalp users assets --wallet 0x...
dalp users stats --timeRange 30d
dalp users stats-user-count
dalp users stats-growth
## Profit and loss for the authenticated user
dalp users realized-pnl
dalp users realized-pnl --filter pnlSign=loss
dalp users realized-pnl --sort -realizedPnlInBase
dalp users realized-pnl-over-time --preset trailing7Days
dalp users unrealized-pnl-over-time --tokenAddress 0x... --preset trailing24Hours
## Admin operations
dalp users admin-list
dalp users admin-security <userId>
dalp users admin-revoke-session --sessionId <sessionId>
dalp users admin-revoke-all-sessions <userId>
dalp users admin-reset-mfa <userId>
dalp users admin-trigger-password-reset <userId>The profit-and-loss commands report against the authenticated user's own linked wallets in the active system. realized-pnl returns disposals as a paginated list and accepts the shared --filter, --sort, and pagination flags; pnlSign=gain or pnlSign=loss narrows the list, and realizedPnlInBase sorts by realized amount in the base currency. realized-pnl-over-time and unrealized-pnl-over-time return bucketed time series for a trailing range, selected with --preset trailing24Hours or --preset trailing7Days; unrealized-pnl-over-time covers one token at a time, set with --tokenAddress. For response shapes, cost-basis treatment, and wallet aggregation, see the Realized P&L statistics API and Unrealized P&L over time API.
Identity management
## Lifecycle
dalp identities list
dalp identities me
dalp identities create --wallet 0x...
dalp identities register --wallet 0x... --country DE
dalp identities register-pending --wallet 0x...
## Lookups
dalp identities read-by-wallet <wallet>
dalp identities read-by-id <identityAddress>
dalp identities search --wallet 0x... --address 0x...
dalp identities registration-status <wallet>
dalp identities keys <identityAddress>
dalp identities keys <identityAddress> --filter purpose=management
## Management
dalp identities delete <wallet>
dalp identities update-country --wallet 0x... --countryCode US
## Claims
dalp identities claim-history <identityAddress>
dalp identities claim-issue --targetIdentityAddress 0x... --topic 1 --claimData 0x...
dalp identities claim-revoke --targetIdentityAddress 0x... --claimTopic 1identities keys reads indexed ERC-734 keys for one identity contract. The result can be filtered by key purpose, including management, deposit, claimSigner, and encryption.
Compliance provider integrations
Use dalp compliance-providers to manage compliance-provider integrations and subject-monitoring workflows from automation scripts or operator terminals. Commands that accept --payload expect a JSON body that matches the linked compliance-provider API request.
| Command | Description |
|---|---|
dalp compliance-providers list | List configured compliance-provider integrations. |
dalp compliance-providers read <integrationId> | Read one provider integration by ID. |
dalp compliance-providers validate-credentials | Check provider credentials before creating integration. |
dalp compliance-providers create | Create a provider integration from a JSON payload. |
dalp compliance-providers rotate-secret <id> | Start webhook signing-secret rotation. |
dalp compliance-providers promote-secret <id> | Promote the pending signing secret to active. |
dalp compliance-providers cancel-secret-rotation <id> | Cancel a pending signing-secret rotation. |
dalp compliance-providers revoke <integrationId> | Revoke an integration. |
dalp compliance-providers retry-provisioning <id> | Retry failed integration provisioning. |
dalp compliance-providers pause <integrationId> | Pause an active integration. |
dalp compliance-providers resume <integrationId> | Resume a paused integration. |
dalp compliance-providers health <integrationId> | Health-check stored credentials. |
dalp compliance-providers monitoring <integrationId> | List monitoring alerts for an integration. |
dalp compliance-providers create-applicant | Create a provider applicant and DALP subject mapping. |
dalp compliance-providers register-wallet | Register a wallet or ComplyAdvantage entity-search subject using the documented subjectHints payload. |
dalp compliance-providers register-transaction | Register a transaction for provider monitoring. |
## Inspect and health-check integrations
dalp compliance-providers list
dalp compliance-providers read <integrationId>
dalp compliance-providers health <integrationId>
dalp compliance-providers monitoring <integrationId>
## Validate credentials, then create the integration with the API request payload
dalp compliance-providers validate-credentials --payload '<credentials-json>'
dalp compliance-providers create --payload '<integration-json>'
## Rotate webhook signing secrets without interrupting the active secret
dalp compliance-providers rotate-secret <integrationId> --secret <new-secret>
dalp compliance-providers promote-secret <integrationId>
## Register provider subjects and transactions
dalp compliance-providers create-applicant --payload '{...}'
dalp compliance-providers register-wallet --payload '{...}'
dalp compliance-providers register-transaction --payload '{...}'For provider-specific payload fields, subject mappings, webhook events, and response shapes, see Compliance provider API and Compliance provider subjects.
KYC management
## Profile
dalp kyc profile <userId>
## Versions
dalp kyc versions <userId>
dalp kyc version-create <userId>
dalp kyc version-read --versionId <versionId>
dalp kyc version-update --versionId <versionId>
dalp kyc version-submit --versionId <versionId>
dalp kyc version-approve --versionId <versionId>
dalp kyc version-reject --versionId <versionId> --rejectionReason "..."
dalp kyc version-request-update --versionId <versionId> --reason "..."
## Documents
dalp kyc documents --versionId <versionId>
dalp kyc document-confirm-upload --versionId <versionId> --filePath ./scan.pdf \
--documentType passport --fileName scan.pdf --fileSize 204800 --mimeType application/pdf
dalp kyc document-download-url --versionId <versionId> --documentId <docId>
dalp kyc document-delete --versionId <versionId> --documentId <docId>
## Action requests
dalp kyc action-request-fulfill <requestId>KYC document uploads support files up to 25 MiB. The CLI reads the local file, base64-encodes it, and sends the bytes through the Platform API so DALP can validate and encrypt the document before storing it.
Work queue
Use dalp actions list to inspect the platform's pending-work feed from a terminal. The command returns all entries visible to the authenticated user (pending, upcoming, executed, and expired) without applying CLI-side filters.
| Command | Description |
|---|---|
dalp actions list | List entries visible to the active user and organisation context |
## Review the feed returned by the API.
dalp actions listEach entry includes its canonical type, display name, and status, plus activation time, source, and target address when it targets an on-chain contract or wallet. For the operator workflow in the Console, see the work queue runbook.
System management
Core
dalp system list
dalp system create
dalp system read <systemAddress>
dalp system resume
dalp system directory
dalp system entitiesUse the core system commands to confirm the system context before running system-scoped commands. list returns the systems available to the active organisation. read inspects one system by address. directory returns the active directory contract addresses plus supported token, compliance module, and add-on types. entities lists the identities registered inside that system context.
The directory exposes factory and implementation addresses used to create systems. After a system exists, read returns the system's registry addresses: assets, roles, identities, compliance modules, feeds, and trusted issuers.
Read the target system first. Later commands then affect the intended context.
For the architecture model behind this boundary, see System context.
Access control
Use dalp system access-manager to list roles and grant or revoke role assignments for accounts in the active system. Read the current role list before granting to confirm the account and role name.
dalp system access-manager roles-list
dalp system access-manager roles-read <address>
dalp system access-manager grant-role --account 0x... --role admin
dalp system access-manager revoke-role --account 0x... --role adminToken factories
Use dalp system factories to discover available factories, create factory instances, and predict token contract addresses before deployment. Run available before create to confirm the factory exists for the target asset type.
dalp system factories list
dalp system factories available --type equity --name "My Token" --symbol MTK --decimals 18
dalp system factories create --factories '[...]'
dalp system factories read <address>
dalp system factories predict-address --type equity --name "My Token" --symbol MTK --decimals 18
dalp system factories predict-access-manager-address --type equity --name "My Token" --symbol MTK --decimals 18Data feeds
Use feed commands to discover registered feeds, inspect indexed issuer-signed feeds and adapters, read current values, and submit feed updates.
## Discovery
dalp system feeds capabilities
dalp system feeds list
dalp system feeds resolve <subject>
dalp system feeds read <address>
dalp system feeds issuer-signed-list
dalp system feeds adapter-list
## CRUD
dalp system feeds issuer-signed-create --subject "ETH/USD" --description "Ether price" \
--decimals 8 --historyMode rolling --historySize 100
dalp system feeds adapter-create "ETH/USD"
dalp system feeds register-external --subject "ETH/USD" --feedAddress 0x...
dalp system feeds replace --subject "ETH/USD" --newFeedAddress 0x...
dalp system feeds remove <subject>
## Data
dalp system feeds latest <address>
dalp system feeds round --address 0x... --roundId 5
dalp system feeds staleness --address 0x... --maxAgeSeconds 3600
dalp system feeds config <address>
## Updates
dalp system feeds nonce --address 0x... --issuerIdentity 0x...
dalp system feeds submit --address 0x... --value 185000000000 --observedAt "2024-06-15T12:00:00Z"The list commands return indexed feed or adapter records for automation that needs to confirm factory-created resources.
Compliance
Use dalp system compliance-modules to manage the active system's global compliance modules. You can list installed modules, install or reconfigure a module with parameters, narrow a module with a scope, or remove a module. A global module applies across every token bound to the system, so each token inherits the rule without configuring it again. For the concept and the dimensions a scope can narrow, see Global controls.
dalp system compliance-modules list
dalp system compliance-modules create --complianceModules '[...]'
dalp system compliance-modules remove-global --module 0x...Because the scoped-configuration commands below change platform-wide policy, each one requires --confirm-global to acknowledge that the change applies across all bound tokens. Without it the command refuses to run.
Run configure to install a module with parameters, or to reconfigure an installed one by passing its instance address. Run install-scoped to install a module and narrow it with a scope in one step.
dalp system compliance-modules configure --params '{"typeId":"address-block-list","module":"0x...","values":["0x..."]}' --confirm-global
dalp system compliance-modules configure --params '{...}' --instance-address 0x... --confirm-global
dalp system compliance-modules install-scoped --params '{...}' --scope '{...}' --confirm-globalUse set-scope to change the scope of an installed module, and set-scoped-params to update both its parameters and its scope at once. Both target an installed module by its instance address.
dalp system compliance-modules set-scope --instance-address 0x... --scope '{...}' --confirm-global
dalp system compliance-modules set-scoped-params --instance-address 0x... --params '{...}' --scope '{...}' --confirm-globalTrusted issuers
Use dalp system trusted-issuers to manage the claim issuers the active system trusts. You can list, read, create, update, upsert, or delete issuers, and inspect claim topics per issuer address.
dalp system trusted-issuers list
dalp system trusted-issuers read <address>
dalp system trusted-issuers create --issuerAddress 0x... --claimTopicIds '[1,2]'
dalp system trusted-issuers update --address 0x... --claimTopicIds '[1,2,3]'
dalp system trusted-issuers upsert --address 0x... --claimTopicIds '[1,2]'
dalp system trusted-issuers delete <address>
dalp system trusted-issuers topics <address>System statistics
Use dalp system stats when an operations script needs system-level portfolio,
asset, identity, claim, transaction, trusted issuer, topic scheme, or value
snapshots without calling the API directly. Range commands require --interval
(day or hour), --from, and --to. Preset commands accept
trailing24Hours or trailing7Days.
## Assets and activity
dalp system stats assets
dalp system stats asset-lifecycle-by-range --interval day --from 2024-01-01 --to 2024-12-31
dalp system stats asset-lifecycle-by-preset trailing7Days
dalp system stats asset-activity-by-range --interval hour --from 2024-06-01 --to 2024-06-02
dalp system stats asset-activity-by-preset trailing24Hours
## Identities, claims, and issuers
dalp system stats identity-count
dalp system stats identity-over-time-by-range --interval day --from 2024-01-01 --to 2024-12-31
dalp system stats identity-over-time-by-preset trailing7Days
dalp system stats claims-by-range --interval day --from 2024-01-01 --to 2024-12-31
dalp system stats claims-by-preset trailing7Days
dalp system stats claims-state
dalp system stats trusted-issuer-by-range --interval day --from 2024-01-01 --to 2024-12-31
dalp system stats trusted-issuer-by-preset trailing7Days
dalp system stats trusted-issuer-state
## Portfolio and value
dalp system stats value
dalp system stats portfolio-by-range --interval day --from 2024-01-01 --to 2024-12-31
dalp system stats portfolio-by-preset trailing7Days
dalp system stats portfolio-details
dalp system stats system-value-history-by-range --interval day --from 2024-01-01 --to 2024-12-31
dalp system stats system-value-history-by-preset trailing7Days
## Coverage and counts
dalp system stats country-asset-count
dalp system stats transaction-count
dalp system stats transaction-history
dalp system stats topic-schemes-by-range --interval day --from 2024-01-01 --to 2024-12-31
dalp system stats topic-schemes-by-preset trailing7Days
dalp system stats topic-schemes-state
dalp system stats topic-scheme-claims-coverageWebhook operations
Use dalp webhooks to manage endpoints, signing secrets, replay, local forwarding, and synthetic test events from automation scripts or local integration tests. Endpoint creation only accepts the thin payload shape. To switch an endpoint to fat, update the endpoint with --payload-shape fat and the complete --ack-field list for the endpoint's subscriptions.
## Endpoints
dalp webhooks endpoints list
dalp webhooks endpoints read <endpointId>
dalp webhooks endpoints create --url https://example.com/webhooks --name "Ops webhook" \
--subscription "token.transfer.*" --payload-shape thin --counter-signed-receipts true
dalp webhooks endpoints update <endpointId> --payload-shape fat \
--ack-field token.transfer.final.from --ack-field token.transfer.final.to \
--ack-field token.transfer.pending.from --ack-field token.transfer.pending.to
dalp webhooks endpoints delete <endpointId>
## Replay and local development
dalp webhooks replay event <evtId> --endpoint <endpointId>
dalp webhooks replay range --endpoint <endpointId> --chain-id 1 --from-block 1000 --to-block 1200
dalp webhooks replay fixture --type token.transfer.final
dalp webhooks listen start --endpoint <endpointId> --forward http://127.0.0.1:3000/webhooks
## Use --poll-ms to change the delivery polling interval from the 2000 ms default
## Signing secrets and test events
dalp webhooks secrets rotate --endpoint <endpointId>
dalp webhooks secrets revoke-previous --endpoint <endpointId>
dalp webhooks test-event send --endpoint <endpointId> --type token.transfer.finalLocal forwarding prints an ephemeral signing secret for your local verifier and polls pending or failed deliveries for the selected endpoint. For route schemas, delivery details, and payload-shape rules, see Webhook endpoints API.
Token sale commands
Use dalp token-sales to inspect and operate token-sale lifecycle tasks from an operator terminal. Create the sale first and configure optional controls before activation. Then drive the lifecycle: activate, pause, end, finalize, and settle withdrawals for buyers or issuers. Amount fields use raw units. Express sale-token caps, purchase limits, soft caps, and minimum token amounts in sale-token decimals; express buy --amount in the selected payment currency decimals.
| Command | Use it for |
|---|---|
dalp token-sales list | List token sales for the active tenant. |
dalp token-sales read <address> | Read one token sale by sale contract address. |
dalp token-sales create | Create a token sale for a token with start time, duration, and hard cap. |
dalp token-sales activate <address> | Activate a configured token sale. |
dalp token-sales buy | Buy tokens in a sale with a payment currency and minimum token amount. |
dalp token-sales configure-vesting | Set vesting start, duration, and cliff for the sale. |
dalp token-sales pause <address> / unpause <address> | Pause or resume sale activity. |
dalp token-sales end <address> / finalize <address> | End the sale window and finalize sale accounting. |
dalp token-sales withdraw-funds | Withdraw collected funds for one payment currency. |
dalp token-sales withdraw-tokens <address> | Withdraw purchased tokens. |
dalp token-sales withdraw-unsold-tokens | Withdraw unsold tokens to a recipient. |
dalp token-sales acknowledge-terms <address> | Record the caller's acknowledgement of the sale terms. |
dalp token-sales claim-refund | Claim a refund for one payment currency from a failed sale. |
dalp token-sales add-to-presale-whitelist / remove-from-presale-whitelist | Add or remove one wallet from the presale whitelist. |
dalp token-sales add-payment-currency / remove-payment-currency | Add or remove an accepted payment currency. |
dalp token-sales set-soft-cap | Set the sale soft cap. |
dalp token-sales set-purchase-limits | Set minimum and maximum purchase amounts. |
dalp token-sales set-terms-hash | Store the terms hash used for buyer acknowledgement. |
## Create a sale for a token.
dalp token-sales create \
--token-address 0x... \
--sale-start 2026-06-01T09:00:00.000Z \
--sale-duration 604800 \
--hard-cap 1000000000000000000000000
## Configure sale controls before activation.
dalp token-sales add-payment-currency --address 0x... --currency 0x... --price-ratio 1000000000000000000
dalp token-sales remove-payment-currency --address 0x... --currency 0x...
dalp token-sales add-to-presale-whitelist --address 0x... --wallet 0x...
dalp token-sales remove-from-presale-whitelist --address 0x... --wallet 0x...
dalp token-sales set-purchase-limits --address 0x... --min-purchase 100000000000000000000 --max-purchase 10000000000000000000000
dalp token-sales set-soft-cap --address 0x... --soft-cap 250000000000000000000000
dalp token-sales set-terms-hash --address 0x... --terms-hash 0x...
dalp token-sales configure-vesting \
--address 0x... \
--vesting-start 2026-06-08T09:00:00.000Z \
--vesting-duration 31536000 \
--vesting-cliff 2592000
## Operate the sale lifecycle.
dalp token-sales activate 0x...
dalp token-sales pause 0x...
dalp token-sales unpause 0x...
dalp token-sales buy --address 0x... --amount 1000000000 --currency 0x... --min-token-amount 990000000000000000000
dalp token-sales end 0x...
dalp token-sales finalize 0x...
## Settle proceeds, unsold tokens, purchased tokens, or refunds.
dalp token-sales withdraw-funds --address 0x... --currency 0x... --recipient 0x...
dalp token-sales withdraw-unsold-tokens --address 0x... --recipient 0x...
dalp token-sales withdraw-tokens 0x...
dalp token-sales claim-refund --address 0x... --currency 0x...For the operator roles that gate the sale CLI commands, see Asset contract roles.
Airdrop commands
Use dalp airdrops to inspect deployed airdrop distributions from a terminal. An operator or auditor can list every distribution in the active system and read one instance without opening the Console. The surface is read-only: it reports state but does not create, claim, or send tokens. One command set covers all three variants (push, time-bound, and vesting), and each row reports its variant so a script can branch on it.
| Command | Use it for |
|---|---|
dalp airdrops list | List airdrop distributions in the active system, across all three variants. |
dalp airdrops read <address> | Read one distribution by its instance address, including recipient count. |
## List every airdrop distribution in the active system.
dalp airdrops list
## Read one distribution by its instance address.
dalp airdrops read 0x...Both commands resolve against the active system and return only distributions your organisation owns. Reading an address owned by a different system, or one the active chain has yet to index, returns a not-found response. For the list filters (typeId, sold token, factory address, and global search), the read response fields, and the full error reference, see Airdrop distribution reads.
Governance commands
Use dalp governance to run the on-chain proposal lifecycle from a terminal, and dalp governance-polls for off-chain signalling polls. These commands run the same Platform API operations the Console Governance section uses, so a script and the interface drive the same votes and read the same outcomes.
A vote is always tied to one token that carries the voting-power capability. The first proposal on a token deploys a dedicated governor and timelock pair for that token, which the create command does for you. Holder weight is fixed at the proposal's record date. Run preflight against a token before create to confirm the token has voting power and the timelock can run any executable action you intend to propose.
Proposal lifecycle
| Command | Description |
|---|---|
dalp governance list | List proposals across the system's governors. |
dalp governance read --governor-address 0x... --proposal-id <id> | Read one proposal's config, tallies, quorum progress, and metadata. |
dalp governance preflight --token-address 0x... | Check vote-creation prerequisites before proposing. |
dalp governance create | Create a proposal: binary, multi-option, or executable. |
dalp governance cast-vote | Cast a vote on an active proposal. |
dalp governance queue | Queue a succeeded executable proposal on the timelock. |
dalp governance execute | Execute a queued proposal after the timelock delay elapses. |
dalp governance cancel | Cancel a pending or queued proposal. |
dalp governance ballots --governor-address 0x... --proposal-id <id> | List the ballots cast on a proposal. |
dalp governance export --governor-address 0x... --proposal-id <id> | Export a proposal's ballots and outcome as CSV. |
dalp governance instance <tokenAddress> | Read the governor and timelock deployed for a token. |
## Confirm prerequisites, then create a binary proposal.
dalp governance preflight --token-address 0x...
dalp governance create --token-address 0x... --mode binary \
--title "Adjust the supply cap" \
--description-rich-text "Raise the supply cap to fund the next issuance round." \
--record-date-at 2026-07-01T00:00:00Z \
--quorum-bps 2000
## Cast a vote while the voting period is open.
## Pass --support for a binary proposal, or --option-index for a multi-option proposal.
dalp governance cast-vote --token-address 0x... --governor-address 0x... \
--proposal-id <id> --support for --reason "Supports the next issuance round."
## For an executable proposal that succeeds, queue then execute after the delay.
dalp governance queue --token-address 0x... --governor-address 0x... --proposal-id <id>
dalp governance execute --token-address 0x... --governor-address 0x... --proposal-id <id>
## Cancel a pending or queued proposal.
dalp governance cancel --token-address 0x... --governor-address 0x... --proposal-id <id>
## Read outcomes and export the ballot record for an audit file.
dalp governance read --governor-address 0x... --proposal-id <id>
dalp governance ballots --governor-address 0x... --proposal-id <id>
dalp governance export --governor-address 0x... --proposal-id <id> --output proposal.csvcreate takes --mode binary for a For/Against/Abstain vote or --mode multiOption for a choice among labelled options passed with --options as a JSON array. Add --actions with a JSON array of catalog actions for an executable proposal; executable proposals are always binary. --record-date-at is the voting-power snapshot timestamp in ISO 8601, --quorum-bps sets the required participation share in basis points, and --execution-delay-seconds sets the timelock delay for executable proposals. For binary votes, cast-vote takes --support against, for, or abstain; for multi-option votes it takes --option-index. export writes CSV to the path in --output, or to standard output when you omit it.
Proposal documents
| Command | Description |
|---|---|
dalp governance get-upload-url | Get a presigned URL to upload a proposal document. |
dalp governance get-download-url --governor-address 0x... --proposal-id <id> | Get a presigned URL to download a proposal document. |
## Request an upload URL, PUT the file to it, then reference the returned object key
## in the proposal's --documents array on create.
dalp governance get-upload-url --file-name memo.pdf --file-size 248000 --mime-type application/pdf
## Download an attached document later.
dalp governance get-download-url --governor-address 0x... --proposal-id <id> --object-key <object-key>Proposal documents accept PDF, JPEG, PNG, WebP, DOCX, and XLSX files.
Off-chain polls
A poll records a non-binding signal. Ballots are wallet-signed messages weighted by record-date voting power, so they cost no gas. A holder can replace a poll ballot any time before the poll closes; the latest ballot per voter counts.
| Command | Description |
|---|---|
dalp governance-polls create | Create an off-chain signalling poll. |
dalp governance-polls list | List governance polls. |
dalp governance-polls read <pollId> | Read one poll with its current or frozen tally. |
dalp governance-polls sign-ballot | Sign and cast a ballot with the caller's managed wallet key. |
dalp governance-polls cast-ballot | Submit a self-signed ballot. |
dalp governance-polls close <pollId> | Close a poll and freeze its tally. |
dalp governance-polls export --poll-id <pollId> | Export a poll's ballots and tally as CSV. |
## Create a poll with its options and schedule.
dalp governance-polls create --token-address 0x... \
--title "Preferred coupon frequency" \
--options '["Quarterly","Semi-annual","Annual"]' \
--record-date-at 2026-07-01T00:00:00Z \
--opens-at 2026-07-02T00:00:00Z \
--closes-at 2026-07-09T00:00:00Z
## Cast a ballot with the caller's managed wallet key after wallet verification.
dalp governance-polls sign-ballot --poll-id <pollId> --option-index 0 --verification-code <code>
## Read the running tally, then close the poll and export the result.
dalp governance-polls read <pollId>
dalp governance-polls close <pollId>
dalp governance-polls export --poll-id <pollId> --output poll.csvsign-ballot defaults to a PIN code; pass --verification-type OTP or --verification-type SECRET_CODES to use a different wallet verification method. Use cast-ballot instead when you sign the poll's typed data in your own wallet: it takes --poll-id, the selected --option-index, the claimed --voter address, the --definition-hash the ballot was signed over, and the --signature.
For request and response fields, vote weighting, and the proposal status model, see the Governance proposals and polls API. For running a vote from the Console, see the Governance votes runbook. For the capability that supplies vote weight, see the Voting Power feature reference.
Identity recovery
Use dalp identity-recoveries when an operator needs to preview, submit, or check wallet recovery for a user through the CLI. Preview first, then execute only after the output confirms the selected user and wallet are recoverable.
| Command | Description |
|---|---|
dalp identity-recoveries preview <userId> | Show whether DALP's default selected wallet can be recovered. |
dalp identity-recoveries preview <userId> <wallet> | Show recovery impact for a specific lost wallet address. |
dalp identity-recoveries execute <userId> [wallet] | Submit the recovery workflow after preview confirms recovery can proceed. |
dalp identity-recoveries status <userId> | Check workflow progress and any token-level recovery failures. |
## Preview the recovery impact for DALP's default selected wallet
dalp identity-recoveries preview user_123
## Preview recovery for a specific lost wallet
dalp identity-recoveries preview user_123 0x1000000000000000000000000000000000000001
## Submit the recovery workflow
dalp identity-recoveries execute user_123 0x1000000000000000000000000000000000000001
## Check recovery progress and token-level failures
dalp identity-recoveries status user_123For response fields, permission requirements, and recovery status meanings, see Identity recovery API.
Compliance template commands
Use dalp compliance-templates to manage reusable compliance module templates from the CLI. Published templates are available during asset creation; draft templates can be edited before publication.
| Command | Description |
|---|---|
dalp compliance-templates list | List compliance templates for the active tenant. |
dalp compliance-templates read <id> | Read one compliance template by template ID. |
dalp compliance-templates create | Create a draft compliance template. |
dalp compliance-templates update | Update an existing compliance template. |
dalp compliance-templates publish <id> | Publish a template for asset creation. |
dalp compliance-templates delete <id> | Delete a compliance template. |
## List compliance templates
dalp compliance-templates list
## Create a draft template
dalp compliance-templates create --name "Transfer approval policy"
## Rename a template before publishing
dalp compliance-templates update --id <template-id> --name "Transfer approval policy v2"
## Publish the template for asset creation
dalp compliance-templates publish <template-id>For module fields, template status, compatibility rules, and API response details, see Compliance templates API.
Fixed yield schedule commands
Use dalp fixed-yield-schedules to create and operate fixed yield schedules from automation scripts. A schedule is addressed by its fixed yield contract address after creation. Yield rates use basis points, where 100 means 1%. Creation accepts HOURLY, DAILY, WEEKLY, MONTHLY, QUARTERLY, SEMI_ANNUAL, or YEARLY as the payment interval, plus an ISO 3166-1 numeric country code.
| Command | Description |
|---|---|
dalp fixed-yield-schedules read <address> | Read one fixed yield schedule. |
dalp fixed-yield-schedules create | Create a fixed yield schedule for a token. |
dalp fixed-yield-schedules top-up | Deposit payout assets into a schedule. |
dalp fixed-yield-schedules withdraw | Withdraw payout assets from a schedule. |
dalp fixed-yield-schedules claim <address> | Claim available yield rewards. |
## Create a schedule for a token.
dalp fixed-yield-schedules create \
--token 0x... \
--yield-rate 500 \
--payment-interval QUARTERLY \
--start-time <future-start-time> \
--end-time <future-end-time> \
--country-code 840
## Fund the schedule for the linked token.
dalp fixed-yield-schedules top-up \
--address 0x... \
--amount 1000000000000000000 \
--token-address 0x...
## Withdraw unused schedule funds for the linked token.
dalp fixed-yield-schedules withdraw \
--address 0x... \
--amount 1000000000000000000 \
--to 0x... \
--token-address 0x...
## Claim available rewards.
dalp fixed-yield-schedules claim 0x...--yield-rate is expressed in basis points, so 500 means 5%. --payment-interval accepts HOURLY, DAILY, WEEKLY, MONTHLY, QUARTERLY, SEMI_ANNUAL, or YEARLY. --start-time and --end-time must be future times, passed as ISO dates or Unix timestamps. For top-up and withdrawal commands, --token-address is the token contract linked to the schedule. For operational context on funding and claims, see Configure yield schedules.
Dividend yield commands
Use dalp dividend-yield to declare and operate cash dividends on a token's dividend-yield feature. Dividends are addressed by the token contract address plus a dividend identifier. Amounts are denomination asset base units, and dates are passed as ISO dates or Unix timestamps. Claim, position, and proof commands act for the authenticated holder.
| Command | Description |
|---|---|
dalp dividend-yield declare | Declare a cash dividend on the schedule. |
dalp dividend-yield snapshot | Preview or confirm a dividend snapshot. |
dalp dividend-yield claim | Claim the authenticated holder's entitlement. |
dalp dividend-yield cancel | Cancel an unfinalized dividend. |
dalp dividend-yield top-up | Transfer denomination asset to the schedule for a dividend. |
dalp dividend-yield extend-deadline | Extend a dividend claim deadline. |
dalp dividend-yield reclaim | Reclaim unclaimed denomination asset after the deadline. |
dalp dividend-yield list <address> | List indexed dividends for a token. |
dalp dividend-yield position <address> | Read the authenticated holder's dividend aggregate. |
dalp dividend-yield issuer-stats <address> | Read issuer-aggregate unclaimed figures (governance role required). |
dalp dividend-yield proof | Read the authenticated holder's Merkle proof for a dividend. |
## Declare a dividend on the token's schedule.
dalp dividend-yield declare \
--address 0x... \
--amount-per-share 1000000 \
--ex-date 2026-09-01 \
--record-date 2026-09-02 \
--payment-date 2026-09-05 \
--country-code BE
## Preview the snapshot, review the returned Merkle root, then confirm it.
dalp dividend-yield snapshot --address 0x... --dividend-id 1
dalp dividend-yield snapshot \
--address 0x... \
--dividend-id 1 \
--confirm \
--merkle-root 0x... \
--total-entitled 42 \
--total-required 42000000
## Fund the schedule, then claim as a holder.
dalp dividend-yield top-up --address 0x... --dividend-id 1 --amount 42000000
dalp dividend-yield claim --address 0x... --dividend-id 1
## Inspect dividends and holder state.
dalp dividend-yield list 0x... --page-limit 20 --sort -paymentDate
dalp dividend-yield position 0x...
dalp dividend-yield proof --address 0x... --dividend-id 1--claim-deadline is optional on declare: when omitted, the API derives it from the payment date plus the feature's default claim window. snapshot is two-stage: without --confirm it returns a preview, and with --confirm it requires the reviewed --merkle-root, --total-entitled, and --total-required values echoed back. list accepts the shared --filter, --sort, and pagination flags.
Interest yield commands
Use dalp interest-yield to manage a token's interest-yield schedule. Rates are expressed in basis points, where 100 means 1%. Treasury amounts are denomination asset base units. Claim and position commands act for the authenticated holder.
| Command | Description |
|---|---|
dalp interest-yield set-schedule | Set the annual rate (start date is fixed at feature attachment). |
dalp interest-yield update-rate | Update the annual interest rate. |
dalp interest-yield claim <address> | Claim all accrued interest for the authenticated holder. |
dalp interest-yield top-up | Top up the schedule treasury with denomination asset. |
dalp interest-yield withdraw | Withdraw excess denomination asset from the treasury. |
dalp interest-yield rate-history <address> | List recent rate changes for the schedule. |
dalp interest-yield position <address> | Read the authenticated holder's interest aggregate. |
dalp interest-yield issuer-stats <address> | Read issuer-aggregate pending figures (governance role required). |
## Configure the rate, then fund the treasury.
dalp interest-yield set-schedule --address 0x... --annual-rate-bps 500
dalp interest-yield top-up --address 0x... --amount 1000000000
## Claim accrued interest as a holder.
dalp interest-yield claim 0x...
## Withdraw excess treasury funds.
dalp interest-yield withdraw --address 0x... --to 0x... --amount 500000000
## Inspect rate changes and holder state.
dalp interest-yield rate-history 0x... --page-limit 20
dalp interest-yield position 0x...--annual-rate-bps is expressed in basis points, so 500 means 5%. rate-history accepts the shared --filter, --sort, and pagination flags.
Portfolio commands
Use dalp portfolio to read the authenticated holder's cross-asset returns.
| Command | Description |
|---|---|
dalp portfolio returns | Read the holder's fixed, dividend, and interest returns summary. |
## Read the authenticated holder's returns summary.
dalp portfolio returnsXvP settlement commands
Use dalp xvp-settlements to inspect and operate cross-value protocol settlements from automation scripts. Each settlement is addressed by its contract address after creation. Commands that change settlement state return a transaction hash.
| Command | Description |
|---|---|
dalp xvp-settlements list | List XvP settlements visible to the active organisation. |
dalp xvp-settlements read <address> | Read settlement metadata, approvals, cancel votes, flows, and state. |
dalp xvp-settlements decrypt <address> | Decrypt the stored HTLC secret and return its hashlock. |
dalp xvp-settlements create | Create an XvP settlement from a factory address and flow list. |
dalp xvp-settlements approve <address> | Approve one settlement as the current user. |
dalp xvp-settlements revoke-approval <address> | Revoke the current user's approval for one settlement. |
dalp xvp-settlements execute <address> | Execute a settlement that is ready for execution. |
dalp xvp-settlements cancel <address> | Vote to cancel one settlement. |
dalp xvp-settlements withdraw-cancel <address> | Withdraw the current user's cancellation proposal. |
dalp xvp-settlements withdraw-expired <address> | Withdraw assets from an expired settlement. |
dalp xvp-settlements reveal-secret | Reveal the HTLC secret for one settlement. |
## List and inspect XvP settlements.
dalp xvp-settlements list
dalp xvp-settlements read 0x...
## Create a local settlement. Amounts are base-unit token amounts.
dalp xvp-settlements create \
--factory-address 0x... \
--name "Primary market settlement" \
--cutoff-date 2026-06-01T12:00:00.000Z \
--flows '[{"type":"local","assetId":"0x...","from":"0x...","to":"0x...","amount":"1000000000000000000"}]'
## Approve, execute, or cancel a settlement.
dalp xvp-settlements approve 0x...
dalp xvp-settlements revoke-approval 0x...
dalp xvp-settlements execute 0x...
dalp xvp-settlements cancel 0x...
## Withdraw a cancellation proposal, or withdraw assets from an expired settlement.
dalp xvp-settlements withdraw-cancel 0x...
dalp xvp-settlements withdraw-expired 0x...
## Inspect or reveal an HTLC secret when the settlement workflow requires it.
dalp xvp-settlements decrypt 0x...
dalp xvp-settlements reveal-secret --address 0x... --secret <secret>create requires at least one local flow. Local flows use type, assetId, from, to, and amount. External flows also include externalChainId and externalAssetDecimals. Use the API directly for XvP creation workflows that require a raw secret, precomputed hashlock, automatic execution, or a V3 factory country code.
Exchange rate commands
Use dalp exchange-rates to inspect fiat exchange rates used by the active system. Currency codes use ISO currency codes such as USD and EUR.
| Command | Description |
|---|---|
dalp exchange-rates list | List exchange rates for the active system. |
dalp exchange-rates read <baseCurrency> <quoteCurrency> | Read one exchange rate pair. |
dalp exchange-rates history <baseCurrency> <quoteCurrency> | View historical rates for one currency pair. |
## List configured exchange rates.
dalp exchange-rates list
## Read and review one currency pair.
dalp exchange-rates read USD EUR
## Check the history for one pair.
dalp exchange-rates history USD EURFor the pricing and feeds model behind exchange rates, see Data feeds and Feeds system.
Monitoring
Use dalp monitoring to inspect API request activity and blockchain service health from an operator terminal. Commands that accept date ranges require --from and --to values. Pass ISO 8601 timestamps so the CLI can parse the range consistently.
API monitoring
| Command | Description |
|---|---|
dalp monitoring api summary --from <date> --to <date> | View total requests, errors, latency, and rates for a time range. |
dalp monitoring api timeline --from <date> --to <date> | View request counts grouped for charting or reporting. |
dalp monitoring api endpoints --from <date> --to <date> | Compare request statistics per endpoint. |
dalp monitoring api logs --from <date> --to <date> | List raw request log entries for a time range. |
dalp monitoring api logs-stream | Stream new request log entries as server-sent events. |
dalp monitoring api detail <requestId> | Read the full detail for one request log entry. |
## Review API activity for a reporting window.
dalp monitoring api summary --from 2026-05-01T00:00:00.000Z --to 2026-05-01T12:00:00.000Z
dalp monitoring api timeline --from 2026-05-01T00:00:00.000Z --to 2026-05-01T12:00:00.000Z
dalp monitoring api endpoints --from 2026-05-01T00:00:00.000Z --to 2026-05-01T12:00:00.000Z
## Inspect request logs, or stream new entries while testing an integration.
dalp monitoring api logs --from 2026-05-01T00:00:00.000Z --to 2026-05-01T12:00:00.000Z
dalp monitoring api logs-stream
dalp monitoring api detail req_01HXAMPLE0000000000000000Blockchain monitoring
| Command | Description |
|---|---|
dalp monitoring blockchain summary --from <date> --to <date> | View aggregate chain RPC and indexer health for a time range. |
dalp monitoring blockchain timeline --from <date> --to <date> | View health status counts grouped over time. |
dalp monitoring blockchain services --from <date> --to <date> | Compare per-service blockchain health metrics. |
dalp monitoring blockchain snapshots | List raw blockchain health snapshots. |
dalp monitoring blockchain snapshots-stream | Stream new blockchain health snapshots as server-sent events. |
## Review chain and indexer health for a reporting window.
dalp monitoring blockchain summary --from 2026-05-01T00:00:00.000Z --to 2026-05-01T12:00:00.000Z
dalp monitoring blockchain timeline --from 2026-05-01T00:00:00.000Z --to 2026-05-01T12:00:00.000Z
dalp monitoring blockchain services --from 2026-05-01T00:00:00.000Z --to 2026-05-01T12:00:00.000Z
## Inspect or stream health snapshots.
dalp monitoring blockchain snapshots
dalp monitoring blockchain snapshots-streamFor the operational workflow behind blockchain monitoring, see Blockchain monitoring.
Platform status
Use dalp platform-status to read the same operational health view that backs the Console status page, without leaving your terminal. Where the monitoring commands above report API and chain activity over a time range, platform status gives you the current state across every service. The commands are read-only. They report current and recent platform signals and never change token, wallet, compliance, workflow, or chain state.
Read the panels and stat cards for the current per-service state, then drill into a detail list when a service looks degraded. When an environment is new or clean, a panel can return a no_data verdict. Treat no_data as a neutral state, not as proof of health, and rely on degraded and outage for incident handling.
Panels and stat cards
Each panel command returns the current state for one operational area. Read a panel to see which underlying signal changed, and read the stat cards for compact operational numbers.
| Command | Description |
|---|---|
dalp platform-status data-freshness | Read indexed-chain freshness, tracked chain count, and 24-hour sync-error count. |
dalp platform-status transactions | Read transaction infrastructure status and the tracked chain count. |
dalp platform-status platform-api | Read 24-hour API request volume with the 4xx and 5xx error rates. |
dalp platform-status workflows | Read completed and stalled workflow counts when workflow telemetry is available. |
dalp platform-status stat-cards | Read the compact operational cards, including completed workflows and indexed blocks. |
## Read each panel, then the compact stat cards.
dalp platform-status data-freshness
dalp platform-status transactions
dalp platform-status platform-api
dalp platform-status workflows
dalp platform-status stat-cardsHistory and snapshot
Read history for the trailing severity strip across services. The snapshot command returns the header verdict, all panel verdicts, and stat-card values in one call, which is handy for a quick check but returns more than a single dashboard needs; read the individual panels above when you want one signal at a time.
| Command | Description |
|---|---|
dalp platform-status history [--days <n>] | Read per-service per-day worst severity for the trailing window (1 to 30 days, default 30). |
dalp platform-status snapshot | Read the header verdict, every panel verdict, and stat-card values in one aggregate call. |
## Read the trailing severity strip, then the one-call aggregate.
dalp platform-status history
dalp platform-status history --days 7
dalp platform-status snapshotDetail lists
The detail lists drill from a panel verdict into the underlying records. transactions-list accepts the shared --filter, --sort, and pagination flags, plus --query for a global search across queue entries. workflows-list returns a bounded snapshot and takes no filter, sort, or pagination flags.
| Command | Description |
|---|---|
dalp platform-status transactions-list [--query <q>] | List the organization-wide transaction queue across every wallet, including system and onboarding wallets. |
dalp platform-status workflows-list | Read a bounded snapshot of recent and in-flight workflow invocations, with stalled invocations surfaced first for triage. |
## List the most recent org-wide transaction queue entries.
dalp platform-status transactions-list
## List the newest failed transactions first.
dalp platform-status transactions-list --filter status=FAILED --sort -createdAt --page-limit 50
## Search the queue, then read recent workflow invocations.
dalp platform-status transactions-list --query onboarding
dalp platform-status workflows-listDebug bundle export
| Command | Description |
|---|---|
dalp platform-status debug-bundle [--out <dir>] | Export a whole-environment debug bundle for offline support triage. |
Pass --out to write the bundle as a directory of JSON files, one manifest.json plus one file per category. Omit --out to print the bundle as JSON to stdout instead.
## Print the debug bundle, or write it to a directory for a support case.
dalp platform-status debug-bundle
dalp platform-status debug-bundle --out ./dalp-debug-bundleTo read the same signals over HTTP, see the Platform status endpoints. For the Console workflow behind this view, see Monitor platform status.
Contact commands
Use dalp contacts to maintain your contact list. Each entry stores a human-readable name and an EVM wallet address. Scripts and operators can then look up known counterparties by name rather than typing raw addresses when preparing transfers, recovery operations, or other wallet-based workflows.
| Command | Description |
|---|---|
dalp contacts list [--query <query>] | List contacts. The optional query searches contact names and wallet values. |
dalp contacts read <id> | Read one contact by contact ID. |
dalp contacts upsert --name <name> --wallet <wallet> [--id <id>] | Create a contact, or update an existing contact when you pass --id. |
dalp contacts delete <id> | Delete one contact by contact ID. |
## Find existing contacts.
dalp contacts list
dalp contacts list --query treasury
## Read one contact returned by the list command.
dalp contacts read <contactId>
## Save a new contact for an EVM wallet address.
dalp contacts upsert --name "Treasury Wallet" --wallet 0x...
## Update an existing contact by its contact ID.
dalp contacts upsert --id <contactId> --name "Treasury Wallet" --wallet 0x...
## Remove a contact that should no longer appear in Contacts results.
dalp contacts delete <contactId>Contact names must be 1 to 120 characters after trimming; wallets must be valid EVM addresses. Entries are scoped to the authenticated user. If a wallet already belongs to one of your saved contacts, the upsert returns RESOURCE_ALREADY_EXISTS instead of overwriting. Pass --id to update the existing entry.
Blockchain transaction commands
Use dalp blockchain-transactions to inspect an on-chain transaction by hash. The platform returns the hash, sender address, and receipt details once mined. Pending transactions return a null receipt.
| Command | Description |
|---|---|
dalp blockchain-transactions read <hash> | Read transaction details by transaction hash |
Example:
dalp blockchain-transactions read 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdefAsset type template commands
Use dalp asset-type-templates to list, inspect, create, update, publish, or delete asset type templates from an operator terminal.
Each template defines a reusable asset-type entry for the creation flow. A template can point to a known deployable type, such as bond or deposit, or to a custom type ID backed by an asset class definition.
| Command | Description |
|---|---|
dalp asset-type-templates list | List asset type templates. |
dalp asset-type-templates read <id> | Read an asset type template by template ID. |
dalp asset-type-templates create --name <name> --type-id <typeId> [--base-asset-type <assetType>] [--asset-class-id <assetClassId>] | Create an asset type template. Custom type IDs require an asset class ID; the base asset type is an optional override. |
dalp asset-type-templates update --id <id> [--name <name>] [--type-id <typeId>] [--base-asset-type <assetType>] [--asset-class-id <assetClassId>] | Update an asset type template. Optional fields include name, type ID, base asset type, and asset class ID. |
dalp asset-type-templates publish <id> | Publish a draft asset type template. |
dalp asset-type-templates delete <id> | Delete an asset type template by template ID. |
## Review the current templates.
dalp asset-type-templates list
dalp asset-type-templates read <templateId>
## Create a custom template backed by an asset class definition.
dalp asset-type-templates create \
--name "Senior secured note" \
--type-id senior-secured-note \
--base-asset-type bond \
--asset-class-id <asset-class-id>
## Publish the template after review.
dalp asset-type-templates publish <templateId>For known asset type IDs, DALP can derive the base asset type when the option is omitted. For custom type IDs, provide an asset class ID to link the template to a managed asset class.
Global search
dalp search-results <query> runs the same global search used by the platform search surface. The query must be at least 2 characters and no more than 120 characters.
## Search for matching records across searchable DALP resources
dalp search-results "bond"Results are grouped by resource type. The authenticated user sees contacts, tokens, and users when matching records exist in the active system.
Admin commands
Use dalp admin organizations list to review tenants through the active Platform API context. The command targets cross-tenant administration, not a tenant-scoped address book or participant list. Run it with a platform administrator account.
| Command | Description |
|---|---|
dalp admin organizations list | List organisations for platform admins |
dalp admin organizations listThe caller needs permission to list organisations. The API returns a paginated collection. Each record includes identifier, name, slug, logo URL, creation time, owner count, owner emails, member count, and asset count.
For the underlying endpoint, query parameters, and response model, see Organizations administration API.
Network registry
The network catalog comes from two places: the networks in the values configuration, and the registry rows an administrator writes while the platform runs. dalp admin networks-list shows the merged result. The two write commands change the registry half only. A registry row can replace the definition of a network that the values configuration declares, but it cannot remove that network from the catalog.
| Command | Description |
|---|---|
dalp admin networks-list | List the merged, deployment-enabled networks |
dalp admin networks-upsert <networkName> --definition … | Create or replace a registry network definition |
dalp admin networks-delete <networkName> | Remove a registry network definition |
## Add a network. The definition holds no endpoints. A separate command supplies those.
dalp admin networks-upsert sepolia --definition '{"chain":"sepolia","enabled":true}'
## Give it endpoints. The platform probes each endpoint before it stores the pool.
dalp admin rpc-upstream-pools-upsert sepolia --upstreams '[{"endpointUrl":"https://rpc.example","providerType":"custom"}]'
## Remove the registry definition again.
dalp admin networks-delete sepoliaThe definition rejects three groups of fields instead of ignoring them. A submission that holds one of them fails with a 400, so a field that has no effect can never look accepted:
default. The values configuration decides which network is the deployment default.rpc.url,rpc.urls,rpc.wsUrl, and theauthblocks inside them. Endpoints and their credentials belong to the RPC upstream pool, which encrypts them and probes them. The registry never stores secret material.rpc.allowPrivateUpstreams. This switch turns off the private-address guard on the pool. It stays a deploy-time setting.
Each write is also refused with a named error when the result would break the catalog: two enabled networks on one chain (409), a definition that the schema rejects (400), a delete for a network that an organization still runs an active system on (409), a delete for a network that still has an RPC upstream pool (409), or a delete for a network that has no registry row (404). The platform applies a successful write to the running process before the command returns, so the next networks-list shows it.
Global options
Every command accepts --format, --json, and --help. Pass --format json for machine-readable script output. Pass --help on any command group for full usage details.
| Option | Description |
|---|---|
--format <format> | Output format: toon, json, yaml, jsonl, md |
--json | Shorthand for --format json |
--help | Show help for the command |
The CLI also exposes its full command surface in machine-readable forms. Use these flags when configuring agent workspaces or generating manifests. See AI agent integration for the recommended setup sequence.
| Flag | Description |
|---|---|
--mcp | Start CLI as an MCP stdio server |
--llms | Output Markdown skill manifest |
--schema | Output JSON Schema manifest |
Exit codes
The CLI returns one of two exit codes. Check the exit code in scripts before processing output.
| Code | Meaning |
|---|---|
0 | Success |
1 | General error (validation, network, permission) |
Next steps
- Start with CLI getting started to configure the API URL and log in.
- Use CLI scripting for output formats, shell examples, and automation patterns.
- Use AI agents with the CLI for MCP and manifest-based agent workflows.