git clone https://github.com/plurigrid/asi
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/able-markets" ~/.claude/skills/plurigrid-asi-able-markets && rm -rf "$T"
skills/able-markets/SKILL.md*Able Markets Skill
Trit: 0 (ERGODIC - coordinates market equilibrium)
Color: #19A845 (seed=137, index=1)
Foundation: Protocol Evolution Markets + *Able Quadrant + WEV
Overview
Prediction markets for protocol proposal outcomes across Swift Evolution, Aptos AIPs, and Scheme SRFIs. Financializes standard possible worlds through the *Able trait taxonomy.
*Able Quadrant Encoding
| Trit | *Able Trait | Market Role | Color |
|---|---|---|---|
| -1 | Queryable | Risk hedgers, validators | #9068DA |
| 0 | Derangeable | Market makers, arbitrageurs | #E3EF45 |
| +1 | Colorable | Speculators, early adopters | #C335A8 |
Derived *Able Traits from Proposals
AIP-137 → PQ-Signable (#5FE0B8, trit=0) AIP-129 → Replay-Protectable (#E2F25B, trit=+1) SRFI-265 → CFG-Composable SE-0475 → Observable
Active Draft Proposals
Aptos AIPs (High Priority)
| AIP | Title | Status | Last-Call | *Able Trait |
|---|---|---|---|---|
| 137 | Post-Quantum SLH-DSA | Draft | 02/09/2026 | PQ-Signable |
| 129 | Orderless Transactions | Draft | June 2025 | Replay-Protectable |
| 113 | Domain-based Account Abstraction | Active | - | Derivable |
Swift Evolution
| SE | Title | Status | *Able Trait |
|---|---|---|---|
| 0475 | Transactional Observation | In Review | Observable |
Scheme SRFIs
| SRFI | Title | Status | *Able Trait |
|---|---|---|---|
| 265 | CFG Language | Draft 2025-10-30 | CFG-Composable |
| 263 | Prototype Object System | Draft 2025-06-09 | Prototype-Clonable |
Market Mechanics
LMSR Pricing
import math class AbleMarket: """LMSR market for *Able proposal outcomes.""" def __init__(self, proposal_id: str, liquidity: float = 1000.0): self.proposal_id = proposal_id self.liquidity = liquidity # b parameter self.yes_shares = 0.0 self.no_shares = 0.0 def cost(self) -> float: """Current cost function C(q).""" return self.liquidity * math.log( math.exp(self.yes_shares / self.liquidity) + math.exp(self.no_shares / self.liquidity) ) def price_yes(self) -> float: """Probability estimate for acceptance.""" exp_yes = math.exp(self.yes_shares / self.liquidity) exp_no = math.exp(self.no_shares / self.liquidity) return exp_yes / (exp_yes + exp_no) def buy_yes(self, amount: float) -> float: """Buy YES shares, return cost.""" old_cost = self.cost() self.yes_shares += amount return self.cost() - old_cost def buy_no(self, amount: float) -> float: """Buy NO shares, return cost.""" old_cost = self.cost() self.no_shares += amount return self.cost() - old_cost
WEV Extraction Formula
WEV(W₀ → W₁) = Σᵢ [V(entityᵢ, W₁) - V(entityᵢ, W₀)] × P(transition) Where: - W₀ = pre-proposal world state - W₁ = post-proposal world state - V(entity, W) = value of entity in world W - P(transition) = market-implied probability
Example: AIP-137 WEV Calculation
def calculate_aip137_wev(): accounts_at_risk = 10_000_000 # Ed25519 accounts avg_value_apt = 100 # Average APT per account crqc_probability = 0.15 # Market consensus value_at_risk_ratio = 0.001 # Fraction lost to quantum attack wev = accounts_at_risk * avg_value_apt * crqc_probability * value_at_risk_ratio return wev # ~150,000 APT
Oracle Resolution
GitHub Status Polling
interface ProposalOracle { ecosystem: 'aptos' | 'swift' | 'srfi'; async pollStatus(proposalId: string): Promise<{ status: 'draft' | 'review' | 'accepted' | 'rejected'; lastUpdated: Date; sourceHash: string; }>; async submitAttestation( proposalId: string, outcome: boolean, proof: string ): Promise<void>; } // Aptos AIP oracle const aipOracle: ProposalOracle = { ecosystem: 'aptos', async pollStatus(aipNumber: string) { const url = `https://api.github.com/repos/aptos-foundation/AIPs/contents/aips/aip-${aipNumber}.md`; const response = await fetch(url); const content = atob((await response.json()).content); const statusMatch = content.match(/Status:\s*(\w+)/i); return { status: statusMatch?.[1].toLowerCase(), lastUpdated: new Date(), sourceHash: sha256(content) }; } };
Multi-Sig Resolution (Move)
module able_markets::oracle { use std::vector; struct OracleConfig has key { signers: vector<address>, threshold: u64, // e.g., 3-of-5 } struct Attestation has store { proposal_id: vector<u8>, outcome: bool, source_hash: vector<u8>, attester: address, } public fun resolve( config: &OracleConfig, attestations: &vector<Attestation>, proposal_id: vector<u8> ): bool { let matching = count_matching(attestations, &proposal_id); assert!(matching >= config.threshold, E_INSUFFICIENT_ATTESTATIONS); // Majority outcome wins let yes_count = count_outcome(attestations, &proposal_id, true); yes_count > matching / 2 } }
self→Self Autopoietic Loop
The *Able pattern exhibits autopoiesis:
self (proposal instance) │ ├──produces──► Self (protocol trait type) │ │ │ ▼ │ Self ──reconstitutes──► self (new proposals extending it) │ │ └───────────────────────────────────────────┘
Market Dynamics Map
| Phase | self | Self | Market State |
|---|---|---|---|
| Draft | AIP-137 text | concept | Initial liquidity |
| Review | Community feedback | Refinements | Price discovery |
| Accept | Merged code | concrete | Resolution |
| Deploy | Mainnet accounts | All instances | WEV extraction |
Cross-Ecosystem Arbitrage
def cross_ecosystem_signal(swift_price: float, aptos_price: float) -> str: """ If Swift adopts a pattern, Aptos often follows. Arbitrage the information asymmetry. """ if swift_price > 0.7 and aptos_price < 0.4: return "BUY Aptos analog - Swift leading indicator" elif aptos_price > 0.8 and swift_price < 0.3: return "BUY Swift analog - Aptos leading indicator" else: return "No arbitrage opportunity"
GF(3) Market Conservation
Long (+1) + Market Maker (0) + Short (-1) = 0 For every bullish bet, there's a bearish counterparty. The market maker provides liquidity but takes no directional risk. Value is conserved across the market.
DuckDB Schema
CREATE TABLE able_proposals ( proposal_id VARCHAR PRIMARY KEY, ecosystem VARCHAR, -- 'aptos', 'swift', 'srfi' title VARCHAR, status VARCHAR, -- 'draft', 'review', 'accepted', 'rejected' able_trait VARCHAR, -- '*Able trait name trit INT, -- -1, 0, +1 color VARCHAR, -- Hex color from Gay.jl last_call_date DATE, created_at TIMESTAMP, updated_at TIMESTAMP ); CREATE TABLE market_state ( proposal_id VARCHAR REFERENCES able_proposals(proposal_id), yes_shares FLOAT, no_shares FLOAT, liquidity FLOAT, implied_probability FLOAT, total_volume FLOAT, last_trade_at TIMESTAMP ); CREATE TABLE attestations ( attestation_id VARCHAR PRIMARY KEY, proposal_id VARCHAR, outcome BOOLEAN, attester VARCHAR, source_hash VARCHAR, created_at TIMESTAMP ); -- Query: Find arbitrage opportunities SELECT a.proposal_id, a.ecosystem, m.implied_probability, a.able_trait, CASE WHEN m.implied_probability < 0.3 AND a.status = 'review' THEN 'UNDERPRICED' WHEN m.implied_probability > 0.8 AND a.status = 'draft' THEN 'OVERPRICED' ELSE 'FAIR' END as signal FROM able_proposals a JOIN market_state m ON a.proposal_id = m.proposal_id WHERE a.status IN ('draft', 'review');
Canonical Triads
Queryable (-1) ⊗ Derangeable (0) ⊗ Replay-Protectable (+1) = 0 ✓ bisimulation-game (-1) ⊗ able-markets (0) ⊗ gay-mcp (+1) = 0 ✓
Asymmetric Bets: High Impact, Low Probability
The market systematically underprices low-probability, high-impact proposals.
Top Asymmetric Opportunities
| Proposal | Prob | WEV | Asymmetric Score | Why Low Prob |
|---|---|---|---|---|
| AIP-120 (Trading Engine) | 25% | 36.5M APT | 109.5M | Massive engineering; DEX competition |
| AIP-119 (Reduce Staking) | 15% | 5.5M APT | 31.2M | Validators oppose; reduces income |
| AIP-130 (Signed Integers) | 65% | 50M APT | 26.9M | Compiler changes; testing burden |
| AIP-125 (Scheduled Txs) | 40% | 10M APT | 15.0M | Privacy concerns; complexity |
Asymmetric Score Formula
AsymScore = WEV × (1 - P) / P High score = high impact × low probability
Half-Kelly Portfolio (1000 APT)
AIP-130 (Signed Int): 125 APT (12.5%) - Highest E[V] AIP-125 (Scheduled): 50 APT (5.0%) - DeFi automation SE-0495 (@cdecl): 125 APT (12.5%) - Swift systems SRFI-265 (CFG): 125 APT (12.5%) - Parser ecosystem Cash reserve: 487 APT (48.8%) - Dry powder
Open Games Formalization
LMSR markets are formalized as compositional open games with Para/Optic structure:
┌───────────────┐ State─│ │─New State (forward: play) │ LMSR Market │ Utility←│ │←Outcome (backward: coplay) └───────────────┘
Game Composition
;; Sequential: Markets → Arbitrage layer (sequential-compose markets arbitrage) ;; Parallel: 3 ecosystem markets running concurrently (parallel-compose (parallel-compose aptos-market swift-market) scheme-market)
GF(3) Game Classification
| Trit | Game Role | Examples |
|---|---|---|
| -1 | Validator | Equilibrium checker, auditor |
| 0 | Coordinator | Market maker, arbitrageur |
| +1 | Generator | Trader, liquidity provider |
Validator (-1) + Arbitrageur (0) + Trader (+1) = 0 ✓
Nash Equilibrium as Fixed Point
((:equilibrium market) state true-probability) ;; => true when market-price ≈ true-probability
Cross-Ecosystem Arbitrage Game
(defn arbitrage-game [market-a market-b correlation] ;; Play: Identify mispricing via correlation ;; Coplay: Profit from correlated resolution ;; Equilibrium: No-arb when prices reflect correlation ...)
Run simulation:
bb scripts/open_game.clj simulate bb scripts/open_game.clj classify
See Also
- Compositional game theory frameworkopen-games
- Foundation skill for thisprotocol-evolution-markets
- WEV calculation frameworkworld-extractable-value
- Deterministic color generationgay-mcp
- On-chain WEV implementationaptos-society
- Multiverse trading frameworkmultiversal-finance
WEV Derivational Positions
Proposals map to 5 derivational positions from the Unworld model:
| Position | Seed | Trits | Color | SICP | WEV Source |
|---|---|---|---|---|---|
| FIBRED | d16bb89f | (0,1,-1) | #19F473 | procedures | bridge creation |
| SHEAF | 9c872538 | (0,1,-1) | #1CF66E | state | time windows (decays) |
| DECOMP | 7a1cdf2e | (-1,1,0) | #D704A5 | data | bag membership |
| REWRITE | fe59de39 | (-1,-1,-1) | #7319F4 | metalinguistic | DPO rules |
| AGENTS | 8ac473c8 | (-1,0,1) | #BE01C1 | machines | routing success |
GF(3) Conservation: Sum of all trits = -3 ≡ 0 (mod 3) ✓
Proposal → Position Mapping
{:aip-137 {:position :sheaf :decay true} ;; PQ-Signable :aip-120 {:position :rewrite :decay false} ;; CLOB-Native :aip-130 {:position :fibred :decay false} ;; Negatable :srfi-265 {:position :rewrite :decay false}} ;; CFG-Composable
Kelly Betting with Lazy Knowledge
Front-run information asymmetry by betting on intermediate milestones:
| Strategy | Odds Move | Edge | Half-Kelly | Direction |
|---|---|---|---|---|
| self_funding_bounty | 33%→70% | 37% | 275 APT | YES |
| early_champion_signal | 33%→60% | 27% | 225 APT | YES |
| bounded_progress_dca | 33%→55% | 22% | 175 APT | HEDGE |
| antihydra_hedge | 67%→85% | 18% | 125 APT | NO |
Expected ROI: 104% on 800 APT allocated
Usage
# Poll current proposal statuses bb poll.clj poll # Calculate WEV for a proposal bb poll.clj wev AIP-137 0.65 # Run market simulation bb poll.clj simulate # Open Games formalization bb scripts/open_game.clj simulate # WEV derivational positions bb scripts/wev_positions.clj positions bb scripts/wev_positions.clj kelly bb scripts/wev_positions.clj wev AIP-137 # Asymmetric bets analysis bb scripts/asymmetric_bets.clj