SOST
Proof of Irreversible Convergence
ConvergenceX • PoPC • Metals Reserve (tokenized precious metals — Phase 1: gold-first)
Technical Whitepaper v4.0
Living Document Notice: This whitepaper reflects the genesis design of SOST Protocol. SOST is a
dynamic project under continuous development, with ongoing improvements in narrative, DeFi mechanics,
and security. Operational parameters (non-consensus) may be updated or adapted over time. Any changes
will be made in the interest of the project's long-term health and the benefit of all SOST holders.
Consensus rules (Section 10) remain immutable at genesis. Updated versions will be published with
full errata documentation.
SOST is a Proof-of-Work protocol where each mined block allocates 25% of issuance to an on-chain Gold Funding Vault (Phase 1: gold-first, tokenized XAUt/PAXG) by consensus. Conversions to XAUT/PAXG are operational actions executed with public attestations and auditable trails. Purchased precious-metal tokens are deposited into a separate Heritage Reserve on Ethereum mainnet. The Heritage Reserve is sealed by default. Reserve assets are intended to remain perpetual and untouched while SOST exists. During Phase I (before block 10,000), the protocol developer executes reserve operations operationally. After V6 activation (block 10,000), reserve custody transitions to the protocol itself under the 5-defense Gold Vault model, requiring ≥95% miner supermajority signaling and satisfying all five constitutional defenses for any non-routine reserve movement.
A mathematically grounded Proof-of-Work based on verifiable dynamical-system certificates.
No ICO • No Premine • No VCs • No Ongoing Parameter Governance
The protocol is permissionless by design. Third-party exchanges, custodians, or issuers may apply their own KYC/AML requirements.
Genesis Block: March 15, 2026 — 18:00:00 UTC
Table of Contents
Abstract
The Problem
ConvergenceX: Proof of Irreversible Convergence
Monetary Policy
Metals Protocol Reserve
Proof of Personal Custody (PoPC)
Governance Model
Economic Model
Security Analysis
The Constitution
Roadmap
Technical Specifications
Sovereign Value Stack
Conclusion
Legal Disclaimer
Appendix A — Canonical Constants (Normative)
Appendix B — Serialization (Normative)
Appendix C — PRNG Specification (Normative)
Appendix D — Test Vectors (Normative)
Appendix G — Emergency Reserve Authorization (V6 5-Defense Model) (Normative)
SOST is a Proof-of-Work cryptocurrency built on ConvergenceX, a consensus mechanism that replaces brute-force hash guessing with a mandatory sequential convergence process. Each mining attempt requires ~8 GB RAM (4 GB dataset + 4 GB scratchpad), 100,000 strictly sequential rounds of integer-only gradient descent over a deterministic random linear system, memory-hard scratchpad reads at every round, and a stability basin verification that produces a deterministic certificate. Node validation requires only ~500 MB RAM — no dataset or scratchpad is needed to verify blocks.
Every block splits the coinbase reward by consensus:
50% + remainder to the miner,
25% to a Gold Funding Vault,
25% to a PoPC Pool powering Proof of Personal Custody.
Purchased precious-metal tokens are held on Ethereum mainnet in a Heritage Reserve (sealed by default). During Phase I (before block 10,000), the protocol developer may adjust future purchase execution (including the default 50/50 XAUt/PAXG split) operationally. After V6 activation (block 10,000), all reserve adjustments require protocol-level governance under the 5-defense Gold Vault model. Previously purchased reserve assets are intended to remain perpetual and cannot be moved except under Emergency Catastrophe authorization (≥95% miner supermajority + all five constitutional defenses satisfied).
PoPC audit randomness derives exclusively from ConvergenceX block entropy: (block_id, commit, checkpoints_root). No external oracle is required for consensus-critical validation; off-chain data is used only for operational PoPC policy and settlement.
No ongoing parameter governance exists. Monetary rules, emission schedules, coinbase splits, and constitutional constraints are immutable at genesis. Only narrow emergency authorization signaling exists, requiring ≥95% miner supermajority under the V6 5-defense Gold Vault model. During Phase I (before block 10,000), operational actions (vault execution, reporting, emergency rotations) are executed by the protocol developer, constitutionally constrained, and publicly auditable. After V6 activation, these functions transition to automated on-chain governance.
2.1 Proof-of-Work: A Standard Worth Studying
Bitcoin's SHA-256 Proof-of-Work (2009) remains an engineering landmark: minimal, rigorous, and resilient under real adversarial pressure. Its design established the core insight that verifiable computation can secure decentralized consensus at global scale.
At the same time, the dominant pattern across PoW systems remains a lottery-style threshold check:
nonce → hash → compare to target
This structure—brilliant in its simplicity—also enables:
massive parallelization (benefiting specialized pipelines),
rapid hardware specialization,
mining centralization driven by economies of scale.
SOST does not attempt to "replace" Bitcoin's virtues. It explores a different design space: structured work that produces verifiable certificates and public entropy as a byproduct.
2.2 Memory-Hard Alternatives
RandomX and Ethash advanced ASIC-resistance via memory-hardness and reduced specialized advantage. Yet the proof object remains primarily a hash threshold. Computation is structured, but it does not yield a convergence certificate nor a reusable entropy artifact beyond the block hash.
2.3 Crypto Has Limited Structural Reserves
Many systems discuss reserves or backing, but few embed structural accumulation as a constitutional side effect of mining. SOST implements a consensus-enforced allocation to an on-chain vault (Gold Funding Vault), with an operational conversion pipeline into a separate Heritage sealed Heritage Reserve on Ethereum mainnet, with an emergency catastrophe procedure for exceptional circumstances.
3.0 Design Roots (Motivation)
Before any technical specification, it is worth stating the principle that ConvergenceX encodes into consensus: trial and error — the oldest and most universal method of progress known to humanity. Since the first tool was shaped by hand, every meaningful advance has followed the same pattern: attempt, fail, measure the failure, correct, attempt again. This iterative refinement is not merely a technique; it is the only known path toward anything resembling perfection — a destination that, by its nature, can be approached but never reached.
This asymptotic quality is not a defect. It is a structural feature of the universe itself. The cosmic microwave background — the residual radiation from the Big Bang — is not perfectly uniform. It contains tiny anisotropies, density fluctuations of roughly one part in 100,000. These imperfections were not errors in the universe's initial conditions; they were the seeds of all structure. Without those minute deviations from uniformity, matter would never have clumped into galaxies, stars would never have ignited, planets would never have formed, and life would never have emerged. The universe required imperfection to produce complexity. A perfectly smooth cosmos would be a perfectly sterile one.
The same principle operates at every scale. Biological evolution depends on imperfect DNA replication — mutations are errors, yet they are the sole engine of adaptation. Scientific knowledge advances through falsification: every disproven hypothesis narrows the residual error and brings the model closer to reality, but never arrives at a final truth. Engineering iterates through prototypes, each one correcting the failures of its predecessor.
ConvergenceX translates this universal principle into a consensus mechanism. A miner does not guess randomly until lucky. A miner begins with an approximate solution, measures the error (the residual), applies a correction (gradient descent), and repeats — 100,000 times, sequentially, each round depending on the one before it. The proof-of-work is not a lottery ticket. It is a recorded journey of iterative refinement: a trajectory from disorder toward convergence, verified by a mathematical certificate that proves the solution reached a genuine basin of attraction — stable, reproducible, and irreversible. The block is valid not because the miner was fortunate, but because the miner demonstrated disciplined, sequential improvement under strict deterministic rules. In this sense, ConvergenceX is not an invention. It is a formalization of the oldest principle in nature: progress through corrected error.
ConvergenceX is born from a very concrete observation: over the last decade, computing has rediscovered that solving linear systems and performing matrix–vector multiplications is not only "computation," but dynamics—a convergence process that can be verified. Modern analog computing (especially the in-memory computing line using resistive memories / RRAM) shows that a matrix can be represented as a physical structure and that certain operations can emerge almost "by the laws of the circuit," while precision is recovered through iterative refinement, bit-slicing techniques, and block partitioning for scalability. ConvergenceX carries that intuition into consensus: it replaces the "pure randomness" of the hash lottery with a mandatory sequential trajectory (deterministic iterations), where each round depends on the previous one, memory is mixed in (scratchpad) to penalize shortcuts, and the final result is accompanied by a verifiable certificate (checkpoints + stability-basin proof). In essence, it is a PoW inspired by the idea that the hardest work to counterfeit is not "getting lucky," but demonstrating convergence under strict rules, reproducibly and identically on any machine (integer-only arithmetic, no floating point)—a reinterpretation of the spirit of the Antikythera Mechanism, but with modern standards of verifiability and adversarial consensus.
A simple mental model is an arrows-to-a-target process. Imagine a target board (the true solution) and an archer that is extremely fast but not perfectly precise. The first volley lands "somewhere near" the center — not exact, but close. Then the archer looks at the error (how far the arrows are from the bullseye) and fires corrected volleys that progressively shrink that distance. After a few rounds, the arrows cluster tightly around the bullseye. That is the essence of iterative refinement: quick approximate step → measure error → correct → repeat. In RRAM systems, the "fast volley" is the analog in-memory matrix operation, and the "correction rounds" are deterministic refinement loops that drive the residual down until the desired precision is reached.
ConvergenceX transfers this intuition into consensus. Instead of a pure hash lottery, a miner must execute a mandatory, strictly sequential convergence journey: derive a deterministic per-tip problem, run fixed rounds of integer-only updates with memory-hard mixing, commit intermediate checkpoints, and finally prove the result lies in a stable basin of attraction (a verifiable "this really converges" certificate). In the same arrows analogy, the block is valid only if the miner can show not just one lucky arrow, but an entire trajectory of corrections that consistently drives the solution toward the target — under rules that every node can reproduce bit-for-bit. The goal is not to claim "analog hardware inside the chain," but to adopt the convergence principle: work that is hardest to fake is not random guessing, but demonstrating irreversible convergence under strict, deterministic constraints.
3.1 Core Concept
Instead of "guessing until the hash is small enough", a miner must complete a deterministic convergence journey:
generate a per-tip deterministic problem (block_key),
execute 100,000 sequential rounds with memory-hard mixing,
commit checkpoints into a Merkle root,
verify stability basin constraints,
then compare a single commitment hash to the difficulty target.
You cannot win without completing the journey. Round r+1 depends on round r. Intra-attempt parallelism is structurally eliminated.
3.2 Algorithm — Detailed Specification (Consensus-Critical)
All arithmetic is integer-only (32-bit signed clamping where needed). No floating point exists in consensus paths.
Phase 1: Problem Generation (per tip)
block_key = SHA256(prev_hash || "BLOCK_KEY")
Matrix M (32×32):
raw = PRNG(SHA256(MAGIC || "M" || block_key), 32*32 bytes)
M[i][j] = (raw[k] % 255) - 127
Vector b (32):
raw = PRNG(SHA256(MAGIC || "B" || block_key), 32*4 bytes)
b[i] = int32_le(raw[i*4..i*4+3])
A(x) = M^T(Mx) + λx with λ = 100
block_key depends only on prev_hash (reduces grinding surface). Header fields remain bound via header_core inside seed and commit.
Phase 2: Iterative Convergence (100,000 rounds)
header_core = prev_hash||merkle_root||timestamp(u32 LE)||powDiffQ(u32 LE)
seed = SHA256(MAGIC||"SEED"||header_core||block_key||nonce||extra_nonce)
x0 = PRNG(SHA256(MAGIC||"X0"||seed), 32*4 bytes)
x0[i] = asr_i32(int32_le(x0[i]), 4)
state = SHA256(MAGIC||"ST"||seed)
for r=1..100000:
Phase 3: Checkpoint Merkle Tree (16 leaves)
Each leaf binds {state_hash, x_hash, round, residual(L1)} into checkpoints_root.
Phase 4: Stability Basin Verification (certificate)
Deterministic perturbation probes (k) and refinement steps (steps) enforce:
local non-explosion, and
global contraction for sufficiently large perturbations.
The cASERT equalizer adaptively selects (k, steps, scale) for liveness, with a bidirectional policy: it hardens (H1–H35) when the chain is ahead of schedule (emission protection) and eases (E1–E4) when the chain has been behind schedule for 6+ hours at B0 (liveness support).
Phase 5: Commitment & Target Check
COMMITMENT (binds all proof components):
commit = SHA256(
MAGIC || "COMMIT" ||
header_core || // binds to all header fields (anti-grinding)
seed || // binds to nonce + block context
state || // binds to full 100k-round computation
x_bytes || // binds to final solution vector
checkpoints_root || // binds to convergence trajectory
stability_metric_u64_le // binds to basin verification
)
VALID iff commit <= target(powDiffQ)
// Direct comparison (big-endian, 32 bytes).
// No second hash: commit already binds the full proof via SHA256.
The commitment hash is a single SHA-256 that binds together every component of the proof: the initial conditions (seed), the full computation trace (state), the final solution (x_bytes), the convergence trajectory (checkpoints_root), and the stability certificate (stability_metric). Any modification to any component changes the commitment, invalidating the proof.
3.3 Stability Basin Verification — Mathematical Certificate
The stability basin check is what transforms ConvergenceX from "structured computation" into a "mathematical certificate." It answers the question: is this solution a genuine attractor, or did the algorithm land here by accident?
Concept
A stability basin (or basin of attraction) is a region of the solution space where all nearby starting points converge to the same solution under the dynamics of the system. If x_final is in a stability basin, then small perturbations to the starting conditions will still lead to the same (or very nearby) solution after additional refinement steps.
ConvergenceX tests this by launching k deterministic perturbation probes around the final solution and verifying two independent criteria:
Criterion 1: Local Non-Explosion
LOCAL NON-EXPLOSION (per probe, per step):
For each probe i = 0..k-1:
delta[i] = deterministic perturbation vector (scale ∈ [-S, +S])
x_ref = x_final
x_pert = x_final + delta[i]
d_prev = L1_distance(x_ref, x_pert) // = d0
For step t = 1..g (gradient refinement):
x_ref = gradient_step(x_ref, M, b, λ, stability_lr_shift)
x_pert = gradient_step(x_pert, M, b, λ, stability_lr_shift)
d_now = L1_distance(x_ref, x_pert)
REJECT if d_now > d_prev + margin_eff
// Distance must never grow faster than allowed margin
d_prev = d_now
This ensures that the perturbed trajectory does not diverge from the reference trajectory at any step. If it does, the solution is near an unstable region and the proof is invalid.
Criterion 2: Global Contraction
GLOBAL CONTRACTION (for large perturbations only):
d0 = initial L1 distance between x_ref and x_pert
d_final = L1 distance after g refinement steps
IF d0 > large_threshold:
REJECT if d_final * c_den > d0 * c_num + margin_eff
Where:
large_threshold = (n * scale) / 2
c_num = 7, c_den = 10 // contraction ratio 0.7
margin_eff = margin * m_num / m_den
For perturbations that are large enough to meaningfully test the basin structure, the final distance must be strictly smaller than the initial distance (with a contraction factor of 0.7). This proves that the dynamics are contractive — nearby points get pulled toward the solution, which is the mathematical definition of a stable attractor.
Why Two Criteria
Local non-explosion catches solutions near saddle points or ridges where small perturbations in specific directions cause rapid divergence. Global contraction catches solutions in flat regions where the dynamics neither converge nor diverge — technically stable but not in a genuine basin.
Together, they provide a rigorous certificate that x_final is a true attractor of the regularized linear system.
Deterministic Perturbation Probes
PERTURBATION GENERATION (consensus-critical, miner-unbiasable):
stctx = SHA256(MAGIC || "STCTX" || header_core || seed || checkpoints_root)
For probe i:
raw = PRNG(SHA256(MAGIC || "PERT" || stctx || i || n), n bytes)
delta[j] = (raw[j] % (2*scale + 1)) - scale
Properties:
- Deterministic: same block → same perturbations
- Unbiasable: stctx depends on full proof, not just nonce
- Uniform: perturbation components in [-scale, +scale]
The stability context stctx is derived from header_core, seed, and checkpoints_root. This means the perturbation vectors depend on the entire proof trajectory — a miner cannot choose a nonce that produces "easy" perturbations without first completing the full 100,000-round convergence.
cASERT Equalizer Stability Parameters
The intensity of perturbation probes adapts to network conditions through the cASERT
equalizer (Section 3.12). The equalizer uses a bidirectional block-lag signal: it compares
the actual number of blocks mined against the ideal schedule (genesis + height × 600s)
and increases computational cost when the chain is running ahead of schedule (H1–H35), or decreases it when the chain has been behind schedule for 6+ hours at B0 (E1–E4).
lag = expected_blocks - actual_blocks
expected_blocks = floor((wall_clock_now - GENESIS_TIME) / TARGET_SPACING)
lag ≥ 0 (on schedule or behind) → L1 (neutral, baseline)
lag < 0, |lag| < 5 → L1 (neutral)
lag < 0, 5 ≤ |lag| ≤ 25 → L2 (light hardening)
lag < 0, 26 ≤ |lag| ≤ 50 → L3 (moderate hardening)
lag < 0, 51 ≤ |lag| ≤ 75 → L4 (strong hardening)
lag < 0, 76 ≤ |lag| ≤ 100 → L5 (strong hardening)
lag < 0, |lag| ≥ 101 → L6+ (unbounded: level = 6 + floor((ahead - 101) / 50))
Stability parameters by level (pre-genesis design — see note above):
Mainnet profiles: E7(-7) through H35(+35), 43 total
B0 (baseline): scale=1, k=4, steps=4, margin=165
H35 (maximum): scale=2, k=20, steps=20, margin=115
E7 (deepest): scale=1, k=1, steps=1, margin=200
Examples:
| Condition | Level | Scale | k | Steps | Margin |
| Behind schedule or on time | L1 | 1 | 4 | 4 | 180 |
| 1-4 blocks ahead | L1 | 1 | 4 | 4 | 180 |
| 5-25 blocks ahead | L2 | 2 | 4 | 4 | 180 |
| 26-50 blocks ahead | L3 | 3 | 4 | 4 | 180 |
| 51-75 blocks ahead | L4 | 4 | 4 | 4 | 180 |
| 76-100 blocks ahead | L5 | 5 | 4 | 4 | 180 |
| 101+ blocks ahead | L6+ | 6+ | 4 | 4 | 180 |
At L1 (neutral operation), 4 independent probes each run 4 gradient steps with
perturbation scale ±1. This is the baseline configuration matching the genesis stability
constants. When the chain is behind schedule, on time, or up to 4 blocks ahead, the equalizer
stays at B0 (baseline) and lets cASERT bitsQ handle difficulty adjustment alone. When the chain runs 5 or
more blocks ahead of schedule (excess hashrate producing blocks faster than 600s),
the equalizer progressively increases the perturbation scale from L2 through L5, making each
mining attempt more computationally expensive. When the chain has been behind schedule for
6+ hours at B0, the equalizer eases (E1–E4), reducing perturbation cost to support liveness.
This bidirectional policy ensures hardening activates for emission protection and easing
activates when the chain genuinely needs liveness support.
Decay Anti-Stall (cASERT layer 3):
If no block found for max(ahead × 600s, 7200s) — proportional to blocks ahead, no ceiling — the effective level decays: L8+ drops 1/10min, L4–L7 drops 1/20min, L2–L3 drops 1/30min, L1 is floor. Cost uses the current effective level as it drops. When mining resumes, decay stops instantly. Block validation uses raw schedule level.
Worked Example — L10 (450 blocks ahead):
Activation: max(450 × 600, 7200) = 270,000s (75h). After activation: L10→L8 FAST (30min) · L7→L4 MEDIUM (80min) · L3→L1 SLOW (60min). Total decay: 170 min (2h 50m). Total from mining start: ~78 hours.
3.4 Anti-Grinding and Proof Binding
ConvergenceX implements multiple layers of anti-grinding protection to prevent miners from exploiting degrees of freedom in block construction.
Block Key Derivation
BLOCK KEY (per-tip, anti-grinding):
block_key = SHA256(prev_hash || "BLOCK_KEY")
This determines:
- Matrix M (32×32 random integers)
- Target vector b (32 random integers)
- Scratchpad access pattern (via state evolution)
- Stability perturbation vectors (via stctx)
The block key depends only on prev_hash. This means that all attempts for a given chain tip share the same linear system — the problem is stable and predictable once the tip is known. Changing the nonce changes the initial state x0 and the convergence path, but the problem itself (M, b) remains the same.
This is a deliberate design to minimize grinding surface. If block_key included merkle_root, timestamp, or powDiffQ, miners could iterate over header field combinations to search for a problem with a "favorable" convergence landscape — effectively multiplying the search space in a way that benefits sophisticated miners disproportionately. With prev_hash only, the problem is fixed per tip and cannot be manipulated without chain reorganization.
Full header binding is achieved by injecting header_core into the attempt seed and the final commit, so any change to merkle_root, timestamp, or powDiffQ forces a full recomputation. This is a deliberate design choice to minimize problem grinding. Header field grinding is neutralized because header_core is bound into seed and commit:
HEADER CORE (binds all header fields into the proof): header_core = prev_hash(32) || merkle_root(32) || timestamp(u32 LE) || powDiffQ(u32 LE) // Total: 72 bytes, canonical little-endian serialization header_core is passed to ConvergenceX as an input parameter. It is mixed into the commitment hash, ensuring that any change to merkle_root, timestamp, or powDiffQ invalidates the proof — even though the problem (M, b) remains the same.
To get a different problem, the miner must change prev_hash — which requires reorganizing the chain. The other header fields are consensus-constrained:
merkle_root: determined by transaction selection (changes invalidate commit, not problem)timestamp: constrained by MTP and future drift rulespowDiffQ: determined by cASERT bitsQStability Context Binding
STABILITY CONTEXT (anti proof-reuse):
stctx = SHA256(MAGIC || "STCTX" || header_core || seed || checkpoints_root)
This binds the stability verification to:
- The specific block being mined (header_core)
- The specific nonce being tried (seed)
- The full convergence trajectory (checkpoints_root)
A miner cannot reuse a stability proof from one block/nonce combination on another. The perturbation vectors are different for every attempt, making each stability certificate unique to the exact proof it certifies.
Seed Derivation
SEED (per-attempt uniqueness):
seed = SHA256(MAGIC || "SEED" || header_core || block_key || nonce || extra_nonce)
Derived values:
x0 = initial solution vector
All downstream computation depends on seed
The seed combines header_core (binding all header fields), the block key (shared across attempts), and the nonce/extra_nonce (unique per attempt). This ensures that each attempt starts from a different initial condition and traverses a different convergence path through the shared problem landscape. Any change to merkle_root, timestamp, or powDiffQ changes the seed and forces a full recomputation.
3.5 Checkpoint Merkle Tree — Structure and SPV Applications
Tree Structure
ConvergenceX produces 16 checkpoints during the 100,000-round convergence loop, one every 6,250 rounds (100,000 / 6,250 = 16 exactly). Each checkpoint captures a snapshot of the computation state:
CHECKPOINT SCHEMA:
checkpoint = {
round: uint32, // round number (6250, 12500, ..., 100000)
state_hash: bytes32, // SHA256 chain of all state updates to this point
x_hash: bytes32, // SHA256 of solution vector x at this round
residual: uint64 // ||A(x) - b||₁ (convergence quality metric)
}
LEAF CONSTRUCTION:
leaf = SHA256("CP" || state_hash || x_hash || round_u32_le || residual_u64_le)
TREE PROPERTIES:
- 16 leaves → 4 levels → root in 15 hash operations
- Proof for any single checkpoint: 4 sibling hashes (128 bytes)
- Odd leaf count: last leaf duplicated (standard Merkle padding)
SPV Verification Use Cases
Light client block validation: A node in BASIC sync mode can verify the checkpoints_root without recomputing any gradient steps. It trusts the root (validated by full nodes at chain tip) and can spot-check individual checkpoints when operating in ADAPTIVE mode.
Convergence quality audit: By requesting checkpoints at rounds 6,250 and 100,000 from a full node, a light client can verify that the residual decreased — confirming genuine convergence occurred. The Merkle proof ensures the checkpoint data is authentic.
Entropy verification: The checkpoints_root is one of three components in the PoPC entropy triple. A PoPC verifier can confirm that the entropy source is authentic by validating the Merkle root against the block header, without needing to recompute the full proof.
3.6 Integer-Only Consensus Arithmetic
Every computation in the ConvergenceX consensus-critical path uses integer arithmetic exclusively. No floating-point operations exist in any consensus code path. This is a deliberate design decision with concrete implications.
Why Zero Floating-Point
IEEE 754 floating-point arithmetic is not deterministic across all hardware. Different CPU architectures, compiler optimizations, FPU modes, and instruction orderings can produce slightly different results for the same computation. In a consensus system, even a single bit of divergence causes a chain split.
Bitcoin avoids this by using integer arithmetic for difficulty adjustments and emission calculations. ConvergenceX extends this principle to the entire proof-of-work computation, which includes matrix-vector multiplication, gradient descent, residual computation, and stability verification — operations that traditionally use floating-point.
Implementation
INTEGER ARITHMETIC PRIMITIVES (consensus-critical):
clamp_i32(x):
return max(-2^31, min(2^31 - 1, x))
u32(x): return x & 0xFFFFFFFF
u64(x): return x & 0xFFFFFFFFFFFFFFFF
sat_u64_add(a, b):
return min(a + b, 2^64 - 1)
safe_residual_l1(Ax, b, n):
acc = 0
For i in 0..n-1:
acc += abs(clamp_i32(Ax[i] - b[i]))
if acc > 2^63 - 1: return 2^63 - 1
return acc
l1_dist_sat_u64(a, b):
acc = 0
For i in 0..n-1:
d = abs(clamp_i32(a[i]) - clamp_i32(b[i]))
acc = sat_u64_add(acc, d)
if acc == U64_MAX: return U64_MAX
return acc
asr_i32(x, s):
if s >= 31: return (x < 0) ? -1 : 0
ux = uint32(x)
shifted = ux >> s
if x < 0:
mask = 0xFFFFFFFF << (32 - s)
shifted |= mask
return int32(shifted)
Emission Schedule (Integer-Only Exponentiation)
The emission decay uses fixed-point arithmetic with explicit floor division:
FIXED-POINT EMISSION (consensus-critical):
Q_NUM = 7,788,007,830,714,049
Q_DEN = 10,000,000,000,000,000
_qmul_floor(a, b):
return (a * b) // Q_DEN
_qpow_floor(base, exp):
result = Q_DEN
x = base
while exp > 0:
if exp & 1: result = _qmul_floor(result, x)
x = _qmul_floor(x, x)
exp >>= 1
return result
subsidy(height):
epoch = height // 131,553
qpow = _qpow_floor(Q_NUM, epoch)
return (R0 * qpow) // Q_DEN
This produces bit-identical results on any hardware, any language, any platform — the fundamental requirement for consensus arithmetic.
3.7 ASIC Resistance — Design and Analysis
The Memory-Hard Foundation
Each ConvergenceX attempt performs 100,000 rounds, each reading 4 pseudo-random 32-bit words from a 4 GB scratchpad. The access indices are derived from the evolving state hash, which changes every round. This creates 400,000 pseudo-random reads across 1,073,741,824 possible 4-byte positions per attempt.
MEMORY ACCESS ANALYSIS (per attempt):
Scratchpad size: 4,096 MB = 4,294,967,296 bytes
Addressable words: 1,073,741,824 (32-bit words)
Reads per round: 4
Rounds per attempt: 100,000
Total reads: 400,000
Access pattern: Pseudo-random, state-dependent
Predictability: Zero — each index depends on state from prior round
Locality: None — uniform distribution across 4 GB
Required bandwidth: 400,000 × 4 bytes = 1.6 MB read per attempt
Working set: The access pattern is state-dependent and unpredictable;
the design targets a high penalty for time-memory tradeoffs
and requires practical residency of the full scratchpad for
competitive mining. A dedicated TMTO analysis is planned.
Why Sequential Dependency Defeats ASICs
The critical constraint is not the memory reads themselves — it is the sequential dependency chain:
SEQUENTIAL DEPENDENCY (unbreakable):
Round r produces:
state[r] = SHA256(state[r-1] || scratchpad_data || solution_data || r)
Round r+1 needs:
state[r] to derive scratchpad indices idx0..idx3
x[r] to compute gradient step
Therefore:
Round r+1 CANNOT BEGIN until round r COMPLETES.
Intra-attempt parallelism is eliminated by state dependency.
Specialized hardware may still improve energy per attempt,
which is addressed via memory-hardness and sequential verification.
An ASIC for SHA-256 can compute billions of independent hashes in parallel because each hash is stateless. An ASIC for ConvergenceX can only execute one round at a time per attempt, because each round reads from the solution of the previous round. The only parallelism available is running multiple independent attempts (different nonces) simultaneously — which is exactly what a CPU with multiple cores already does.
ASIC advantage estimate: A custom ASIC could potentially optimize the SHA-256 operations within each round and achieve tighter memory bus timing. The design is intended to minimize ASIC advantage; preliminary estimates suggest low multiples over modern CPUs, compared to >1000× advantage for SHA-256 ASICs. Formal, reproducible benchmarks will be published separately (methodology, hardware baselines, energy per attempt, and RAM latency profiles).
Scratchpad Construction
The scratchpad is deterministic, epoch-specific, and constructed via a sequential SHA-256 chain:
SCRATCHPAD CONSTRUCTION (deterministic):
epoch_key(epoch=0):
SHA256(MAGIC || "EPOCH" || epoch_u32)
epoch_key(epoch>0):
SHA256(MAGIC || "EPOCH" || epoch_u32 || anchor_block_id)
build(seed_key, size_mb):
h = SHA256(MAGIC || "SCR" || seed_key)
counter = 0
For each 32-byte position in scratchpad:
h = SHA256(h || counter_u32)
write h to scratchpad
counter += 1
Properties:
- Deterministic: same epoch → same scratchpad on all nodes
- Sequential: each 32-byte chunk depends on the previous one
- Epoch-specific: new epoch → new scratchpad → new access patterns
- Anchor-dependent (epoch>0): scratchpad for epoch N depends on
the block that ended epoch N-1, which is unknown until that block is mined
Epoch anchor innovation: For epoch > 0, the scratchpad key depends on the block_id of the last block of the previous epoch. Since block_id commits to the full header (including timestamp), it is sufficient for uniqueness without separately including anchor_timestamp — which would create a timestamp-grinding vector. This means the scratchpad for a new epoch cannot be pre-computed — miners must wait for the epoch transition block to be mined before building the new scratchpad.
3.8 ConvergenceX as Entropy Engine
Every valid block produces a unique, unpredictable, publicly verifiable entropy triple:
ENTROPY TRIPLE (per block):
E = (block_id, commit, checkpoints_root)
full_header = MAGIC(10) || "HDR2"(4) || header_core(72) ||
checkpoints_root(32) || nonce(u32 LE) || extra_nonce(u32 LE)
- Does NOT include commit (commit is appended separately in block_id)
block_id = SHA256(full_header || "ID" || commit)
- Depends on: all header fields + full ConvergenceX proof
- commit is NOT part of full_header; it is concatenated after "ID"
commit = SHA256(MAGIC || "COMMIT" || header_core || seed || state || x || cp_root || metric)
- Depends on: all 100,000 rounds of computation
checkpoints_root = Merkle root of 16 checkpoint leaves
- Depends on: state evolution at 16 intermediate points
PROPERTIES:
- Unpredictable: no party can know any component before the block is mined
- Unbiasable: choosing a different nonce changes all three values
- Publicly verifiable: any node can validate against the block header
- Information-rich: three independent 32-byte values per block
This entropy powers the PoPC audit system (Section 6.3). The same proof-of-work that secures the chain produces the randomness that governs custody audits — no external oracle, no trusted randomness beacon, and no additional computation required.
3.9 Comparative Analysis: ConvergenceX vs SHA-256 vs RandomX vs Ethash
Bitcoin's SHA-256 remains the canonical PoW baseline—simple, robust, and historically proven. SOST targets different properties: structured work + certificate + entropy triple + memory-hardness.
| Dimension | Bitcoin (SHA-256) | Monero (RandomX) | Ethereum Classic (Ethash) | SOST (ConvergenceX) |
| Year introduced | 2009 | 2019 | 2015 (PoS migration 2022) | 2026 |
| Proof nature | Hash below target | Hash below target | Hash below target | Convergence certificate + hash below target |
| Core operation | Double SHA-256 | Random VM program execution | DAG read + Keccak hash | Gradient descent + scratchpad + stability check |
| RAM required (mining) | ~0 MB | 2,048 MB (2 GB) | 1-4 GB (growing DAG) | ~8,192 MB (4 GB dataset + 4 GB scratchpad) |
| RAM required (node) | ~0 MB | ~256 MB | ~256 MB | ~500 MB (no dataset/scratchpad) |
| ASIC advantage | >1,000× | ~3-5× estimated | ~2-5× (Ethash ASICs exist) | Designed for low multiples (hypothesis; formal benchmark pending) |
| Difficulty adjustment | Every 2,016 blocks (~2 weeks) | Every block (simple ratio) | Every block (bomb + ratio) | Every block (cASERT bitsQ Q16.16, avg288-based since block 5,175, dynamic cap since 5,260) |
| Mathematical certificate | None | None | None | Stability basin proof (k probes × g steps) |
| Useful entropy output | Block hash only | Block hash only | Block hash only | Entropy triple (block_id + commit + cp_root) |
| Consensus arithmetic | Integer (nBits, subsidy) | Integer + float (VM) | Integer | 100% integer (zero floating-point) |
3.10 Consensus Parameters
Parameter Value
RAM (mining total) ~8,192 MB (4,096 MB scratchpad + 4,096 MB dataset)
RAM (node validation) ~500 MB (no scratchpad/dataset needed)
Rounds per attempt 100,000 sequential
State dimension 32
Learning rate shift 18
Regularization λ 100
Checkpoint interval 6,250 (16 checkpoints)
Difficulty encoding SOSTCompact Q16.16
Difficulty algorithm cASERT bitsQ, avg288-based (block 5,175+), dynamic cap (block 5,260+)
Per-block delta cap Dynamic (5,260+): 0%/0.5%/1.5%/2.5%/3.0% (legacy: 12.5% V2)
cASERT equalizer signal Block lag vs ideal schedule (bidirectional)
Equalizer profiles E7(-7) through H35(+35), 43 total
Stability baseline scale=1, k=4, margin=165, steps=4, stab_shift=20
Block target spacing 600s
3.11 cASERT bitsQ Difficulty Adjustment (Consensus-Critical)
cASERT bitsQ compares observed timing to expected schedule and adjusts powDiffQ deterministically.
slow chain → decrease powDiffQ → larger target → easier
fast chain → increase powDiffQ → smaller target → harder
Per-block delta cap bounds the response:
Dynamic cap (block 5,260+): 0% dead band (±30s), 0.5%/1.5%/2.5%/3.0% max. Legacy: 12.5% (V2, blocks 1,450–5,174)
3.12 cASERT Equalizer — Consensus-Critical Structural Correction
IMPORTANT: cASERT is the unified consensus-critical block-rate control system. Both the bitsQ primary controller and the equalizer profile are deterministic and consensus-critical. The equalizer adjusts ConvergenceX stability parameters according to the block-lag level, and validators enforce the correct equalizer profile for each block.
The cASERT equalizer does not change numerical difficulty. It adjusts stability verification
intensity based on block lag — the difference between the expected number of
blocks since genesis and the actual chain height. The equalizer is bidirectional: it
increases computational cost when the chain is ahead of schedule (H1–H35, emission
protection) and decreases it when the chain has been behind schedule for 6+ hours at B0
(E1–E4, liveness support). cASERT bitsQ handles numerical difficulty adjustment in both directions.
SIGNAL COMPUTATION (block lag):
expected_blocks = floor((wall_clock_now - GENESIS_TIME) / TARGET_SPACING)
actual_blocks = current chain height
lag = expected_blocks - actual_blocks
lag > 0 → chain is BEHIND schedule (fewer blocks than expected)
lag == 0 → chain is exactly on schedule
lag < 0 → chain is AHEAD of schedule (more blocks than expected)
Each node computes lag independently using its own wall clock time(nullptr)
and the consensus GENESIS_TIME constant. The signal is deterministic for any
observer at the same wall-clock moment and chain height.
LEVEL ASSIGNMENT (bidirectional, block-count thresholds):
lag ≥ 0 → L1 (behind or on-time: neutral)
lag < 0, |lag| < 5 → L1 (slightly ahead: neutral)
lag < 0, 5 ≤ |lag| ≤ 25 → L2 (light hardening)
lag < 0, 26 ≤ |lag| ≤ 50 → L3 (moderate hardening)
lag < 0, 51 ≤ |lag| ≤ 75 → L4 (strong hardening)
lag < 0, 76 ≤ |lag| ≤ 100 → L5 (strong hardening)
lag < 0, |lag| ≥ 101 → L6+ (unbounded: level = 6 + floor((ahead - 101) / 50))
STABILITY PARAMETERS (mainnet — see note above):
43 profiles: E7(-7) through H35(+35)
B0 baseline: scale=1, k=4, steps=4, margin=165
All params variable per profile (see cASERT Specification)
compute_cost = scale × k × steps
L1: 1 × 4 × 4 = 16 (neutral baseline)
L2: 2 × 4 × 4 = 32 (100% harder than baseline)
L3: 3 × 4 × 4 = 48 (200% harder than baseline)
L4: 4 × 4 × 4 = 64 (300% harder than baseline)
L5: 5 × 4 × 4 = 80 (400% harder than baseline)
L6: 6 × 4 × 4 = 96 (500% harder, unbounded continues...)
BIDIRECTIONAL POLICY (emission protection + liveness support):
The cASERT equalizer addresses a specific threat: an attacker (or sudden hashrate influx)
mining blocks much faster than the 600s target, which would accelerate coin
emission before cASERT bitsQ can fully compensate. bitsQ adjusts numerical difficulty
every block, but its response is bounded by the dynamic cap (0%/0.5%/1.5%/2.5%/3.0%, block 5,260+).
A massive hashrate spike can outrun the bitsQ delta cap for many blocks,
emitting coins ahead of the intended schedule.
The equalizer closes this gap by monitoring the **cumulative** effect: block lag
measures whether the chain has drifted ahead of its ideal timeline since genesis.
If the chain is 5+ blocks ahead, the equalizer increases the perturbation scale,
making each ConvergenceX attempt more expensive regardless of the numerical
difficulty. This slows down block production even if bitsQ hasn't caught up yet.
Critically, the equalizer **never relaxes below B0**. When the chain is behind schedule (lag > 0),
it stays at B0 (the genesis baseline) and cASERT bitsQ handles recovery by
lowering numerical difficulty. This avoids double-penalizing a struggling chain:
bitsQ makes blocks easier to find, and the equalizer stays out of the way.
The result is an asymmetric safety net:
WHY BLOCK LAG INSTEAD OF LOCAL TIMING:
Previous cASERT designs used a sliding window of recent inter-block intervals
to compute a timing-error signal. This approach had two limitations:
The chain can be 100 blocks ahead of schedule while the last 50 blocks
averaged exactly 600s — the window shows "normal" but the chain is not.
and the error-cap (±1800s) distorts the signal under extreme conditions.
Block lag solves both: it is a single, global, monotonically meaningful metric
that directly measures what matters — whether the chain is on schedule. It uses
wall-clock time, which is objective and independently verifiable by any observer.
It requires no window, no averaging, and no error capping.
WALL-CLOCK SECURITY:
The cASERT equalizer uses time(nullptr) (wall-clock time), not block timestamps. Block timestamps
are miner-controlled within MTP/future-drift bounds and could be manipulated to
fake the lag signal. Wall-clock time is the node's own system clock, which is not
influenced by miners. Each node independently computes the same lag for a given
height at a given real-world moment.
Note: nodes with significantly misconfigured clocks will compute different lag
values. This is acceptable because the equalizer affects stability verification intensity,
not numerical difficulty — cASERT bitsQ (which uses block timestamps) handles the
consensus-critical difficulty adjustment. A node with a clock off by a few minutes
may compute L3 instead of L4, but the resulting block is still valid as long as
commit <= target(powDiffQ). The equalizer is consensus-critical — validators enforce the
correct equalizer profile for each block's timestamp context.
3.13 Node Synchronization and Verification Policy
FULL: recompute full ConvergenceX proof for each block.
ADAPTIVE (default): FULL on recent tail + sampling; BASIC deep history.
BASIC: header/difficulty/time/target checks only; MUST NOT accept tip blocks.
3.13.1 Fast Sync — Hard Checkpoints and Assumevalid Anchor
New nodes joining the network can skip expensive ConvergenceX recomputation for trusted historical blocks. Structural, semantic, and economic validation always runs — only the expensive CX recompute is conditionally skipped.
Trust model (two independent mechanisms):
1. Hard checkpoints: A block is trusted ONLY if its height AND block hash match a hardcoded checkpoint exactly. Lower height alone is never sufficient to grant trust.
2. Assumevalid anchor: Similar to Bitcoin Core’s -assumevalid flag. If a known block hash exists on the active chain, ancestors of that branch can skip expensive CX recomputation. If the anchor is not on the active chain (e.g. during a chain split), no fast trust is granted.
Verification always performed (all blocks, all modes):
- Header structure and magic bytes
- Timestamp validation (MTP monotonicity + future drift)
- cASERT bitsQ difficulty compliance
- SOSTCompact target threshold (commit <= target)
- Coinbase split correctness (50/25/25)
- Constitutional address verification
- Transaction structure and semantic rules
- UTXO set updates (ConnectBlock)
Verification skipped (trusted historical blocks only):
- Full 100,000-round gradient descent recomputation
- 4GB scratchpad + 4GB dataset reconstruction (miner-only memory)
- Stability basin re-verification
Any node operator can force full verification with --full-verify. Checkpoints and the assumevalid anchor are committed in source code, reviewed by the development team, and updated with each release. A block must have been fully verified by at least one trusted node before being added as a checkpoint or set as the assumevalid anchor.
This mechanism does not change consensus rules. A block that passes fast sync verification would also pass full verification.
3.14 Worked Example — How a Block Is Mined and Verified (ConvergenceX + cASERT)
This section provides a technical but simple walkthrough of how a SOST block is constructed and validated, using real-looking values as an example.
3.14.1 Inputs (example)
prev_hash: 32 bytes
merkle_root: 32 bytes
timestamp ts = 1,771,700,109
MedianTimePast MTP = 1,771,697,922
powDiffQ = 350,629 → powDiffQ / 65,536 ≈ 5.35 bits
cASERT equalizer selected stability parameters:
scale=1, k=4, margin=165, steps=4, stab_shift=20
3.14.2 Timestamp Rules (MTP + Future Drift)
Rule A: ts > MTP
Here: 1,771,700,109 > 1,771,697,922 → OK (difference 2,187s).
Rule B: ts <= now + MAX_FUTURE_DRIFT (e.g., 600s) → prevents "future blocks".
3.14.3 cASERT bitsQ Difficulty (powDiffQ → target)
Difficulty is encoded as Q16.16 log-space:
bits ≈ powDiffQ / 65,536 ≈ 5.35
Validity requires:
commit <= target(powDiffQ) (big-endian integer comparison)
cASERT bitsQ update intuition:
if blocks slow → reduce powDiffQ → easier
if blocks fast → increase powDiffQ → harder
then clamp per-block change and global bounds.
3.14.4 cASERT Equalizer — What the stability parameters mean
scale=1: each perturbation component in [-1, +1] ("how far we poke")
k=4: number of probes (more probes = stronger certificate)
steps=4: refinement steps per probe
margin=180: tolerated bounded growth in local distance
stab_shift=20: conservative refinement step size (smaller updates)
3.14.5 One mining attempt (simple pipeline)
header_core = prev_hash || merkle_root || ts || powDiffQ
block_key = SHA256(prev_hash || "BLOCK_KEY")
seed = SHA256(MAGIC||"SEED"||header_core||block_key||nonce||extra_nonce)
run 100k sequential rounds + scratch mixing + checkpoints
compute checkpoints_root
stability basin verification using cASERT equalizer params
commit = SHA256(... all bound components ...)
accept iff commit <= target(powDiffQ)
block_id = SHA256(full_header || "ID" || commit)
3.14.6 What a validator does
BASIC: checks time, cASERT bitsQ powDiffQ, commit<=target, and linkage.
FULL: recomputes ConvergenceX proof and compares commit/cp_root/metric/block_id.
4. Monetary Policy
4.1 Feigenbaum Emission Schedule (Consensus-Critical)
Epoch-constant subsidy with exponential decay:
TARGET_SPACING = 600 seconds
BLOCKS_PER_EPOCH = 131,553
Decay factor q = exp(-1/4) implemented as fixed-point:
Q_NUM = 7,788,007,830,714,049
Q_DEN = 10,000,000,000,000,000
Initial reward:
R0_STOCKS = 785,100,863 (7.85100863 SOST)
Consensus rule:
epoch = height // BLOCKS_PER_EPOCH
reward = floor(R0 * q^epoch) // fixed-point exponentiation by squaring
4.1.1 Hard Cap by Construction (Consensus-Critical)
SOST enforces a maximum supply by construction, not by tracking cumulative supply on-chain.
Let B = BLOCKS_PER_EPOCH and 0<q<1. Since floor(x) ≤ x:
TotalIssued ≤ B Σ_{e≥0}(R0 q^e) = B * R0 / (1 - q) ≤ SUPPLY_MAX_STOCKS
because R0 is chosen from SUPPLY_MAX_STOCKS and q exactly as defined.
No other minting path exists. Any block that mints more than subsidy(height) is invalid.
Any shortfall due to flooring remains permanently unissued.
Hard cap: 4,669,201 SOST enforced at consensus level. Subsidy drops to zero when cap is reached; miners earn fees only.
4.2 Coinbase Split — Constitutional Rule (Consensus-Critical)
q = reward // 4
gold = q
popc = q
miner = reward - gold - popc
Invariant: miner + gold + popc == reward
4.3 Coinbase Transaction Format (Normative)
Exactly 3 outputs in canonical order:
miner
FUNDING_VAULT_ADDR
POPC_POOL_ADDR
Amounts must match the split exactly. Any deviation → invalid block.
4.4 Supply Projections
VAULT ACCUMULATION (PoPC Pool & Gold Funding Vault each receive 25%):
Epoch 0 (years 0-2.502): 258,210 SOST per vault
Year 1 alone: 103,160 SOST per vault
TOTAL SUPPLY BREAKDOWN:
Miners: 2,334,600 SOST (50%)
Gold Funding Vault: 1,167,300 SOST (25%)
PoPC Pool: 1,167,300 SOST (25%)
Maximum: 4,669,201 SOST (hard cap)
~95% of total supply mined in ~12 epochs (~30 years)
4.5 Comparison: SOST Emission vs Bitcoin Emission (Respectful)
| Property | Bitcoin | SOST |
| Max supply | 21,000,000 BTC | 4,669,201 SOST |
| Initial reward | 50 BTC/block | 7.851 SOST/block |
| Decay method | Halving every 210,000 blocks | Smooth 9.03% annual decay |
| Decay events | Discrete cliff (reward drops 50% overnight) | Continuous (no cliff events) |
| Mining allocation | 100% to miner | 50% miner, 25% gold, 25% PoPC |
| Smallest unit | 1 satoshi (10⁻⁸ BTC) | 1 stock (10⁻⁸ SOST) |
| ~95% emission | ~2036 (year 28) | ~2056 (year 30) |
| Supply cap enforcement | Consensus rule | Subsidy-by-height only (upper-bounded by construction) |
5. Metals Protocol Reserve
5.1 How It Works — Two-Vault Architecture
SOST uses a two-vault architecture to separate operational liquidity from permanent reserve storage.
TWO-VAULT ARCHITECTURE
FUNDING VAULT (operational, on SOST chain):
via publicly auditable operational execution (Section 5.3).
HERITAGE RESERVE (Heritage, Ethereum mainnet):
precious-metal tokens (default: XAUt and PAXG).
except under the Emergency Catastrophe procedure (Section 5.2 + Appendix G).
FLOW:
Block reward (coinbase) →
[Gold Funding Vault (SOST)] → sell SOST (TWAP) → buy XAUT/PAXG →
[Heritage Reserve (XAUT/PAXG)] → HERITAGE / SEALED — Perpetual by default;
movable only via Emergency Catastrophe.
WHY TWO VAULTS:
ASSET POLICY:
Default split: The conversion pipeline targets 50/50 acquisition of XAUt and PAXG
by default. During Phase I (before block 10,000), the protocol developer may adjust this split operationally;
after V6 activation, adjustments require protocol-level governance. All adjustments apply only to future purchases and must be disclosed in batch reports.
Previously purchased reserve assets are not rebalanced except under Emergency Catastrophe.
5.2 Constitutional Rules — Metals Reserve
The following rules are constitutional (project-level commitments) and are enforced either by SOST consensus (Gold Funding Vault inflow) or by immutable smart contracts and public auditability (Heritage Reserve behavior and reporting).
Metals Reserve Constitution (immutable at genesis)
G1 (Consensus Allocation): Every valid block MUST pay the Gold Funding Vault exactly q = reward // 4.
Any block that fails to do so is invalid.
G2 (Two-Vault Separation): Gold Funding Vault is operational; Heritage Reserve is sealed storage.
All purchased XAUT/PAXG MUST be deposited into the Heritage Reserve.
G3 (Heritage Reserve): The Heritage Reserve is deployed on Ethereum mainnet and is sealed by default.
No outbound transfers occur in normal operation. Reserve assets are intended to remain perpetual
and untouched while SOST exists, except under Emergency Catastrophe authorization.
G4 (Purchase Start Delay + Market Readiness): Purchases begin no earlier than 8 months after public launch
and only once market readiness is met. Market readiness requires at least one verifiable execution
venue capable of selling SOST and acquiring XAUt/PAXG under the TWAP policy with bounded slippage.
A venue may be a CEX, OTC desk, or a DEX with demonstrated liquidity, provided execution produces
a publicly auditable batch trail.
G5 (Batching / Anti-Momentum): Purchases are executed in batches and MUST follow a
rule-based TWAP execution policy (Section 5.3.1), not discretionary market-timing.
G6 (Allowlist + Staging Assets): Reserve assets are limited to allowlisted precious-metal tokens
(default: XAUt and/or PAXG). USDC and USDT may be used strictly as temporary staging assets during
execution (≤72 hours) and are not Reserve assets.
G7 (Default 50/50; Future Purchases Only): Default acquisition targets 50/50 XAUt/PAXG.
During Phase I (before block 10,000), the protocol developer may adjust the split operationally; after V6 activation,
adjustments require protocol-level governance. Adjustments apply only to future
purchases and must be disclosed in batch reports. Previously purchased reserve assets are not
rebalanced except under Emergency Catastrophe.
G8 (Issuer Risk Policy): During Phase I, the protocol developer may redirect future purchases away from a threatened issuer
without consensus. After V6 activation (block 10,000), redirection requires protocol-level governance. Previously purchased reserve assets remain sealed unless Emergency Catastrophe
is authorized.
G9 (Emergency Catastrophe — V6 5-Defense Gold Vault Model):
The Gold Vault must be able to change form, but not purpose. Reserve movements are permitted only under a narrowly defined catastrophe procedure intended for issuer failure/migration events or existential reserve-safety events. After V6 activation (block 10,000), emergency reserve operations require ALL five constitutional defenses to be satisfied simultaneously:
Defense 1 (Purpose Restriction): Vault funds may only be used for reserve operations
(rotation, migration, or redistribution). No general-purpose spending.
Defense 2 (Dual Destination Whitelist): Outbound transfers are restricted to constitutional
addresses only. Adding a new valid destination requires a hard fork, not a vote.
Defense 3 (Hard Per-Spend Cap): No single transaction may move more than 2% of vault balance.
Defense 4 (Asymmetric Rate Limiting): GV1 (routine rotation): max 5% of balance per 30-day
window. GV3 (non-routine migration): 30-day cooldown between operations.
Defense 5 (95% Supermajority): Non-routine reserve migration (GV3) requires ≥95% miner
signaling in a defined activation window, recorded on-chain as
EmergencyApproved(proposalId, paramsHash, startHeight, endHeight).
GV2 (operational small spend ≤10%) is eliminated. Vault SOST is never burned.
Signaling window (default): Approval is measured over a window of 24 hours, equivalent to
W = 144 blocks with a target of 600s per block (10 minutes).
Supermajority (95%): The emergency shall be considered approved if, within that window,
at least 95% of blocks include the support signal (YES ≥ ceil(0.95 × W)). With the default
value W = 144, this requires YES ≥ 137 signaled blocks.
Emergency actions are limited to exactly two action types:
(E1) ROTATE: rotate reserve holdings to other allowlisted precious-metal tokens (including XAUt↔PAXG).
(E2) LIQUIDATE→BUY→REDISTRIBUTE: liquidate precious-metal tokens to acquire SOST and redistribute it,
with a fully auditable trail.
During Phase I (before block 10,000), the protocol developer may pause purchases or adjust future purchase policy operationally without consensus,
disclosed via batch reports. After V6 activation, such adjustments require protocol-level governance.
G10 (Transparency): Both vault addresses, all batch reports, and all relevant transaction proofs
MUST be publicly published in a reproducible format.
5.3 Automated Vault Execution Architecture
The Gold Funding Vault conversion pipeline is designed to be operationally automated and fully auditable, without requiring a cross-chain bridge or wrapped SOST (wSOST). No trustless cross-chain mechanism is used; instead, automation is achieved through a deterministic execution stack with public attestations at every stage.
VAULT EXECUTION PIPELINE (no bridge, no wSOST)
WATCHER (SOST chain):
Monitors the Gold Funding Vault balance continuously.
Detects when accumulated SOST exceeds a batch threshold.
BATCHER:
Creates a signed execution order when threshold is met.
EXECUTOR (CEX / OTC / DEX where feasible):
Sells SOST in TWAP clips per policy (Section 5.3.1).
Purchases XAUT and/or PAXG with proceeds.
Deposits purchased tokens into the Heritage Reserve (sealed).
ATTESTOR:
Publishes a public batch record.
TRUST MODEL:
Consensus-level allocation to the Gold Funding Vault: trustless (hardcoded by validation rules).
Conversions and purchases are operational and auditable. During Phase I (before block 10,000),
the protocol developer may adjust execution parameters (including the default 50/50 split)
and may pause purchases. After V6 activation, adjustments require protocol-level governance.
Movements of previously purchased reserve assets require Emergency Catastrophe
authorization (Appendix G).
No bridge, no wSOST, no smart contract dependency between chains beyond the Heritage Reserve itself.
(Subject to progressive decentralization per C16.)
5.3.1 Execution Policy: TWAP Batch Sales (Operational, Non-Consensus)
SOST's Gold Funding Vault accumulates SOST by consensus (25% of coinbase). Conversions from SOST into tokenized gold exposure (XAUT/PAXG) are operational actions executed by the protocol developer (Phase I) or the automated execution stack (post-V6), with the explicit goal of minimizing market impact while maximizing auditability and predictability.
TWAP (Time-Weighted Average Price) means executing a daily sell budget as many small, evenly spaced limit orders over time (e.g., across 24 hours), so the realized execution price approximates the market's average price over that window and minimizes market impact.
Objective. Convert a portion of the Gold Funding Vault's SOST into XAUT/PAXG with:
TWAP Policy (WP-friendly)
Recommended starting parameters (tunable operationally)
DailySell = min(VaultBalance × 0.25%, DailyVolume × 2%)reduce the sell budget (e.g., cut in half) or pause execution for 24 hours.
Anti-crash layer (liquidity-aware throttling)
to volume and vault-balance limits.
Simple example (illustrative)
"Today the exchange reports 500,000 SOST of daily volume. Our policy allows selling at most 2% of daily volume: 10,000 SOST. Instead of selling 10,000 SOST at once, the executor sells 100 clips of 100 SOST distributed throughout the day using limit orders, enforcing a 1% max slippage rule per clip."
Audit and transparency (mandatory)
Each batch record MUST include:
This framework exists to prevent the common criticism that a project "dumps whenever it wants."
Execution is rate-limited, rule-based, and publicly auditable.
5.4 Heritage Reserve and Dissolution
Heritage (default state, perpetual)
The Heritage Reserve remains sealed by default. No outbound transfers occur in normal operation.
The gold tokens remain a permanent, publicly verifiable reserve record.
"Decades of collective work — converted to gold exposure — preserved."
Dissolution (network lifecycle only)
Trigger: 90 consecutive days with zero blocks (dead-man switch).
A 60-day public notice window begins.
The chain is declared terminated operationally ("project wind-down").
Reserve assets may only be accessed under:
Dissolution enables access to the reserve for orderly wind-down. During Phase I, the protocol developer is responsible for distributing reserve assets transparently after the 60-day public notice window expires. After V6 activation, distribution is executed via the protocol's automated governance mechanism.
5.4.1 Liveness Monitoring and Dissolution Process (Operational, Non-Consensus)
The protocol distinguishes between consensus rules (immutable) and operational procedures (auditable). The "dead-man switch" is an operational process designed to provide transparency and an orderly wind-down if the chain becomes inactive.
Definitions
State-based timeline
(debugging, client releases, miner outreach, incident reporting). No liquidation actions occur.
(root cause, repository state, known vulnerabilities, recovery attempts). No liquidation actions occur.
60-day public notice window.
operational steps for wind-down.
Illustrative example
Important constraint
Dissolution enables orderly access to reserve assets for wind-down and distribution. If the chain dies, the 90-day dead-man switch triggers, followed by a 60-day public notice period. During Phase I, the protocol developer declares Formal Dissolution and executes the wind-down. After V6 activation (block 10,000), dissolution and reserve distribution are governed by the protocol's automated mechanisms.
5.5 Reserve Evolution Path
Phase 1 — Tokenized Reserve (Genesis - Year 3):
┌─────────────────────────────────────────┐
│ Heritage Reserve holds XAUT/PAXG tokens │
│ on Ethereum mainnet. │
│ │
│ Advantages: │
│ • No infrastructure needed │
│ • Liquid, auditable, immediate │
│ │
│ Risks: │
│ • Issuer dependency (Tether, Paxos) │
│ • Counterparty risk │
└─────────────────────────────────────────┘
Phase 2 — Physical Transition (Year 3-5):
┌─────────────────────────────────────────┐
│ When Reserve exceeds 500 oz equivalent: │
│ │
│ 1. Protocol developer establishes legal │
│ entity (Swiss/Liechtenstein) │
│ 2. Contract with LBMA-approved vault │
│ 3. Redeem XAUT/PAXG → physical delivery │
│ 4. Transfer to protocol-controlled vault│
│ 5. Independent quarterly audits │
└─────────────────────────────────────────┘
Phase 3 — Sovereign Reserve & Multi-Metal Platform (Year 3-5+):
┌─────────────────────────────────────────┐
│ SOST Precious Metals Reserve: │
│ │
│ • Physical Gold, Platinum, Palladium, │
│ Rhodium, Iridium, Ruthenium, Osmium, │
│ Rhenium, silver (allocation TBD) │
│ • Zero intermediaries │
│ • Protocol-governed vault custody │
│ • Public serial numbers + audit reports │
│ • 100% independent of token issuers │
│ │
│ Heritage rules apply equally to │
│ physical metals as to tokenized metals. │
│ │
│ MULTI-METAL TOKENIZATION VISION: │
│ │
│ Long-term objective: SOST blockchain │
│ becomes an infrastructure for the │
│ tokenization, storage, and exchange of │
│ multiple essential precious metals — │
│ each token always backed 1:1 by its │
│ physical counterpart stored in │
│ auditable vaults (LBMA-approved or │
│ equivalent), with independent proof │
│ of reserves published on a regular │
│ schedule. │
│ │
│ Target metals: Gold, Silver, Platinum, │
│ Palladium, Rhodium. │
│ │
│ This transforms SOST from a single │
│ gold-reserve chain into a multi-asset │
│ precious metals exchange layer — where │
│ every gram tokenized is demonstrably │
│ backed by physical metal that exists, │
│ is audited, and is independently │
│ verifiable. │
└─────────────────────────────────────────┘
6. Proof of Personal Custody (PoPC)
No consensus changes. All PoPC logic remains operational/application-layer except that the PoPC Pool receives 25% coinbase by consensus.
Activation: protocol-scheduled after block 10,000, subject to network readiness (see §6.13).
6.1 What PoPC Is — And Is Not
PoPC is not a tokenization of gold. It does not promise yield, stability, or redeemability. It is a voluntary time-bound commitment protocol with automatic economic consequences. A participant promises to maintain custody of precious metals for a defined period, backs that promise with a SOST bond, and is rewarded if they keep their word. If they break it, their bond is slashed automatically — no human judge involved.
6.2 Why It Is Unique
| Protocol | What it actually does |
| MakerDAO | Deposit ETH (volatile crypto) → receive DAI. Collateral is crypto. Goal: price stability. |
| Compound/Aave | Deposit crypto → borrow crypto. All digital. No physical world connection. |
| Any staking protocol | Lock token X → earn token X. Circular. No external asset backing. |
| SOST PoPC | Lock SOST bond → prove custody of real gold (XAUT/PAXG). Audited by PoW entropy. No custodian. No bridge. |
6.3 ConvergenceX Entropy for Audits
No party — not the protocol, not any server — decides when a user gets audited. The schedule is derived deterministically from ConvergenceX block entropy:
AUDIT SEED (per block):
seed = SHA256(block_id || commit || checkpoints_root)
This uses the full entropy triple from the ConvergenceX proof.
All three components depend on the complete 100,000-round computation.
AUDIT TRIGGER (per contract, per period):
r = PRF(seed, contractId, periodIndex)
if r < p(reputation_stars):
AUDIT REQUIRED
AUDIT PROBABILITY BY REPUTATION:
0 stars (new): p = 0.30 (30% of periods audited)
1 star: p = 0.20
3 stars: p = 0.10
5 stars (veteran): p = 0.05 (5% of periods audited)
VERIFICATION (script, no humans):
1. User signs message with Ethereum wallet
2. ecrecover() confirms control of the declared wallet (no trust needed)
3. Verifier uses multiple independent RPC endpoints with a
deterministic retry schedule; results are logged and attested:
token.balanceOf(user_wallet) >= committed_amount
4. EOA VERIFICATION: the declared wallet MUST be an Externally Owned
Account (extcodesize == 0). Smart contract wallets, multisig wallets,
and proxy contracts are not eligible for Model A. EOA status is
verified at contract creation AND at every subsequent audit. If code
is detected at the wallet address during any audit (e.g., via CREATE2
deployment after commitment), the contract is automatically slashed.
5. CONTINUOUS CUSTODY CHECK: the audit verifies not only the balance at
the audit block, but also samples historical balances at deterministic
checkpoints (derived from ConvergenceX entropy) across the period since
the last audit. If the balance dropped below the committed amount at
any sampled checkpoint, this constitutes a custody violation and
triggers a slash — even if the balance was restored before the audit.
6. If all checks pass: checkpoint passed
7. If any check fails: SLASH
6. If no response within 48h: 48h GRACE period is the sole window.
No additional grace periods beyond 48h. Slash only if non-response
persists and RPC availability is confirmed by multiple independent
endpoints.
6.4 Model A — Commitment with SOST Bond (Autocustody)
Model A: For crypto natives, miners, traders 1. User buys SOST on CEX 2. Declares Ethereum wallet holding XAUT/PAXG 3. Locks SOST bond (dynamic, based on ratio SOST/gold) 4. Commits to maintain custody for 1/3/6/9/12 months 5. ConvergenceX entropy schedules random audits 6. Script verifies XAUT/PAXG balance via Ethereum RPC 7. On completion: recovers bond + reward from PoPC Pool 8. On failure: bond slashed automatically In Model A, the gold NEVER leaves the user's wallet. Your gold never leaves your wallet. Only the posted SOST bond is at risk. The protocol has no access to, custody of, or control over the user's gold tokens. Trust required: MEDIUM (keeps gold in own wallet, only SOST bond at risk)
6.5 Dynamic Bond — Model A
All fiat-denominated values use USD as the reference currency for documentation. The protocol is currency-agnostic — bond sizing depends on the SOST/gold ratio, not on any specific fiat currency. The bond is always denominated in fiat value, converted to SOST at market price (7-day TWAP). As SOST appreciates relative to gold, the bond percentage increases gradually to maintain deterrence. The bond is designed to create deterrence and alignment, not to fully collateralize the committed asset. Sub-collateralization is intentional and compensated by layered deterrence (bond + reputation + blacklist + size limits).
DYNAMIC BOND CALCULATION:
ratio = sost_price / gold_oz_price
ratio < 0.0001 → bond = 12% of gold value
0.0001 <= ratio < 0.001 → bond = 15%
0.001 <= ratio < 0.01 → bond = 20%
0.01 <= ratio < 0.1 → bond = 25%
0.1 <= ratio < 0.2 → bond = 26%
0.2 <= ratio < 0.3 → bond = 27%
0.3 <= ratio < 0.4 → bond = 28%
0.4 <= ratio < 0.5 → bond = 29%
ratio >= 0.5 → bond = 30% (maximum)
bond_sost = bond_fiat / sost_price_TWAP_7d
RATIO THRESHOLDS (price-independent):
The system uses RATIOS, not fixed prices. The ratio automatically
adjusts to any gold or SOST price. Examples:
┌────────────────────┬────────────────────┬─────────┬─────────┐
│ Gold price │ SOST price │ Ratio │ Bond % │
├────────────────────┼────────────────────┼─────────┼─────────┤
│ $2,700 │ $1 │ 0.00037 │ 15% │
│ $2,700 │ $100 │ 0.037 │ 25% │
│ $2,700 │ $1,350 │ 0.50 │ 30% │
│ $5,000 │ $185 │ 0.037 │ 25% │
│ $5,000 │ $2,500 │ 0.50 │ 30% │
└────────────────────┴────────────────────┴─────────┴─────────┘
Note: The ratio determines the bond %, regardless of currency or
absolute prices. If gold doubles in price, the SOST threshold for
each bond tier also doubles proportionally.
EXAMPLES (assuming 1oz gold = $2,700 at time of contract):
Example 1: SOST = $1 (early stage)
ratio = $1 / $2,700 = 0.00037
0.00037 < 0.001 → bond = 15%
bond_usd = 15% × $2,700 = $405
bond_sost = $405 / $1 = 405 SOST
Example 2: SOST = $100 (growth stage)
ratio = $100 / $2,700 = 0.037
0.037 < 0.1 → bond = 25%
bond_usd = 25% × $2,700 = $675
bond_sost = $675 / $100 = 6.75 SOST
Example 3: SOST = $500 (mature stage)
ratio = $500 / $2,700 = 0.185
0.185 < 0.2 → bond = 26%
bond_usd = 26% × $2,700 = $702
bond_sost = $702 / $500 = 1.40 SOST
Example 4: SOST = $1,000 (high value)
ratio = $1,000 / $2,700 = 0.37
0.37 < 0.4 → bond = 28%
bond_usd = 28% × $2,700 = $756
bond_sost = $756 / $1,000 = 0.756 SOST
Example 5: SOST = $2,000 (premium)
ratio = $2,000 / $2,700 = 0.74
0.74 >= 0.5 → bond = 30%
bond_usd = 30% × $2,700 = $810
bond_sost = $810 / $2,000 = 0.405 SOST
DESIGN RATIONALE:
- Gradual scale (25% → 26% → 27% → 28% → 29% → 30%) avoids sudden jumps
- Maximum bond (30%) only reached when ratio >= 0.5 (SOST worth half an oz)
- The "pain" of losing the bond remains proportional at any price level
- Low SOST price → many SOST deposited (but low fiat value)
- High SOST price → few SOST deposited (but high fiat value)
- System is RATIO-based, not price-based: works at any gold/SOST price
- All examples use USD; the system is ratio-based and currency-agnostic
REPUTATION TIERS:
┌──────────────────────┬──────────┬──────────┬───────────────────────┐
│ Tier │ Max oz │ Audit % │ Progression │
├──────────────────────┼──────────┼──────────┼───────────────────────┤
│ 0 stars (new) │ 0.5 oz │ 30% │ entry level │
│ 1 star (established) │ 1 oz │ 20% │ after 1 successful │
│ 3 stars (trusted) │ 3 oz │ 10% │ after 3 cumulative │
│ 5 stars (veteran) │ 10 oz │ 5% │ after 5 cumulative │
└──────────────────────┴──────────┴──────────┴───────────────────────┘
Progression: 0→1 after 1 successful contract, 1→3 after 3 cumulative
successful contracts, 3→5 after 5 cumulative successful contracts.
Slash resets reputation to 0 stars.
REPUTATION SCOPE:
Reputation is wallet-level. Each completed contract contributes to the
wallet's reputation score. Stars represent the wallet's cumulative track
record, not individual contract performance.
6.6 Price Bulletin and Bond Consent (Normative)
Bond sizing requires a market reference for SOST and gold prices. To avoid on-chain oracle dependency and discretionary pricing, PoPC uses a Price Bulletin model with explicit user consent:
PRICE BULLETIN (off-chain, publicly auditable):
Published daily by the protocol developer (Phase I) / automated oracle (post-V6):
bulletin = {
day: YYYY-MM-DD,
sost_usd_twap_7d: P_sost,
gold_usd_twap_7d: P_gold,
sources: [exchange feeds / API references — includes all
exchanges where SOST has verifiable liquidity at
publication time, with public API endpoints. No
fixed minimum or maximum number of exchanges;
the list adapts as SOST is listed on or delisted
from trading venues. Each source must use a
publicly accessible and reproducible API],
method: "TWAP_7d",
bulletin_hash: SHA256(canonical_json(bulletin)),
developer_sig: EIP-712_sign(developer_key, bulletin_typed_data)
}
Publication: website + GitHub + IPFS mirror (redundant, immutable).
The bulletin is informational. It does not directly control any contract.
BOND TERMS (client-side calculation + user consent):
Given user commitment (gold_amt, duration, model):
gold_value_fiat = gold_amt × P_gold
ratio = P_sost / P_gold
bond_pct = constitutional_table(ratio)
bond_fiat = bond_pct × gold_value_fiat
bond_sost = bond_fiat / P_sost
The client constructs a Bond Terms package:
terms = {
model, user_wallet, gold_token, gold_amt, duration,
bulletin_hash, P_sost, P_gold, ratio, bond_pct, bond_sost,
nonce, expiry
}
terms_hash = keccak256(encode(terms))
user_sig = ECDSA_sign(user_key, terms_hash)
ON-CHAIN FINALIZATION (no oracle, no daily updates):
The PoPC contract accepts (terms + developer_sig + user_sig) and verifies:
1. EIP-712_recover(developer_sig, terms_typed_data) == developer_key
2. ecrecover(user_sig, terms_hash) == user_wallet
3. terms.expiry >= block.timestamp (freshness / anti-replay)
4. bond_pct matches constitutional table for provided ratio
5. bond_sost transferred from user and locked
Once accepted:
- Contract stores bond_sost and commitment parameters.
- Contract does NOT store live prices.
- Contract does NOT support price updates.
- No protocol action required after finalization.
PRICE VOLATILITY DURING CONTRACT:
Prices are FROZEN at contract creation (bulletin of entry day).
Multi-month price oscillation is absorbed by design:
- Model A: bond is locked SOST; gold stays in user wallet.
Volatility does not affect the contract mechanics.
- Model B: SOST payout is calculated and delivered upfront
at entry price. No repricing during the term.
This eliminates oracle risk and discretionary pricing entirely.
DEVELOPER SIGNATURE (EIP-712 typed data — Phase I):
Terms (including P_sost, P_gold, bond_pct, and reward) are signed by an
authorized developer key using EIP-712 typed data signatures. The smart
contract verifies the developer signature before accepting any commitment.
Users cannot submit self-signed terms. After V6 activation (block 10,000),
this signing role transitions to an automated oracle with on-chain verification.
SECURITY PROPERTIES:
- No on-chain oracle: pricing is not consensus-critical.
- No discretionary pricing: the protocol developer cannot set a user's bond.
- Dual consent: every contract requires both a developer EIP-712 signature
on the terms and a user signature. Neither party can act unilaterally.
- Auditability: any party can reproduce bond sizing from bulletin + terms.
- Permissionless verification: bulletin data + sources are public.
- Developer-attested (Phase I): the PoPC contract verifies the developer's EIP-712
signature on terms before accepting any commitment. Independent parties
may audit bulletin data, but on-chain terms require developer attestation.
Post-V6, attestation transitions to automated oracle.
- Malicious bulletin protection: because both the developer must sign the
terms and the user must explicitly co-sign, neither party can impose
pricing unilaterally. A malicious or incorrect bulletin simply results in
participants refusing to co-sign contracts based on it. No funds are at
risk from a bad bulletin.
(Subject to progressive decentralization per C16.)
6.7 Model A Rewards
Rewards are denominated in SOST (percentage of bond). This ensures the PoPC Pool can always pay regardless of SOST price. Longer commitments receive proportionally higher APR to incentivize long-term participation. Bond is fully recoverable upon successful completion.
| Duration | Reward (% of bond) | Equivalent APR |
| 1 month | 1% of bond in SOST | 12% annualized |
| 3 months | 4% of bond in SOST | 16% annualized |
| 6 months | 9% of bond in SOST | 18% annualized |
| 9 months | 14% of bond in SOST | 18.7% annualized |
| 12 months | 20% of bond in SOST | 20% annualized |
Dynamic Participation Tiers — rates decrease as active contracts grow:
| Tier | Contracts | Multiplier | A 12mo | B 12mo |
| EARLY ADOPTER | 0–25 | 100% | 20% | 8% |
| GROWTH | 26–50 | 75% | 15% | 6% |
| ESTABLISHED | 51–100 | 50% | 10% | 4% |
| MATURE | 101–200 | 30% | 6% | 2.4% |
| SCALE | 201–500 | 15% | 3% | 1.2% |
| MASS | 501–1,000 | 8% | 1.6% | 0.64% |
Hard Caps: 1,000 SOST max per contract · 1,000 active contracts max · 200 oz anti-whale cap · 10/5 SOST reward floor (A/B) · 3% fee (Model A) / 8% fee (Model B) · PUR (1-PUR)² pool protection
EXAMPLE: Model A — 12 month commitment
Assumptions at contract creation:
- Gold price: $2,700/oz (from Price Bulletin)
- SOST price: $100 (from Price Bulletin)
- User commits: 1 oz XAUT in their own wallet
STEP 1: Calculate ratio and bond
ratio = $100 / $2,700 = 0.037
0.037 < 0.1 → bond = 25%
bond_usd = 25% × $2,700 = $675
bond_sost = $675 / $100 = 6.75 SOST
STEP 2: User deposits 6.75 SOST as bond
STEP 3: User maintains gold custody for 12 months
- Random audits verify XAUT balance
- Gold NEVER leaves user's wallet
STEP 4: On successful completion
- Recovers: 6.75 SOST (original bond — 100% returned)
- Reward: 22% × 6.75 = 1.485 SOST
- TOTAL: 8.235 SOST
PROFIT (at original prices):
- Deposited: 6.75 SOST
- Received: 8.235 SOST
- Net gain: 1.485 SOST (20% return on bond)
- Gold: Still owns 1 oz XAUT
EXAMPLE: Model A — Slash (failure)
Same setup as above, but user sells their XAUT during contract.
Audit detects: balanceOf(user_wallet) < 1 oz
SLASH TRIGGERED:
- User loses: 6.75 SOST (entire bond)
- Distribution:
• 3.375 SOST → PoPC Pool (funds future rewards)
• 3.375 SOST → Gold Funding Vault (buys more gold)
- User's reputation: destroyed
- User's address: blacklisted
### 6.7.1 Protocol Fee — Model A
A protocol fee of 3% (Model A) or 8% (Model B) is calculated at commitment creation and locked; disbursement
occurs at successful completion. The fee is deducted from the calculated reward;
the user's bond is returned in full regardless.
base_reward = bond_sost × reward_table[duration]
protocol_fee = base_reward × 0.03
user_reward = base_reward - protocol_fee
Fee is locked at creation (immutable for the contract's lifetime).
Disbursement at completion (single atomic operation):
user receives: bond_sost + user_reward
protocol fee address receives: protocol_fee
EXAMPLE (12-month, same assumptions as Section 6.7):
Base reward (22%): 6.75 × 0.22 = 1.485 SOST
Protocol fee (3%): 1.485 × 0.03 = 0.045 SOST
User receives: 6.75 + 1.440 = 8.190 SOST
Protocol fee address: 0.045 SOST
User effective APR: 20.9% (vs 22% nominal)
Fee destination: protocol fee address (publicly auditable).
Fee purpose: infrastructure, watcher operation, bulletin publication,
exchange execution, security audits, development.
Fee changes require 30-day advance public notice and apply only to
NEW contracts. Existing contracts retain the fee rate locked at creation.
### 6.8 Model B — Timelocked Escrow, No Audits