Satcoin mining API and protocol
This is the technical map for Satcoin (SAT) mining inside Fased Agent. Use it to understand how the Control UI, CLI, plugin gateway methods, and Satcoin program instructions line up. This page describes how Fased Agent connects to Satcoin mining v1, the current agent-operated mining protocol implementation. Use the official Satcoin docs to verify current program addresses, manifest hashes, IDL hashes, launch proof, and public protocol status. Use this page to understand how Fased Agent connects Satcoin mining to wallets, Gateway, CLI, and the Mining page.Stack map
The public operator surfaces are the Mining page andfased mining.
The internal integration surface is the sat.* gateway method family
registered by the sat-mining plugin.
Runtime IDs
Pre-launch Fased Agent releases do not ship active Satcoin mainnet IDs. Mainnet IDs are written only after Mining Sync verifies the signed Satcoin mainnet manifest.Constants
Control UI routes
The browser Mining page talks to Gateway HTTP routes. These routes require the normal Control UI auth and wallet approval gates where applicable.
Some recovery route names still carry legacy
epoch wording because the
surrounding UI used that name before the current cycle-native protocol was
finalized. New protocol language should use cycle where possible.
CLI surface
fased mining calls gateway methods through the normal Gateway RPC client. The
Mining page and chat @mining control use the same runtime methods. The
documented operator command is the installed fased mining ... binary. If the
command is missing from a source checkout, run ./install.sh --no-onboard once
to install the repo-backed CLI.
fased mining status
Gateway method: sat.getMiningStatus. Shows live status, workers, capital,
planner, and action summary.
fased mining readiness
Gateway method: sat.getMiningReadiness. Checks wallet, signer, RPC, funding,
miner init, and ATAs.
fased mining wallets
Gateway method: sat.listMiningWallets. Lists mining-eligible local wallets.
fased mining start
Gateway method: sat.startMining. Waits for final result and validates
running=true.
fased mining stop
Gateway method: sat.stopMining. Waits for final result and reports drain mode
separately.
fased mining history
Gateway method: sat.getMiningHistory. Shows history and activity windows.
fased mining deposit-capital
Gateway method: sat.depositMinerCapital. Deposits SOL into miner capital.
fased mining withdraw-capital
Gateway method: sat.withdrawMinerCapital. Withdraws free miner capital.
fased mining set-commit
Gateway method: sat.setActiveCommit. Updates active commit amount.
fased mining claim-backlog
Gateway method: sat.claimBacklog. Claims the oldest ready backlog batch.
fased mining keeper run
Gateway method: sat.runKeeperOnce. Runs one keeper/cranker tick.
fased mining cleanup resolved
Gateway method: sat.closeResolvedCycleAccounts. Closes resolved cycle accounts
for one cycle.
CLI start and stop do not rely on a submitted request alone. start prints
success only when the final Gateway payload says mining started and the returned
status is running. stop prints a hard stopped message only when status is not
running; if locked capital or pending cycles remain, the CLI reports drain mode.
Gateway methods
Profile and wallet methods
Capital methods
Cycle methods
The runtime carries commit, close, reveal, entropy, and settlement through the normal
Start/Stop workflow and persists the private nonce/allocation before submission
so a Gateway restart can resume safely. The legacy
sat.submitCycle public-
allocation path is retired and returns an error. A normal missed reveal receives
no allocation score, pays 1% of committed capital into the fixed treasury lane,
and then releases the remaining committed capital. An entropy-unavailable cycle
is different: it unlocks without penalty and issues zero SAT.
The entropy target is fixed when the cycle opens. Commitments close, miners
reveal without knowing the outcome, and only then can the program seal entropy
from the first eight produced slots at or after the target. Entropy does not
re-roll. If retained SlotHashes can no longer prove that ordered set, the cycle
becomes entropy-unavailable: commitments unlock without erosion, no late reveal
is accepted, the empty cycle aborts, and zero SAT is issued.
Cycle issuance uses a fixed nominal ceiling for the active schedule year. Empty,
under-filled, cancelled, or missed cycles do not increase a later cycle’s cap.
Unissued SAT remains under the 21,000,000 SAT hard cap and may extend the
bounded year-ten rate beyond year ten; it never becomes a catch-up jackpot.
One mint claim is bounded to 10,000 SAT. Fased repeats claim chunks until the
cycle is fully claimed and keeps partial claims in the recovery queue. Miner
distribution rounding dust is assigned to the fixed treasury lane so global
issuance and account balances stay reconcilable.
Recovery and dispute methods
Protocol lane methods
Treasury and distributor recipients are fixed by the approved genesis profile
when the protocol is initialized; Fased does not expose a recipient mutation
method. The remaining methods are protocol maintenance operations, not normal miner day-to-day
actions, and they are not shown on the Mining page. Launch operators run them
from internal maintenance tooling.
The bounded model is permissionless: any caller may pay the transaction fee, but
the program fixes recipients and caps the action. Reserve refill can only target
sat_registry_reserve and only up to the configured shortfall. Treasury, SAT
distributor claims use fixed protocol recipients, so a random caller cannot
redirect protocol funds.
Bond-staking roadmap boundary
Miner auto-claim only claims that miner’s own cycle SAT and rebates. It does not claim protocol treasury, SAT distributor, or other miners’ SAT. The bond distributor consumes the existing SAT distributor lane without coupling bond logic into mining settlement:- split SAT claim pulls pending distributor SAT to the bond distributor vault
- eligible bonds can share SAT from the distributor by index accounting
- each bond owner still claims their own synced SAT amount
Scale improvement roadmap
The current keeper and auto-claim loop is the launch baseline. The runtime now has the operator controls needed to rehearse scale deliberately before raising any defaults:Larger claim batches
automation.claimBatchCycles defaults to 5 and is capped at 16.
Benchmark 5, 8, 10, 12, and 16 before raising the default.Delayed-claim recovery
Persist backlog status, claim oldest ready cycles first, and expose
fased mining claim-backlog.Public keeper tooling
Expose
fased mining keeper run for one headless keeper/cranker tick by an
eligible miner wallet.RPC hardening
Support primary/backup RPC, show timeout/rate-limit counters, and separate
read/submit paths where useful.
Account cleanup
Expose
fased mining cleanup resolved --cycle <id> first. Add broad
scanners only after delayed claims are proven.Metrics
Show settlement lag, claim backlog, failed keeper steps, keeper wins/misses,
reserve health, and cleanup queue size.
Config fields
The plugin config lives underplugins.entries["sat-mining"].config.
enabled
Whether the runtime wants mining enabled.
network
local, devnet, or mainnet-beta.
walletId
Active mining wallet id.
role
miner, validator, or admin.
riskMode
Legacy risk name: conservative, balanced, aggressive, or swarm.
strategyPreset
Current preset: spread, balanced, conviction, swarm, top_k, ranked,
adaptive, crowd_aware, or safe_fallback.
strategyExecution
deterministic or auto.
strategyMode
Legacy mode: base or skill.
commitLamports
Configured active commit in lamports.
cycleCadence
Entry schedule for new cycles: 1, 2, 6, or 12. Existing commitments
always reveal and settle. 0.25 SOL remains minimum eligibility rather than a
recommended continuous balance.
minSolBalanceLamports
Wallet reserve target.
claimMode
auto, prompt, or manual.
skillConfig
Model or skill-backed strategy planning options.
automation.autoFinalizeEpoch
Automatic settlement-finalize helper.
automation.autoClaim
Automatic claim helper.
automation.claimBatchCycles
Hidden claim backlog batch cap; defaults to 5, capped at 16.
automation.satSweep
Post-claim sweep policy.
tokenConfig
SAT program, bond program, mint, and mint program overrides.
plannerConfig
UCB or Thompson planner policy options.
federationHandle
Optional Fased Network handle context.
federationPeers
Optional coordination peer list.
coordinationGroup
Optional coordination group label.
claimMode is a runtime profile value. The beginner Mining page should not be
read as promising a separate manual protocol claim product. Normal stable mining
uses automatic miner claim; prompt and manual are advanced review or
recovery profile settings when exposed by the active install.
State layout
Common PDA seed families:sat_global_statesat_cycle_statesat_cycle_registry_metasat_cycle_registry_pagesat_cycle_settlement_progress_v2sat_miner_cycle_statesat_miner_capital_statesat_treasury_statesat_registry_reservesat_rebate_vaultsat_treasury_vaultsat_bond_positionsat_bond_tier_policy
Authority and PDA notes
PDAs do not have private key files. The program signs for them by seed when an instruction path allows it. Satcoin authority surfaces:
The miner runtime does not hold admin keys. It uses the singleton
@wallet:mining wallet for operator actions and reads the configured program
ids, mint address, mint program id, bond program id, network, and RPC.
Cost and account flow
Satcoin mining has three separate SOL concepts:
Per-cycle flow:
- the miner wallet pays commit, reveal, claim, and recovery transaction fees
- the miner wallet pays miner-cycle PDA rent when it first commits to that cycle
- keepers pay close, settlement, score, and distribution transaction fees; eligible steps may earn a bounded keeper bounty
- active commit plus worst-case reveal collateral is locked until the commitment resolves
- normal erosion is charged only for valid revealed participation during distribution
- an avoidable missed reveal pays the
1%penalty; entropy-unavailable cycles refund without penalty - keeper bounty comes from the performance rebate lane when the cycle can fund it
- claim mints Satcoin to the miner ATA and moves SOL rebate back into miner capital
Integration rules
- Use the CLI or Control UI for operator actions.
- Use
sat.*gateway methods for internal automation. - Use the Satcoin IDL and program account layouts as source of truth for raw wire integration.
- Keep wallet SOL, miner capital, claimed Satcoin, and bond Satcoin separate.
- Treat legacy
epochnames as compatibility names around recovery helpers, not the current protocol vocabulary. - Prefer
local-socket-signerfor unattended Satcoin mining. - Do not bypass wallet approval gates for capital, sweep, or policy changes.