CUSTODY PROTOCOL

Proof of
Personal Custody

A voluntary time-bound commitment protocol with automatic economic consequences. Participants prove custody of precious metals, backed by SOST bonds, audited by ConvergenceX block entropy. No oracle. No custodian. No governance.

PoPC | 25% of coinbase · ConvergenceX entropy audits · Automatic slashing
⚠ CURRENT STATUS

PoPC is implemented in the SOST node software and fully documented, but it is not yet active on mainnet. Activation is scheduled after block 10,000 (target April 2027). Activation is protocol-scheduled and subject to network readiness, external audit, and all technical validation prerequisites being met.

✔ Implemented in software ✔ Documented publicly ✔ RPC interfaces ready ✘ Not yet active on mainnet ✔ SOSTEscrow deployed on Sepolia ✔ First on-chain gold deposit (0.05 oz XAUT) ✔ E2E settlement flow verified (259 tests, 0 failed)
OVERVIEW

What PoPC Is

NOT A GOLD TOKEN
PoPC does not tokenize gold. Does not promise yield, stability, or redeemability. It is a commitment protocol with automatic consequences.
VOLUNTARY COMMITMENT
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.
AUTOMATIC ENFORCEMENT
If they break their commitment, their bond is slashed automatically — no human judge involved. Audit schedule derived from PoW entropy.
UNIQUE IN CRYPTO
Lock SOST bond → prove custody of real gold (XAUT/PAXG). Audited by PoW entropy. No custodian. No bridge. Unlike MakerDAO, Compound, or any staking protocol.
AUDIT SYSTEM

ConvergenceX Entropy Audits

Deterministic Audit Schedule
ENTROPY-DERIVED

No party — not the protocol, not any server — decides when a user gets audited. The schedule is derived deterministically from the ConvergenceX entropy triple: (block_id, commit, checkpoints_root).

// Audit seed from ConvergenceX proof seed = SHA256( block_id || commit || checkpoints_root ) // Per-contract trigger r = PRF( seed, contractId, periodIndex ) if r < p(reputation_stars): AUDIT REQUIRED // Verification (script, no humans) 1. User signs message with Ethereum wallet 2. ecrecover() confirms identity 3. token.balanceOf(wallet) ≥ committed_amount 4. if true: checkpoint passed 5. if false: SLASH
0 stars (new)
p = 0.30 — 30% of periods audited
1 star
p = 0.20 — 20% of periods audited
3 stars
p = 0.10 — 10% of periods audited
5 stars (veteran)
p = 0.05 — 5% of periods audited
MODEL A

Commitment with SOST Bond

Model A — Autocustody
FOR CRYPTO NATIVES

The gold never leaves the user’s wallet. Only the SOST bond is at risk. The protocol has no access to, custody of, or control over the user’s gold tokens.

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
1 monthup to 1% of bond in SOST
3 monthsup to 4% of bond in SOST
6 monthsup to 9% of bond in SOST
9 monthsup to 14% of bond in SOST
12 monthsup to 20% of bond in SOST

Rates are base maximums (Tier 1 — first 25 contracts). A dynamic participation tier system reduces rates as the number of active contracts grows: 100% (0-25), 75% (26-50), 50% (51-100), 30% (101-200), 15% (201-500), 8% (501-1000). Hard cap: 1,000 SOST max per contract. Max 1,000 active contracts. Anti-whale tiers apply above 10 oz. Protocol fee: 3% (Model A — lower fee rewards risk-taking).

Dynamic Bond Sizing
CONSTITUTIONAL C9

Bond percentage depends on the SOST/gold price ratio. As SOST appreciates relative to gold, the bond percentage decreases (less SOST needed). Pricing initially fixed (SOST=$1, gold=$10,000/oz), updated when SOST trades on exchanges.

ratio < 1%25% bond // SOST very cheap vs gold (current)
ratio 1-5%20% bond
ratio 5-10%15% bond
ratio 10-50%12% bond
ratio ≥ 50%10% bond (minimum)

Source: compute_bond_pct() in src/popc.cpp

MODEL B

Timelocked Escrow

Model B — No Audits, No Slash
FOR GOLD INVESTORS

User deposits XAUT/PAXG into an immutable escrow timelock contract (no admin key, no upgrade proxy, no pause function). Receives SOST immediately. At expiry, only the original depositor can withdraw full gold. No early exit.

// Escrow architecture contract = immutable // no proxy, no UUPS, no admin functions: deposit(token, amount, unlockTime) + withdraw(depositId) withdraw = ONLY by original depositor withdraw reverts if block.timestamp < unlockTime Protocol CANNOT access escrowed gold // SOST reward delivered IMMEDIATELY at deposit SOST_reward = gold_value × APR(duration) × (months / 12) / sost_price // User keeps SOST from day 1 — no vesting, no clawback
1 monthup to 0.4% of gold value, paid in SOST at deposit
3 monthsup to 1.5% of gold value, paid in SOST at deposit
6 monthsup to 3.5% of gold value, paid in SOST at deposit
9 monthsup to 5.5% of gold value, paid in SOST at deposit
12 monthsup to 8% of gold value, paid in SOST at deposit

Rates are base maximums (Tier 1). Same dynamic participation tiers apply as Model A. Hard cap: 1,000 SOST max per contract. Anti-whale tiers apply. Protocol fee: 8% (Model B — higher fee compensates zero risk).

GUIDE

How to Create a PoPC Contract

Model A — Step-by-Step
AUTOCUSTODY

Prerequisites

• An Ethereum wallet (MetaMask, Ledger, etc.) holding XAUT or PAXG tokens
• A SOST wallet with enough SOST to cover the bond
• Access to the SOST web wallet at sostcore.com/sost-wallet.html

Step 1: Calculate Your Bond

Go to the PoPC Registration section in the SOST wallet. Enter:
• Your Ethereum wallet address (0x...)
• How much XAUT you hold (in oz)
• How much PAXG you hold (in oz)
• Commitment duration (1, 3, 6, 9, or 12 months)

The calculator will show you exactly how much SOST you need to lock as bond and your expected reward (adjusted by current pool utilization).

Step 2: Register Your Commitment

Click "Register & Lock Bond". This calls the popc_register RPC command, which:
• Validates your Ethereum address and gold amounts
• Calculates your bond based on the current SOST/gold price ratio
• Calculates your dynamic reward (based on pool utilization)
• Reserves your reward in the PoPC Pool
• Returns your commitment_id and the exact bond amount to lock

Step 3: Lock Your Bond

Create a BOND_LOCK transaction for the exact SOST amount shown:
• In the SOST wallet: go to Send
• Or via CLI: sost-cli create-bond <amount> <lock_blocks>
• The bond is time-locked on the SOST blockchain (cannot be spent until your commitment period ends)
• Your bond is safe — it returns to you on successful completion

Step 4: Maintain Custody

Keep your XAUT/PAXG in your Ethereum wallet for the entire commitment period.
• Random audits are scheduled by ConvergenceX block entropy (you cannot predict when)
• An automated script checks your Ethereum balance periodically
• If your balance drops below the committed amount → your bond is slashed
• If you maintain custody → you receive bond + reward at the end

Step 5: Collect Bond + Reward

When your commitment period ends:
• The operator runs popc_release for your commitment
• Your bond is unlocked and returned to your SOST address
• Your reward is sent from the PoPC Pool to your SOST address
• Your reputation increases (more reputation = higher gold limits, fewer audits)

// Example: 1 oz gold ($10,000), 6-month commitment, SOST=$1 1. Gold value: $10,000 = 10,000 SOST equivalent 2. Bond: 25% of gold value = 2,500 SOST locked 3. Max reward: 9% of bond = 225 SOST (dynamic, adjusted by PUR) 4. Protocol fee: 3% of reward = 6.75 SOST 5. Net reward: ~213.75 SOST (at PUR=0%) 6. Total return: 2,500 + 213.75 = 2,713.75 SOST 7. Your gold: never moved — stays in your Ethereum wallet
Model B — Step-by-Step
ESCROW

Prerequisites

• XAUT or PAXG tokens in an Ethereum wallet
• A SOST wallet address to receive rewards
• Access to the escrow contract on Ethereum (address provided by SOST Governance)

Step 1: Deposit Gold into Escrow

Send your XAUT or PAXG to the immutable escrow contract on Ethereum:
• The contract has no admin key, no upgrade proxy, no pause function
• Call deposit(token, amount, unlockTime)
• Your gold is locked until the unlock time (1-12 months from now)
• Only YOU can withdraw after the lock expires — the protocol cannot access it

Step 2: Register on SOST

In the SOST wallet, register your escrow:
• Enter the Ethereum escrow contract address
• Enter your gold amount and duration
• The system calls escrow_register which verifies your deposit
• Your SOST reward is calculated and paid IMMEDIATELY

Step 3: Receive Reward Immediately

Unlike Model A, Model B pays the SOST reward upfront:
• Reward is sent from the PoPC Pool to your SOST address
• No vesting, no clawback
• You can use the SOST immediately

Step 4: Wait for Lock to Expire

• No audits — your gold is provably locked in the escrow contract
• No slash risk — there is no bond to lose
• Just wait for your chosen duration to pass

Step 5: Withdraw Your Gold

After the lock expires:
• Call withdraw(depositId) on the Ethereum escrow contract
• 100% of your gold is returned to your Ethereum wallet
• Register completion on SOST via escrow_complete

// Example: 1 oz XAUT ($10,000), 6-month escrow, SOST=$1 1. Deposit 1 oz XAUT into escrow contract (Ethereum TX) 2. Register on SOST → system verifies escrow deposit 3. Max reward: 3.5% of gold value = 350 SOST (dynamic, Tier 1) 4. Protocol fee: 8% = 28 SOST 5. Net reward: ~427.50 SOST paid immediately 6. After 6 months: withdraw 1 oz XAUT from escrow 7. Result: you keep 427.50 SOST + your 1 oz gold
// SOSTEscrow.sol — IMMUTABLE TIMELOCKED GOLD ESCROW CONTRACT
SOSTEscrow — Solidity ^0.8.24 — MIT License

Constitutional Properties:
NO admin key • NO upgrade proxy • NO pause • NO emergency withdrawal
Only the original depositor can withdraw • Only after timelock expires
Accepted tokens: XAUT (Tether Gold) + PAXG (Paxos Gold) — immutable allowlist
Lock duration: 28–366 days • ReentrancyGuard on all external calls

Functions:
deposit(token, amount, unlockTime) → depositId
  Transfers ERC-20 gold tokens to contract. Records deposit. Emits GoldDeposited.
withdraw(depositId)
  Returns tokens to depositor after timelock. Checks-effects-interactions pattern. Emits GoldWithdrawn.
getDeposit(id) • canWithdraw(id) • getUserDepositIds(user) • totalLocked(token)

Minimum Deposits:
XAUT: 1,000 units (6 decimals) ≈ 0.001 oz troy
PAXG: 1,000,000,000,000,000 units (18 decimals) ≈ 0.001 oz troy

Trust Model:
The contract holds gold tokens on Ethereum. SOST rewards are paid on the SOST chain by an off-chain watcher daemon that detects GoldDeposited events. The contract does NOT know or control SOST chain addresses. Reward payout, PoPC Pool, and Gold Vault are SOST-side consensus logic — separate from this Ethereum contract.

Status: Internally hardened and reviewed. Not externally audited. Testnet deployment pending.

Full source: contracts/SOSTEscrow.solFull contracts directoryInternal review report
Model A vs Model B — Which to Choose?
FeatureModel A (Autocustody)Model B (Escrow)
Gold locationYour Ethereum walletEscrow contract
SOST bond required?Yes (25% of gold value)No
When do you get reward?At completion (end)Immediately
Audits?Yes (random, PoW entropy)No
Slash risk?Yes (bond lost if custody fails)No
Max reward (12mo)20% of bond (Tier 1)8% of gold value (Tier 1)
Hard cap1,000 SOST max per contract · 1,000 active contracts max
Best forCrypto natives, HODLersGold investors, risk-averse
Dynamic Participation Tiers
AUTO-REGULATING

Reward rates decrease automatically as the number of active contracts grows. Early adopters receive the highest rates. This prevents pool depletion while incentivizing early participation.

TierActive ContractsMultiplierModel A 12moModel B 12mo
EARLY ADOPTER0 – 25100%20% of bond8% of gold
GROWTH26 – 5075%15%6%
ESTABLISHED51 – 10050%10%4%
MATURE101 – 20030%6%2.4%
SCALE201 – 50015%3%1.2%
MASS501 – 1,0008%1.6%0.64%
HARD CAPS
Max reward per contract1,000 SOST — absolute ceiling regardless of tier
Max active contracts1,000 — no new registrations beyond this
Max gold per contract200 oz — anti-whale hard cap (above 10 oz: reduced rates)
Reward floor10 SOST (Model A) / 5 SOST (Model B) — minimum per contract
Protocol fee3% Model A (risk-taker discount) / 8% Model B (zero-risk premium)
Pool protectionPUR quadratic curve (1-PUR)² + solvency check at registration
Where Rewards Come From
TRANSPARENT

PoPC rewards are funded exclusively by the PoPC Pool, which receives 25% of every mined block by consensus rule. This is not printed money — it is a fixed share of new SOST emission, allocated at genesis and enforced by every node on the network. The pool grows with every block and shrinks only when rewards are paid out.

Source25% of coinbase reward → PoPC Pool (consensus-enforced)
Income~283 SOST/day at current emission rate (~8,479 SOST/month)
ProtectionPUR (Pool Utilization Ratio) closes new registrations before pool is depleted
SustainabilityPool income continues for 30+ years (smooth emission decay, no halvings)
⚠ Important Notice
All SOST and USD values shown in examples are illustrative only, based on temporary reference prices. Actual values depend on market conditions at the time of contract creation. Reward percentages are fixed protocol rules; SOST and USD equivalents are not. PoPC is not a yield product, not a price guarantee, and not financial advice. It is a structured incentive mechanism with transparent, predefined rules.
DEPLOYMENT

Activation Conditions

PoPC Activation Requirements
CONDITION-DEPENDENT

PoPC will be activated once all of the following technical and network conditions are met. Target activation: block 10,000+ (April 2027). Activation proceeds only when the system is stable, all components are operational, and external audit is complete.

Block height ≥ 10,000Activation is tied to a protocol milestone and will not occur before this threshold.
Sustained network stabilityConsistent block production, stable sync across nodes, no critical consensus or networking issues.
Sufficient participationMinimum level of independent nodes and active miners to ensure reliable operation.
Model A contract validationRegistration, audit, reward, and slashing flows fully validated under live network testing.
Ethereum escrow deploymentFinal escrow contracts deployed, verified, and publicly auditable before Model B activation.
Explorer & wallet integrationPublic interfaces correctly reflect all PoPC states (pending, active, completed, slashed).

Activation note: PoPC activation is protocol-scheduled but condition-dependent. The protocol will announce activation with sufficient advance notice once all conditions are verified.

ENFORCEMENT

Slash Mechanics

Automatic Slashing (Model A only)
CONSTITUTIONAL C7/C8

Every fraud detected recycles the bond back into the protocol, funding future rewards and buying more gold for the reserve. Dishonesty strengthens the protocol. No human can override once triggered.

Trigger
Balance < Committed
or 48h no-response
after GRACE
50%
PoPC Pool
Funds future rewards
50%
Gold Vault
Buys more gold
EXTENSIONS

Physical Gold & ZK Proofs

Year 2–3: Physical Gold
EXTENSION

PoPC extends to physical gold (bars, coins, ingots). Users commit to custody of physical precious metals. Audit challenges derived from ConvergenceX entropy, executed via mobile app. No gold amount, location, or identity on-chain.

Year 3+: ZK Proofs
R&D

Zero-Knowledge proofs certify that the correct challenge algorithm executed correctly — without revealing data. Scope extends to platinum, palladium, rhodium. Will not deploy in a degraded state. Participants’ physical security is a non-negotiable prerequisite.

Timeline Flexibility Notice: The protocol reserves the right to accelerate or delay any committed timeline if it determines that the protocol can be implemented with maximum guarantees of technical reliability and security, or if additional development time is required to meet those standards.
TOOLING

Operator & Participant Tools

Read-only scripts for monitoring the pool, auditing commitments, and understanding Model B's roadmap. All live in scripts/ in the repository.

popc_monitor.py

Live dashboard for the PoPC Pool. Shows pool balance, active contracts, PUR%, current reward tier, dynamic factor, and effective rewards at the current tier. Alerts when PUR crosses 50%.

python3 scripts/popc_monitor.py \
  --rpc-user USER --rpc-pass PASS \
  --watch 30

Read-only · no consensus interaction · one-shot or --watch N mode.

popc_oracle.py

Etherscan audit tool. For each active commitment, queries the declared Ethereum wallet's XAUT/PAXG balance and compares it to the committed gold amount. Prints PASS/FAIL/ERROR per commitment and writes a CSV snapshot.

python3 scripts/popc_oracle.py \
  --rpc-user USER --rpc-pass PASS \
  --etherscan-key KEY \
  --csv /tmp/audit.csv

Read-only · never slashes automatically · operator decides on failures.

Model B roadmap

Formal roadmap for the Ethereum escrow smart contract that Model B requires. Covers what is missing, required security audit, realistic 16-22 week timeline, open design questions, and go/no-go criteria for mainnet launch.

Status: implemented — SOSTEscrow V2 deployed on Sepolia. Model A and Model B both targeting block 10,000+ activation on mainnet.

Read the roadmap on GitHub →
First-time participant? Read the step-by-step guide at sost-popc-quickstart.html — no prior SOST experience required.
🎮