Advanced Satcoin mining
Advanced mining is about keeping the loop stable while you tune capital posture, strategy, claim, sweep, and recovery. Start here after the singleton Mining wallet is configured, funded, initialized, and already completing small cycles.Operator model
Read it like this:- wallet SOL pays transaction fees and keeps the signer alive
- wallet SOL also pays miner-cycle account rent and claim ATA rent when needed
- miner capital is the SOL pool used by the Satcoin program
- target max is the user’s saved upper limit for later
- safe commit is the amount the runtime can safely submit right now
- active commit is the amount stored in the miner capital PDA
- committed capital plus worst-case reveal collateral is locked until the cycle resolves
- a valid reveal pays normal erosion during distribution; an avoidable missed reveal pays the larger
1%non-reveal penalty - the planner decides whether and how to submit
- settlement must finish before claim is meaningful
- claim mints Satcoin and accounts for SOL rebate
- sweep is optional post-claim wallet hygiene
Cycle loop
Satcoin mining is cycle-native. A cycle is the five-minute participation window that the runtime reads, submits into, settles, and later claims from. The Control UI and CLI show this as:- current cycle
- latest submitted cycle
- latest settled cycle
- pending cycle ids
- exact pending stage and reason
- recent actions
- recent failures
- worker state
Stop stops new cycle submits. Claim and recovery can keep running so capital
already tied to submitted or pending cycles can settle, claim, close, and
become withdrawable.
When Stop finds locked capital, the page enters Clearing.
Clearing means:
- no new cycle submits are allowed
- claim and recovery workers can still run
- locked capital can return to free capital as settlement and claim complete
Resumestarts new cycle submits again- when locked and pending capital are both clear, the page returns to
Ready
Resume before submitting new cycles. If Target max
is above Safe commit, the target stays saved for later and the next active
update uses the current safe value.
Capital safety
There are two SOL pools. Wallet SOL Pays fees, rent, and signer-side transaction costs. Keep enough wallet SOL outside miner capital so the wallet can still submit and claim. Miner capital Protocol capital account used for cycle commit. Keep target commit below the whole funded balance so recovery and missed-cycle work still have room. Current runtime defaults:0.25 SOL is the minimum eligible commit, not a recommended always-on mining
balance. A miner also needs reveal collateral and separate wallet SOL for rent
and transaction fees. Start with additional reserve, read the estimated runway,
and reduce cadence before increasing capital.
Economy cadence controls entry into new cycles only:
Existing commitments always continue through reveal, entropy, settlement, and
claim even when cadence skips the next cycle. The Mining page runway estimate
uses current capital, commit, normal erosion, and cadence; network fees remain a
separate cost.
The runtime computes safe spend from:
- wallet balance
- signer reserve
- fee buffer
- funded capital
- free capital
- locked capital
- target max
- safe commit
- active commit
- minimum entry
- erosion and recovery buffer
Target changes save in Fased Agent.
Update sends the transaction that changes
active commit on-chain. If locked capital makes the target too high right now,
the update uses safe commit and leaves the target available for later.
Commit-reduction messages live in Mining activity/history. The current-cycle
card keeps the cycle number plain; read Your commit, SOL in cycle, locked
capital, and fee reserve together before deciding that a low submitted commit is
a failure.
Example:
This is healthy if the older cycle is still settling. The full target can be
used after enough capital is free from settlement and claim.
Good posture:
- keep wallet SOL above reserve
- keep target max below realistic free capital
- leave enough free capital for missed-cycle and recovery work
- scale after several settled and claimed cycles, not after one successful submit
Strategy presets
Recommended first stable mode:
auto only after deterministic mining is stable.
For launch canaries, unattended mode means deterministic mining plus automatic
claim stays stable across cycles.
Keep first runs on automatic miner claim unless you are deliberately testing an
advanced profile. prompt and manual are profile values for review or
recovery-oriented setups; they are not a separate protocol claim path.
Execution modes
Auto mode does not make mining uncontrolled. It changes how the next strategy
path is selected; the Mining wallet, signer policy, reserve checks, active
commit, cycle commit/reveal, settlement, and claim rules still apply.
A strategy-only mining task is narrower than full Auto mining. It may read mining
status/history and update strategy fields, but it must not change active commit,
target max, capital, funding, withdraw, claim mode, or sweep policy. In task
logs, “no wallet source” means the isolated task did not load the generic wallet
tool/source; it does not mean the Mining wallet is unused by the runtime.
The strategy planner competes on allocation quality. It can review mining
status and history, choose a preset or execution mode, and in advanced paths
prepare a dense 25-bucket allocation vector. The Satcoin program then scores
that allocation against the cycle benchmark and crowding model.
Auto mode can include:
- model-guided strategy if skill config is enabled
- rule planner snapshots
- UCB or Thompson policy evaluation when configured
- fallback to base strategy on latency, model, signer, or planning failure
sat.commitCycle; Fased
stores the private allocation and nonce locally, then submits them through
sat.revealCycle after commits close.
Example compiler path:
lastStrategyDecisionlastPlannerDecisionplannerMemorySummaryplannerRegimeBucketsdeterministicBaselineplannerPolicySummaryplannerLiveValidation
Proving a strategy helps
A one-miner run proves runtime wiring only. It shows that the selected strategy compiled into a valid 25-bucket vector, submitted, settled, claimed, and recorded. It does not prove the strategy is better. Strategy quality is competitive. The on-chain program converts each miner’s full placement return into a capital-weighted reward value. This keeps wallet splitting neutral while still rewarding better allocation. To prove a strategy helps, run several miners through the same cycles:- assign equal submitted commit targets;
- assign different strategies to different miners;
- rotate strategies across wallets to avoid wallet/funding bias;
- record actual submitted commit, SAT earned, deterministic rebate, performance rebate, net SOL cost, score versus benchmark, and fallback reason;
- compare after many settled cycles, not one cycle.
Skill is the model/agent source inside auto, not a separate protocol mode.
It can inspect status/history and propose or submit a strategy choice, but the
protocol still scores the final allocation on-chain. Use Agent Tasks to run
periodic strategy review with explicit limits before enabling automatic changes.
For a safe scheduled strategy review, the expected task scope is mining-only:
allowedSkills=["mining"], memoryScope=none, mining source only, no generic
wallet source, no web-search source, and no capital mutation. The live regression
for this mode verifies that saved target commit and live active commit stay
unchanged while the strategy profile changes.
Claim policy
Claim mode is an advanced miner-profile setting for how ready miner claims are handled after cycles settle. The normal Mining page path keeps miner claim automatic once the runtime is stable.
Claim does two things:
- mints earned Satcoin into the miner token account
- accounts SOL rebate back into miner capital
10,000 SAT. Fased automatically
submits bounded claim chunks and leaves the cycle pending until its full
claimable amount is confirmed. A successful first chunk is not treated as a
fully claimed cycle.
Watch:
claimableSatRawclaimableSatDisplaylastClaimAccountedSatRawlastClaimTransferredSatRawlastClaimSolRebateLamportslastClaimFeeLamports
Large distribution pages and lookup tables
Large distribution pages and lookup tables
A distribution chunk with 16 or more miners needs a v0 transaction. This path
is fail-closed and runs only with
FASED_SAT_ENABLE_ALT_V0=1 plus the exact
native Mining policy grants documented in Self-hosted wallet
signer.
The default Mining template omits those grants.Fased creates or extends one signer-owned lookup table per cycle/page through
separate durable signer operations, waits until the table is active in a
later slot, and then submits the exact typed distributeCyclePage intent. The
table address survives Gateway restarts. Use
sat.cleanupDistributionLookupTable to deactivate it; close is allowed only
after Solana’s cooldown. Ambiguous broadcasts keep the same request id and
are never blindly retried. The native signer requires two reachable execution
RPC URLs on distinct origins and compares the complete lookup-table account
bytes before compiling numeric indexes. A missing provider, duplicate origin,
or any account disagreement blocks the operation.Keeper economics
Submitted miners can be selected for shared settlement work. The signer pays the transaction fee for the work it sends. When the cycle performance rebate lane can fund it, keeper bounty is credited back into the keeper’s miner capital. It is not paid from a human treasury wallet. Scale hardening should focus on better visibility and headless operation:- settlement lag
- failed keeper steps
- keeper wins and misses
- claim backlog count
- oldest pending claim
- RPC timeout and rate-limit counters
- resolved account cleanup queue
currentKeeperBountyPaidLamportscurrentKeeperBountyUnpaidLamports
Sweep policy
Sweep is wallet hygiene after claim. It should not be confused with claim itself. Satcoin sweep can target:- another runtime wallet id
- an external Solana address
Important fields:
automation.satSweep.enabledautomation.satSweep.destinationWalletIdautomation.satSweep.destinationAddressautomation.satSweep.modeautomation.satSweep.percentageautomation.satSweep.minRawautomation.satSweep.keepRaw
11 decimals.
Workers
The mining runtime reports worker state so you can tell the difference between waiting, retrying, and failing.
Useful worker fields:
enabledrunningwaitingReasonnextScheduledAtlastRunAtlastSuccessAtlastFailureAtlastErrorlastSelectedCycleIdlastSelectedStagelastSkipReason
Recovery
Recovery is for blocked state. Common readings:
Recovery actions may include:
- retry claim
- resolve dispute
- republish roots
- export support bundle
- clear local history after you know the local record is stale
History review
History is the truth surface for whether a mining setup is improving. Review:- committed SOL
- Satcoin earned
- rebate
- transaction fees
- net live cost
- valid participation
- participant count
- page count
- crowding ratio
- strategy preset
- execution mode
- fallback use
- run deterministic balanced
- collect enough settled history
- compare net live cost, not only Satcoin earned
- try one change at a time
- scale commit only after claim and recovery stay clean
Advanced config example
Advanced runbook
For a stable VPS miner:- keep the Gateway private through SSH or Tailscale
- use a dedicated
local-socket-signermining wallet - keep the wallet above fee reserve
- keep capital and active commit separate in your head
- start with
balancedanddeterministic - let several cycles settle and claim
- inspect history windows before changing strategy
- prove automatic claim before calling the miner unattended
- sweep excess Satcoin out of the working wallet
- move Satcoin intended for bond into the selected bond Vault deliberately