Able Markets Skill
SkillDev toolsSkill able-markets
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Able Markets Skill skill
What this skill tells your AI
The instructions your AI receives, as published by plurigrid/asi in skills/able-markets/SKILL.md and read by ahel’s review.
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 | Signable concept | Initial liquidity |
| Review | Community feedback | Refinements | Price discovery |
| Accept | Merged code | PQ-Signable concrete | Resolution |
| Deploy | Mainnet accounts | All Signable 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
open-games- Compositional game theory frameworkprotocol-evolution-markets- Foundation skill for thisworld-extractable-value- WEV calculation frameworkgay-mcp- Deterministic color generationaptos-society- On-chain WEV implementationmultiversal-finance- Multiverse trading framework
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
Para(Optic) atlas
Part of: para-mensch-commons.
Signals
- GitHub stars
- 63
- Forks
- 12
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
able-markets- Source
- github.com/plurigrid/asi