Skip to main content

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
Keep mining separate from ordinary payment sends and long-lived bond storage.

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
  • Resume starts new cycle submits again
  • when locked and pending capital are both clear, the page returns to Ready
If the user funds more capital while clearing, the target can be saved, but the runtime still waits for 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
Read the Mining page like this: 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:
  1. keep wallet SOL above reserve
  2. keep target max below realistic free capital
  3. leave enough free capital for missed-cycle and recovery work
  4. scale after several settled and claimed cycles, not after one successful submit
Shared cycle accounts are not paid by the miner wallet directly. They are paid from the protocol registry reserve. The miner still pays signer fees and miner state costs, and miner capital pays erosion after a valid reveal is distributed. An entropy-unavailable cycle unwinds without erosion or non-reveal penalty. For common operator symptoms, see Mining troubleshooting.

Strategy presets

Recommended first stable mode:
Move strategy execution to 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
Fased strategy compiler modes now sit above the same protocol vector: Top-K Sparse Choose only the strongest K buckets. Set the rest to zero or a tiny floor. Ranked Allocation Output ranked preferences, then convert rank into weights. Adaptive Agent Allocation Review history, rebates, net SOL cost, missed cycles, crowding exposure, preset, and result before changing mode. Crowd-Aware Allocation Use settled historical crowd distributions to forecast crowding risk and keep broader tail exposure. Current-cycle allocations remain hidden through commit close. They become public only during reveal, after every commitment is fixed, so this mode cannot copy another miner’s current allocation. Safe Fallback Use deterministic balanced preset if planner, model, signer, or RPC checks fail. These are strategy intents, not protocol changes. Each mode still compiles to one valid dense 25-bucket allocation vector before sat.commitCycle; Fased stores the private allocation and nonce locally, then submits them through sat.revealCycle after commits close. Example compiler path:
The useful status fields are:
  • lastStrategyDecision
  • lastPlannerDecision
  • plannerMemorySummary
  • plannerRegimeBuckets
  • deterministicBaseline
  • plannerPolicySummary
  • plannerLiveValidation
Read these as diagnostics, not promises. A better-looking planner run or a larger active commit can still perform worse after fees, crowding, erosion, failed settlement, or missed claim.

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:
  1. assign equal submitted commit targets;
  2. assign different strategies to different miners;
  3. rotate strategies across wallets to avoid wallet/funding bias;
  4. record actual submitted commit, SAT earned, deterministic rebate, performance rebate, net SOL cost, score versus benchmark, and fallback reason;
  5. 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
This claim policy is miner-side. Protocol treasury and SAT distributor lanes use separate maintenance instructions and are outside the Mining page claim flow. Claim does not unlock committed capital. Distribute unlocks committed capital first; claim then collects Satcoin and rebate after the cycle is settled. The mint path caps one claim instruction at 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:
  • claimableSatRaw
  • claimableSatDisplay
  • lastClaimAccountedSatRaw
  • lastClaimTransferredSatRaw
  • lastClaimSolRebateLamports
  • lastClaimFeeLamports
If claim fails with an already-closed or invalid-owner style error, the runtime may record it as a no-op when the cycle was already claimed and closed.
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
  • currentKeeperBountyPaidLamports
  • currentKeeperBountyUnpaidLamports
Those metrics are what tell an operator whether the runtime is healthy before they increase commit.

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
Sweep modes: Important fields:
  • automation.satSweep.enabled
  • automation.satSweep.destinationWalletId
  • automation.satSweep.destinationAddress
  • automation.satSweep.mode
  • automation.satSweep.percentage
  • automation.satSweep.minRaw
  • automation.satSweep.keepRaw
Use raw SAT units only when you know the decimal scale. SAT uses 11 decimals.

Workers

The mining runtime reports worker state so you can tell the difference between waiting, retrying, and failing. Useful worker fields:
  • enabled
  • running
  • waitingReason
  • nextScheduledAt
  • lastRunAt
  • lastSuccessAt
  • lastFailureAt
  • lastError
  • lastSelectedCycleId
  • lastSelectedStage
  • lastSkipReason
If a worker is waiting, read the waiting reason before treating it as blocked.

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
Use the selected recovery candidate when available. It carries the cycle or legacy epoch values the runtime thinks are relevant.

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
Good scaling rule:
  1. run deterministic balanced
  2. collect enough settled history
  3. compare net live cost, not only Satcoin earned
  4. try one change at a time
  5. scale commit only after claim and recovery stay clean

Advanced config example

Use the UI or CLI for normal changes. Edit config directly only when you are operating a known server profile and can restart cleanly.

Advanced runbook

For a stable VPS miner:
  1. keep the Gateway private through SSH or Tailscale
  2. use a dedicated local-socket-signer mining wallet
  3. keep the wallet above fee reserve
  4. keep capital and active commit separate in your head
  5. start with balanced and deterministic
  6. let several cycles settle and claim
  7. inspect history windows before changing strategy
  8. prove automatic claim before calling the miner unattended
  9. sweep excess Satcoin out of the working wallet
  10. move Satcoin intended for bond into the selected bond Vault deliberately