Wallet operations and security
This is the full operator guide for wallets in Fased. Use it as the contract between:- onboarding and CLI setup
- the self-hosted signer
- Wallets UI behavior
- mining and Fased Network use of wallets
- policy, approval, and security controls
The short version
The recommended public wallet model is:- one or more Agent wallets, with one primary fallback
- one mining wallet
- one or more Vault wallets
- optional Fased Network bond assignment to a Vault wallet
- one offline reserve outside the runtime
- self-hosted signer
- passkey approval
- split-key where needed
- Vault custody unlock until manual lock, or short timed unlock when preferred
- Agent automation stop/resume for emergency pause
- deliberate sweeps
1. Onboarding and first setup
The normal public flow is:- create or import the wallet during onboarding or
fased wallet setup - configure chain RPC
- let the runtime register the wallet
- verify signer health
- assign Agent, mining, Vault, and optional Fased Network bond usage intentionally
- never let the import step become your only backup of the key material
2. Self-hosted signer model
The public self-hosted path is:- provider id
local-socket-signer - native signer
fased-signerd - explicit RPC for the relevant chain
3. Funding and working balances
Runtime wallets are working wallets, not treasury wallets. Good operating posture:- Agent wallets hold everyday working capital for approved agent actions
- mining wallet holds enough SOL for fees, reserve, capital staging, and short-lived Satcoin
- Vault wallet stays manual-first and can hold Satcoin you intentionally want to lock or prove with
- offline reserve stays outside the runtime
- every Solana working wallet needs SOL for fees
- every runtime wallet should stay intentionally small
4. Role split today
The operator model in the product is:agentuser-facing Agent wallets. Multiple wallets may carry this role; one can be primary for fallback.miningSatcoin capital, claim, and sweep pathvaultmanual-first hot or warm reserve use; Fased Network bond can be assigned to a Vault wallet
- wallet purpose is stored as Agent, Mining, or Vault
- new policy, custody, and signer status records use
agent,vault, ormining - risky chat and skill actions must use explicit
@wallet:<walletId>handles or structuredwalletId; display names are not execution authority - Agent wallets are the automation path; Vault wallets are manual-only and use reviewed Wallets page approval
- Mining wallets should not be repurposed; create a new Agent or Vault wallet when the purpose changes
5. Wallet policy profiles
The runtime supports policy profiles such as:manual-ownerrecommended starting point for human-reviewed operationautonomous-strictnarrow automation posture with tighter limitsautonomous-moderatebroader automation posture with deliberate guardrails
- these are wallet send guardrails
- they do not replace mining reserve, bond rules, or custody state
6. Wallet actions
Agent wallets are the wallets for reviewed chat, skill, plugin, scheduled, and optional advanced wallet actions. Mining wallets are rejected for generic sends, advanced wallet actions, and recurring wallet-action flows because they use the SAT mining and SAT sweep policy. Vault wallets are rejected for chat, skill, plugin, and scheduled task sends because they are manual-only reviewed Wallets page sources. Supported Solana action classes, when enabled and allowed by policy:- native SOL and SPL sends through reviewed wallet requests
- route quotes and optional route actions through the Fased wallet wrapper
- token route actions only when policy allows that asset and route
- disabled recurring plans that the operator can review before enabling
- saved recurring Agent native/SPL transfer policy shared by chat and Wallets UI
- optional trigger-order create, history, and cancel/reclaim when configured
- use explicit handles such as
@wallet:agent - display names are hints only
- Caps defaults Off on fresh wallets; turn it On when you want limit enforcement
- SOL and SPL token rows are separate when Caps is On
- route program allowlists can restrict inspected route adapters
- live trigger orders can deposit input funds into a third-party route vault until fill, expiry, or cancellation/reclaim
7. Approval flow
The ordinary user send path is:- create a send request
- review the pending request
- approve it
- complete passkey approval if enabled
- let the runtime execute and log the send
Approval details and audit records
Fased simulates the policy decision before approval, records an approval diff on the pending request, and writes an audit record. The approval review should answer:- source wallet role and handle
- destination address or local wallet handle
- chain and token/mint
- requested amount and fee estimate when the selected chain/provider exposes one
- trigger source: UI, chat, channel, task, skill, plugin, or mining runtime
- Agent id and session/task id when available
- skill id and Wallet > Skill Grant when the request came from a skill
- cap state: per-transaction cap, daily cap, and already-spent amount
- custody state: locked, unlocked, passkey required, or approval token required
- final policy result: allowed, pending manual approval, or rejected
- run/history id for audit visibility
Roadmap: policy presets
Wallet policy should stay editable, but normal operators should be able to start from one-click presets in Wallets > Access. Preset meanings:| Preset | Meaning |
|---|---|
| Read-only | Balance/status only. No sends, route actions, mining changes, scheduled wallet work, or signing. |
| Manual only | Wallets UI reviewed requests only. No chat/task/skill automation. |
| Small Agent spend | Agent wallet can perform small approved work under low caps and narrow destinations/routes. |
| Mining only | Mining wallet can perform SAT mining and sweep paths only. No generic wallet actions. |
| Skill limited | Reviewed wallet-capable skills can use only selected Agent wallets/actions/caps. |
| Advanced wallet actions | Agent wallet can use inspected route-action adapters with explicit caps and route checks. |
Roadmap: secret proxy boundary
Fased supports SecretRef and focused Services/Skills setup. The runtime also has a secret-proxy primitive for service/tool code: resolve a SecretRef inside a bounded provider call, return only sanitized results, and fail if the call tries to echo the raw secret back out. This is a lower-level boundary, not a reason to paste keys into prompts. Keep secrets in Agent > Services, Agent > Skills config, environment-backed SecretRefs, or Advanced Config only when no friendly page exists. Do not paste provider API keys into chat or skill instructions.8. Passkey and split-key custody
Recommended order:- enable Wallet Control Passkey
- enroll at least one passkey
- keep Agent automation controlled by caps and use
Stopwhen automation should pause - enable split-key on Vault wallets that should require custody unlock
- keep Vault wallets locked when idle, or unlock until you manually lock them again
Stop is an automation control, not a custody lock.
For the detailed walkthroughs, see:
9. Sweep discipline
Sweeps are part of healthy wallet hygiene. Good rules:- keep Agent wallet near working-capital size
- keep mining wallet small except when staging capital or claims
- keep the bond Vault narrow to intentional bond-related Satcoin
- move excess value out on purpose
- destination runtime wallet id or external Solana address
allorpercentage- minimum threshold
- keep-after-sweep balance
wallet_action.schedule_send to
create disabled Task templates and, when requested, save the same wallet-scoped
recurring transfer policy shown in Wallets UI. They still run through normal
Auto, enabled caps, custody, signer, and audit checks on every execution. Vault
wallets remain manual-only.
Automated Satcoin post-claim sweeps remain a Mining-specific policy.
9. Production checklist
Treat the wallet stack as ready for serious operation only when all of these are true:- signer health is healthy
- RPC is healthy
- the expected wallets appear in Wallet
- addresses and balances resolve correctly
- send approval works
- passkey is enrolled if you plan to use secured flows
- restart preserves wallet availability
- Agent, mining, and bond separation is intentional
- working balances are intentionally small
- sweep discipline exists and is reviewed
10. What this page does not claim
This page describes the current operator contract. It does not claim:- that one wallet should be reused across all economic roles
- that passkey alone means complete at-rest protection
- that every future plugin automation path is already public or stable