Institutional Wallet & Treasury Services
Operational guide for wallet, treasury admin, and related local dashboards.
Access Model
Sensitive routes are protected by LocalhostOnlyFilter:
/wallet/**/treasury/**/wallet-dashboard/**/institution-config/**/treasury/admin/notifications/**
Private-network access can be enabled with:
security.allow-private-networks=truesecurity.access-token(required whensecurity.access-token.required=true)
Wallet Endpoints (/wallet)
/wallet)POST /wallet/createInput:
{ "password": "..." }Creates a wallet, stores encrypted private key, writes wallet config, reloads institutional wallet.
POST /wallet/importInput:
{ "privateKey" | "mnemonic", "password": "..." }Imports and replaces the active institutional wallet.
POST /wallet/revealInput:
{ "password": "..." }Reveals private key (localhost-restricted, break-glass endpoint).
GET /wallet/{address}/balanceGET /wallet/{address}/transactionsGET /wallet/listen-eventsGET /wallet/networksPOST /wallet/switch-network
Treasury Admin (/treasury/admin/execute)
/treasury/admin/execute)Endpoint:
POST /treasury/admin/execute
Security requirements:
Request must pass localhost/private-network restrictions.
adminWalletAddressmust match configured institutional wallet.EIP-712 signature is mandatory (
timestamp+signaturefields).Signature timestamp window is 5 minutes and replay-protected.
Supported operations:
AUTHORIZE_BACKENDREVOKE_BACKENDADMIN_RESET_BACKENDSET_USER_LIMITSET_SPENDING_PERIODRESET_SPENDING_PERIODDEPOSIT_TREASURYWITHDRAW_TREASURY
Minimal example:
Treasury Read-Only Admin Endpoints
GET /treasury/admin/statusGET /treasury/admin/balanceGET /treasury/admin/transactionsGET /treasury/admin/contract-infoGET /treasury/admin/treasury-infoGET /treasury/admin/top-spendersGET|POST /treasury/admin/notificationsPOST /treasury/admin/notifications/test
Wallet Dashboard and Provisioning
UI routes:
/wallet-dashboard//institution-config/
Provisioning token application (current flow):
POST /institution-config/apply-provider-tokenPOST /institution-config/apply-consumer-token
Note:
/onboarding/token/**is currently protected in filters/CORS, but there is no public controller endpoint in this repository version.
Configuration Quick Reference
Contract/RPC:
CONTRACT_ADDRESS,ETHEREUM_MAINNET_RPC_URL,ETHEREUM_SEPOLIA_RPC_URL,BLOCKCHAIN_NETWORK_ACTIVEWallet persistence:
wallet.persistence.file.path,wallet.config.encryption-key,wallet.config.encryption-key-fileAccess control:
security.allow-private-networks,security.access-token,security.access-token.required
Last updated