Wallet selection contract
This page defines how Fased chooses a wallet for:- skills
- plugins
- automation
- mining-adjacent runtime actions
1. Provider versus wallet
local-socket-signer is a provider id, not a wallet name.
That distinction matters:
- provider id tells the runtime which signing backend is responsible
- wallet id tells the runtime which wallet entry to use
local-socket-signer is the main signer-backed provider.
2. Selection precedence
Read-only wallet routing resolves in this order:- exact
walletId walletNameplusproviderIdwhen needed to disambiguate- explicit agent assignment
- primary Agent wallet
walletName is ambiguous and the request does not supply a stronger selector, the runtime should fail.
Risky chat, skill, plugin, and automation actions are stricter:
- explicit
walletHandlesuch as@wallet:agent - structured
walletId - primary Agent wallet
walletName is display-only and cannot authorize execution.
Mining and Vault wallets are rejected for generic chat, skill, plugin, and scheduled task
send or route actions. Agent wallets are the execution path for those flows.
Vault wallets stay reviewed/manual through the Wallets page.
Multiple Agent wallets are allowed. The primary Agent wallet is only the fallback. Exact handles such as @wallet:agent or @wallet:agent-2 select a specific Agent wallet.
New wallets should not become risky Agent wallets by accident. Onboarding and CLI creation mark the purpose. Existing wallet purpose should be treated as permanent for normal operator use.
3. Recommended caller fields
Preferred:walletHandlefor risky chat/skill/plugin actionswalletId
walletNameproviderId
chain
- use
@wallet:<walletId>in prompts and skill instructions - use structured
walletIdin API/tool payloads - use
walletNamefor display only
4. Examples
Status by wallet id
Balance by wallet name plus provider
Send with explicit Agent wallet handle
@wallet:<walletId> handle.
@wallet:vault is valid as a destination. It is not valid as a chat, skill,
plugin, or scheduled task source wallet.
Advanced or scheduled wallet action
Use thewallet_action tool for quotes, optional route actions, scheduled
planning, scheduled native/SPL transfer templates, and trigger-order actions:
"mode": "manual" when the user wants a review-only request. Custom or
installed skills need explicit walletActions config before wallet actions are
allowed.
When Caps is On, SOL and SPL assets use separate cap rows. SOL caps never apply
to SPL tokens.
For recurring native/SPL sends, wallet_action.schedule_send can save the same
Agent-wallet recurring transfer policy that the Wallets page edits. Mining
wallets do not accept this generic policy because their automated movement is
the Mining SAT sweep policy. Vault wallets do not accept it because they are
manual-only.
In the Wallets page, open the Agent wallet Policy section, then open Caps.
SOL and token rows are edited in the same table. You can search by symbol/name
to fill metadata, but ambiguous results must be resolved by exact mint. The
saved policy is mint-keyed; token symbols and names are display hints only.
allowPrograms restricts inspected route programs when it is non-empty. Leave
it empty to allow inspected routes, or list exact route program ids to make
route actions fail closed outside those routes.
Trigger order with explicit Agent wallet handle
Live trigger orders require the configured route-action adapter on the host. The current Solana adapter is configured through the Jupiter Trigger setting. Enable it from onboarding withWallet setup action -> Limit orders, or from CLI:
Mining-adjacent wallet call
5. Multi-wallet signer mappings
When a deployment uses multiple self-hosted wallets behind the local signer, the runtime expects per-wallet mappings for keystore and RPC configuration. Example pattern for walletagent:
FASED_WALLET_SOLANA_KEYSTORE_PATH__AGENTFASED_WALLET_SOLANA_RPC_URL__AGENT
mining:
FASED_WALLET_SOLANA_KEYSTORE_PATH__MININGFASED_WALLET_SOLANA_RPC_URL__MINING
6. Policy and source controls
Wallet routing does not bypass policy. Final access still depends on runtime controls such as:- tool-access mode
- allowed agents
- allowed skills
- allowed sources
- per-wallet policy limits
- choose the wallet deterministically
- enforce whether the caller is allowed to use it
<workspace>/skills/<id>/.clawhub/origin.json
and rejects wallet actions unless the recorded registry is allowlisted. Local
owner chat is separate; this gate is for skill-initiated wallet tool use.
Mining and Vault wallet roles are still rejected for custom or catalog-installed skills;
only the built-in Satcoin mining runtime and bundled SAT mining skill operate
through the Mining wallet path.
7. Practical guidance
For production operator setups:- give each economic role a dedicated wallet id
- never rely on display name alone in automation
- keep Agent, mining, and vault separated
- select the bond Vault explicitly through Fased Network config instead of guessing from default wallet state
- fail closed on ambiguity