Skip to content

Administration

Managing your Stratos Vault instance through the admin panel.


Overview

The admin panel is a single unified interface with two authentication tiers that control what sections are available:

TierAuth MethodHeaderSections
AdminWallet user with admin roleX-Admin-TokenUsers, Assets, Registration Codes, Daml Packages, Canton Node
SuperadminStaff account (username/password)X-Superadmin-TokenStaff, Configuration, Apps, App Access, RPC, API Endpoints

Both tiers use session tokens with 24-hour expiry.


Admin Sections

Users

View and manage wallet users.

ActionHow
View all usersUsers tab shows username, display name, role, party ID
Change roleClick user → set role to user or admin
Assign Canton partyClick Assign Party to allocate a Canton party for ledger access
Delete userRemove account and all associated data

Onboarding flow:

  1. Create a registration code (optional, for controlled sign-ups)
  2. Share the code with the user
  3. User registers via WebAuthn passkey
  4. Admin assigns Canton party (or it auto-allocates)

Assets

Configure supported blockchain assets. Each asset has:

FieldDescription
symbolToken ticker (e.g., USDC)
nameDisplay name
chainPrimary chain (Ethereum, Solana, etc.)
chain_typeProtocol type (evm, svm, btc, tron, ton)
contract_addressOn-chain contract address
decimalsToken decimal precision
is_nativeWhether it's the chain's native token

Multi-chain tokens (USDC, USDT) can have entries for each supported network via the asset chains sub-table.

Registration Codes

Control user sign-ups with one-time or multi-use codes.

FieldDescription
max_usesNumber of allowed registrations
expires_atOptional expiration date
code_typegeneral or custom type
reserved_usernameLock code to a specific username

Daml Packages

Upload and manage Canton Daml packages (DAR files):

  1. Click Upload DAR or drag-and-drop a .dar file
  2. The package is uploaded to the Canton participant
  3. Copy the returned mainPackageId for use in apps

Canton Node Info

View Canton participant connectivity — node status, version, domain ID, and Splice network users.


Superadmin Sections

Staff Management

Create and manage superadmin staff accounts.

FieldDescription
usernameLogin username
passwordHashed with PBKDF2 (100K iterations, SHA-256)
is_superadmintrue grants privilege to modify config, create API keys, manage apps
display_nameDisplay name

Only staff with is_superadmin = true can modify platform configuration. Non-privileged staff have read-only access to superadmin sections.

Configuration Overrides

Override wrangler.toml settings at runtime without redeploying:

KeyDescriptionValid Values
RP_NAMEWebAuthn relying party nameAny string
THEMEUI color themepurple, teal, blue, green, orange, rose, slate, light
ORG_NAMEOrganization display nameAny string
CHAT_AGENT_WEBHOOK_URLChat agent webhook URLURL
SPLICE_HOSTSplice validator hostHostname
CANTON_JSON_HOSTCanton JSON API hostHostname
MPC_ENABLEDEnable MPC signing"true", "false"

Set a value to null to revert to the wrangler.toml default.

Dock Apps

Manage apps available in the wallet dock:

FieldDescription
nameApp display name
iconIcon character or emoji
colorBackground color (hex, e.g., #6366f1)
urlApp URL (must support iframe embedding)
zoomIframe zoom level (10–200%)
sort_orderDisplay order
is_enabledEnable/disable without deleting

Package status — the admin panel checks if each app's Daml package is installed on the Canton participant:

StatusMeaningAction
InstalledPackage already on CantonNone needed
Install DARPackage not installedClick to install
N/AApp has no package endpointNone needed
ErrorCould not checkVerify app URL

App Access Control

Restrict which wallet users can see and use specific dock apps. By default, apps are visible to all users. Use access control to limit availability per user.

RPC Endpoints

Configure blockchain RPC providers with priority-based failover:

FieldDescription
chain_typeevm, btc, svm, tron, ton
chain_nameDisplay name (e.g., Ethereum, Base)
chain_idEVM chain ID (e.g., 1 for Ethereum, 8453 for Base)
networkmainnet or testnet
rpc_urlProvider URL
priority0 = primary, 1 = first fallback, 2 = second fallback

For production, use dedicated RPC providers (Alchemy, Infura, QuickNode, ZAN).

Scoped API Endpoints

Create API keys that provide scoped, programmatic access to the Canton ledger for external services, bots, or integrations.

FieldDescription
nameDescriptive name (e.g., "Trading Bot")
party_idCanton party the key acts as (autocomplete from user list)
allowed_packagesRestrict to specific Daml packages (select apps to derive)
allowed_choicesRestrict to specific contract choices
rate_limitRequests per minute (default: 60)

Creating an endpoint:

  1. Click Add API Endpoint
  2. Enter a name and select the party
  3. Select dock apps to restrict access to their packages (optional)
  4. Set rate limit and choice restrictions (optional)
  5. Click Create — the API key (cwp_...) is shown once
  6. Copy the key immediately — it cannot be retrieved again

API keys are stored as SHA-256 hashes. All usage is recorded in audit logs accessible via the Logs button on each endpoint.

External services use the key with the Proxy API:

bash
curl -X POST https://wallet.acme.com/api/proxy/query \
  -H "X-API-Key: cwp_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "abc123...#DeFi:Position"}'

Troubleshooting

Cannot Access Admin Panel

User doesn't have admin role:

bash
wrangler d1 execute wallet-prod --remote \
  --command="UPDATE users SET role = 'admin' WHERE username = 'yourusername';"

Superadmin Login Fails

The default account is auto-created on first login. If credentials are lost:

bash
wrangler d1 execute wallet-prod --remote \
  --command="DELETE FROM superadmin_users; DELETE FROM superadmin_sessions;"

DAR Upload Fails

  • Check Canton participant is reachable (CANTON_JSON_HOST)
  • Verify the DAR file is valid
  • Check if the package is already uploaded

User Has No Party ID

Use the Assign Party button in the admin panel or call POST /api/admin/onboard-user.

Canton Tunnel Not Working

  • Verify cloudflared is running: cloudflared tunnel list
  • Check tunnel config: cat ~/.cloudflared/config.yml
  • Test connectivity: curl https://your-tunnel-domain/health

Next Steps

Enterprise-grade multi-chain wallet infrastructure.