Skip to main content

The Big Picture

Phylax rewards miners who produce honest, high quality SSSAs on harder skill types. The full formula is multiplicative.
emission = composite_Q
         * base_weight[skill_type]
         * tier_multiplier[tier]
         * early_submission_bonus
         * role_multiplier
         * consensus_score
         * bootstrap_bonus_if_applicable
Every component is multiplicative. A miner who fails any single check (probe verification, hash consistency, deadline, t_min, LLM allowed use, sandbox digest) earns zero for that task regardless of how good the rest of their submission looks. The seven multiplicative terms are detailed below.

1. Composite Q

The base quality score in [0, 1]. Computed per task from four base axes (α detection, ε evidence, π policy, η efficiency) plus a type specific axis (one of μ, σ, ψ, τ, χ, ρ). The four base axes apply to every skill type.
AxisSymbolWhat it measures
DetectionαVerdict matches ground truth. False negatives penalised 2.5x harder than false positives.
EvidenceεProof of execution. Multiplicative gate: if ε < 0.10, Q is zero.
PolicyπRecommended policy matches expected policy. F-β with β = 0.5 (precision weighted higher than recall).
EfficiencyηLatency falls inside the timing window. Submissions faster than t_min or slower than deadline are zeroed.
The type specific axis adds one more signal for the type’s primary threat class.
TypeAxisWhat it measures
rag_knowledgeρInjection recall against known hidden instructions.
declarativeμML score agreement with the validator’s reference classifier.
executable_python(none)No extra axis.
executable_scriptσShell coverage. Static taint predictions vs runtime observations.
mcp_serverψ + τManifest integrity and tool poison recall.
agent_compositionχTransitive risk accuracy.
See Scoring for the full formulas.

2. Base Weight

The base weight reflects the analysis difficulty and threat value of the skill type.
Skill typeBase weight
rag_knowledge0.5
declarative0.7
executable_python1.0
executable_script1.2
mcp_server1.6
agent_composition2.0
A perfect submission on agent_composition is worth four times a perfect submission on rag_knowledge. Miners choose which types to specialise in. Harder types pay more.

3. Tier Multiplier

Tiers reflect how deep the miner’s implementation is relative to the reference harness.
TierMultiplierMeaning
Below reference0.5Q below the per type baseline.
Tier 1 reference1.0Q at the reference level. Default for miners running the published harness unmodified.
Tier 2 optimised1.4Q meaningfully above reference. Custom detection rules, deeper analysis, additional trace files.
Tier 3 novel2.0Q at or above the dynamic novel threshold. Proprietary sandboxing, novel ML classifiers, kernel level tracing.
The novel threshold per skill type is recalibrated at every epoch end based on the median of the top five Q scores observed that epoch, smoothed and floored at 1.5 times the reference baseline. As better miners enter the network, the Novel bar rises.

4. Bootstrap Bonus

For the first 30 epochs after launch, the harder runtime types get a temporary boost to incentivise early adoption.
TypeBonus to base weight
mcp_server+0.5 (becomes 2.1 effective)
agent_composition+0.5 (becomes 2.5 effective)
After 30 epochs the bonus drops to zero and miners compete on merit alone.

5. Early Submission Bonus

Computed against the miner’s role-specific timing window.
window = (deadline_s - t_min_s) * 1000
position = (latency_ms - t_min_s * 1000) / window

if position <= 0.25:   bonus = 1.15
elif position <= 0.50: bonus = 1.08
else:                  bonus = 1.00
Applied only if trace verification passed. Speed without verified correctness is not rewarded.

6. Role Multiplier

Validators dispatch every task to a five miner verification group: three primaries plus two auditors.
RoleMultiplierWhat they submit
Primary1.0Full SSSA + trace_bundle + sandbox_manifest + probe_evidence. Full timing window.
Auditor0.6Full SSSA + probe_evidence. No trace_bundle, no sandbox_manifest. Tighter window.
Auditors do less work and earn proportionally less. The consensus multiplier still applies to them in full. If a miner has been in the auditor role three rounds in a row for a skill type, they are rotated into a primary slot regardless of reputation rank. See Verification Groups for the selection rules.

7. Consensus Score

For each task with at least three valid responses in the group, the validator computes a per miner consensus score in [0, 1] by comparing each miner’s SSSA against the rest of the group. The consensus score weights seven components:
ComponentWeight
Findings recall (canonical key matching)0.30
Findings precision0.15
Verdict agreement0.15
Capabilities agreement0.15
Risk score agreement0.10
Dependencies agreement (CVE intersection)0.10
Policy derivation alignment0.05
A miner who agrees with the group across all fields earns their full emission. A miner who matches the verdict but diverges on findings and capabilities still takes a heavy penalty. Verdict copying alone is not enough. See Consensus for the canonical finding key definition and the per field agreement formulas.

Round Aggregation

Per task emission scores are aggregated into a per miner round score, then blended into the running on-chain score vector.
round_score[uid] = weighted_mean(
    emission_score[task] * per_type_reputation[skill_type],
    weights = base_weight[skill_type],
)

self.scores[uid] = 0.2 * round_score[uid] + 0.8 * self.scores[uid]

# Pushed on-chain every WEIGHT_UPDATE_INTERVAL blocks
weights = normalise(self.scores)
subtensor.set_weights(uids, weights)
Reputation per skill type is fetched at the start of each round and applied per task. See Reputation for how reputation evolves.

Anti-Gaming Summary

AttackWhy it fails
Always return ALLOWα loses on BLOCK tasks. Consensus pulls miner away from group.
Always return BLOCKKnown good tasks drop α. Over restrictive policy tanks π.
Skip the sandboxε = 0. Canary write absent. Probe events missing.
Cache verdictsEach dispatch has a unique nonce. The canary and probe values change per dispatch.
Submit before t_minη = 0.
Submit after deadlineDiscarded entirely. No score and no reputation update.
Type mismatch SSSATreated as invalid. Reputation flagged as violation.
LLM forbidden useTriggers violation. Reputation x 0.5.
Run a different sandbox than registeredSynapse digest mismatch fails ε immediately. Async rerun also catches it.
Copy another miner’s SSSAVerdict copying alone fails consensus. Findings, capabilities, dependencies diverge.
Coordinate with other miners (collusion)Agreement with primaries vs random auditors is tracked over 30 rounds. Persistent gap accumulates collusion flags.
Fabricate trace_bundle hashesValidator decompresses each trace file, normalises, and recomputes hash. Mismatch fails.

What’s Next

Miner Setup Guide

Choose your skill types and start mining.

Validator Setup Guide

Run a validator and dispatch tasks.

Scoring Reference

Full formulas for every axis and every term in the emission formula.

Consensus Detail

How the seven component consensus score is computed.