TYPE 0x0506 · ANCHOR FAMILY
ANCHOR_ORACLE
Oracle anchor. Verifies an oracle pubkey and outcome count. Used for DLC oracle attestations, price feed anchoring, and event outcome commitments.
Anchor Non-InvertibleLadder Diagram
Fields
| Field | Data Type | Size | Side | Description |
|---|---|---|---|---|
| outcome_count | NUMERIC | 1-4 B | Conditions | Optional number of possible outcomes. If present, must decode and be > 0; absent is fine (the block then degenerates to "an oracle key is committed"). |
| oracle_key | PUBKEY | 32-33 B | Witness | Oracle pubkey. Required at spend time (HasRequiredPubkeys(block, 1)). Identity is bound at MLSC-proof level via merkle_pub_key — revealing a different key produces a different rung leaf and the proof rejects. |
PubkeyCountForBlock = 1. The oracle pubkey lives in the witness (ANCHOR_ORACLE_WITNESS = {1, [PUBKEY]}), not conditions.
Wire Format Breakdown
0x0506
0
1
NUMERIC · 3B
Conditions ≈ 9 bytes
0x0506
0
1
PUBKEY · 35B
Witness ≈ 39 bytes
Total
≈ 48 bytes
Evaluation Logic
1.HasRequiredPubkeys(block, 1): at least one PUBKEY must be present in the merged conditions+witness block; else → ERROR. The oracle pubkey's identity is enforced at MLSC-proof level via merkle_pub_key — no leaf check is performed here.
2.Look for an optional NUMERIC (
outcome_count). If present, ReadNumeric it; undecodable or value ≤ 0 → UNSATISFIED3.All checks passed → SATISFIED
Return Values
| Condition | Result |
|---|---|
| No PUBKEY in the merged block | ERROR |
Optional outcome_count present and undecodable, or ≤ 0 | UNSATISFIED |
PUBKEY present; outcome_count absent or > 0 | SATISFIED |
JSON Wire Format
Conditions (oracle with 3 possible outcomes — committed in the rung leaf)
{
"type": "ANCHOR_ORACLE",
"inverted": false,
"fields": [
{ "type": "NUMERIC", "value": 3 }
]
}Witness (input)
{
"type": "ANCHOR_ORACLE",
"fields": [
{ "type": "PUBKEY", "hex": "02 ... oracle pubkey ... 33 bytes" }
]
}Anchors an oracle attestation with 3 possible outcomes (e.g., home win, draw, away win). The oracle key revealed in the witness identifies who will sign the outcome; its identity is bound to the rung leaf via merkle_pub_key.
Use Cases
DLC Oracle Attestations
Anchor Discreet Log Contract oracle parameters on-chain. The oracle key identifies the attestor, and the outcome count defines the event space. Contract execution branches are determined by which outcome the oracle signs.
Price Feed Anchoring
Commit a price oracle's key and the number of price buckets on-chain. Enables trustless price-dependent contracts where the oracle attests to which price range was reached, without revealing the exact price.
Event Outcome Commitment
Anchor the parameters for any real-world event with discrete outcomes. Sports results, election outcomes, or weather events can be committed with a specific oracle and outcome count, enabling conditional contract execution.