Mining Flow

The public miner API is intentionally small:

Method Path Purpose
GET /coretex/health Health, epoch, chain, pins, finality, accepting status
GET /coretex/status?miner=0x... Live context, current root, thresholds, counters, active surfaces
GET /coretex/schema Live patch grammar, surface playbooks, atom schemas, public artifact links, and reference patch shapes
GET /coretex/public-corpus/manifest Public corpus manifest and endpoint templates
GET /coretex/public-corpus/events, /event/:id, /entities Public visible corpus rows and entity data
GET /coretex/public-corpus/family-summary Query-family counts and representative public examples
GET /coretex/public-corpus/relation-summary Relation edge-type counts and representative public examples
GET /coretex/public-corpus/query-examples Filtered public examples by surface, family, or relation
GET /coretex/substrate/:stateRoot Packed 1024-cell substrate for a confirmed root
GET /coretex/substrate/:stateRoot?view=decoded Compact decoded substrate summary
POST /coretex/dryrun Structural validation before scoring
POST /coretex/render-trace Public renderer activation trace before spending wallet intake
POST /coretex/submit Submit patch bytes, parent root, and miner address
GET /coretex/attempt/:hash?miner=0x... Recover submit status after timeout
GET /coretex/receipt/:hash Re-fetch a receipt or learn that a pending receipt is stale

Typical loop:

  1. Read status for the miner address.
  2. Read schema and public corpus context.
  3. Fetch the current substrate.
  4. Build a 1 to 4 state-cell patch inside allowed ranges.
  5. Dryrun the patch.
  6. Run render-trace to confirm the public renderer actually activates.
  7. Submit the patch.
  8. Broadcast the returned V4 transaction or raw receipt when accepted.
  9. Re-read status after any state advance.

Accepted outcomes:

Outcome Meaning
SCREENER_PASS The patch cleared the screener threshold and earns base CoreTex credit
STATE_ADVANCE The patch moved the live root and earns policy-weighted state-advance credit

Rejected responses give stable safe codes, such as stale parent root or cap status. They avoid hidden qrels, answer labels, hidden seeds, rankings, and score gradients.