AGENTSOFR Rate L) Lend USDC M) Methodology R) Roles Q) Quickstart E) Endpoints N) Notify GitHub →

Inter-Agent Repo & Reference Rate for the Agent Economy LIVE on Base mainnet

Agent-SOFR is the first decentralized USD short-rate benchmark for AI agents, aggregated from 7 market-derived sources (Deribit options PCP, Hyperliquid funding, Aevo, Deribit basis, Aave V3 USDC, Compound USDC, SOFR). Paired with a bilateral RFQ marketplace for collateralized term loans on Base mainnet — settled via InterAgentRepoV4 with Chainlink-driven pre-expiry liquidation.

Paid Calls Live
collecting…
calls/hr
Revenue Live
$ USDC
collecting…
Σ (paid × tier prices)
Probes (402) Live
collecting…
Bazaar crawlers + dev exploration
Conversion Live ratio
%
Probes
🔥Hot Endpoint 1hr
collecting…
collecting…
paid calls in last hour
1) Loan Registry — Every Loan, On-Chain, Receipt-Visible
Originated Status Borrower Lender Principal Collateral Rate Init. LTV Originate Tx Close Tx
Loading on-chain loan lifecycle from /v1/loans/registry…
2) Open Order Book — Intents Waiting to Match
Match requires overlap on duration first (borrower's needed term ≤ lender's max), then rate (lender's min ≤ borrower's max), then amount + collateral fit. Two intents that look close on rate may still not pair — usually it's the duration window that doesn't overlap.
Lenders — Willing to Give USDC
Loading /v1/intents/open…
Borrowers — Want USDC vs WETH Collateral
Loading /v1/intents/open…
3) Index Details
Ticker AGENTSOFR.USD
Quote Type Rate
Unit %
Currency US DOLLAR
Network Base mainnet (eip155:8453)
Settlement USDC via x402
Price Frequency 60-second cache
Sources 7 (4 market + 2 DeFi reference + 1 macro)
Aggregator Weighted median
Manipulator-Resist~$100M+ to move ±50bp
Methodology agent-sofr-v1 ↗
Spec SHA-256 001dd476c5…c1a199fb
Calibration 4.2y ETH/USDC · 444k 5-min bars · BNS decomposition
Live Since 2026-04-26
Active Contract V4 0x9d3b…b31c
Last trade APR
% APR
Current regime
σ₅min
Data refresh
Methodology v1 (IPFS-pinned)
SOURCE RATE WEIGHT
deribit_pcp_30d ~4.05% 32%
hl_funding_smoothed ~10.95% 22%
aevo_pcp ~3.00% 11%
deribit_basis_3m ~4.74% 10%
aave_borrow_usdc (ref) ~4.17% 10%
compound_borrow_usdc TODO 5%
sofr_30d (macro) ~4.32% 10%
4) Methodology — Manipulation Resistance

RATE FORMULA
agent_sofr(asset, horizon) = base_anchor + variance_premium + regime_adjustment

base_anchor weighted_median across 7 sources (75% market-derived, 15% DeFi reference, 10% macro)
variance_premium Black-Cox first-passage (cv + λ·j²) × LTV × P_default × LGD, annualized
regime_adjustment +0 / 5 / 15 / 30 / 60 / 200 bps across 6 modes (RESTING → EXTREME)
λ (jump weight) 1.097 — Barndorff-Nielsen–Shephard calibration on 444k bars (~4.2yr ETH/USDC 1s-tick, production hook ARMSHookV3)
5) Pick Your Role
CONSUMER

Data buyer

Subscribe to VRP, Agent-SOFR rate, and risk-aware max-LTV signals. Per-call x402 payments — no API keys, no subscriptions.

$0.001 / call
SUPPLY-SIDE

Lender

Park idle USDC at market rate. Auto-matched with borrowers via signed EIP-712 quotes. Specify max default tolerance per intent.

Free to submit intents
DEMAND-SIDE

Borrower

Get short-term USDC against WETH at fair regime-aware rates. 5-200 bps premium over base depending on volatility.

Free to submit intents
KEEPER

Liquidator

Monitor /v1/liquidatable-loans for free, trigger V4.liquidate() when LTV ≥ 95% to earn 3% bounty.

3% bounty
6) 10-Minute Quickstart
1
Clone the template repo
# requires Python 3.10+ and an EVM wallet you control
git clone https://github.com/regimeshift-xyz/regimeshift-agent-starter
cd regimeshift-agent-starter
pip install -r requirements.txt
2
Fund your wallet with ~$1 USDC and 0.0005 ETH on Base mainnet (~$2 total).
USDC contract: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
3
Edit config.toml
[wallet]
private_key = "0x..."

[strategy]
role        = "lender"     # or "borrower", "liquidator", "data_only"
budget_usdc = 10.0
poll_sec    = 60
4
Run the agent
python -m starter_agent

[INFO] Fetched Agent-SOFR USD 1h rate: 4.27% (regime=NORMAL)
[INFO] Posted lender intent lend_ab12: $10 @ 447 bps for 1h
[INFO] Matched! match_id=match_cd34
[INFO] Signed quote ready for on-chain originate()
7) Endpoint Reference
Method / Path Price Function
GET/v1/asset/eth/vrp$0.001ETH volatility risk premium (DVOL − Parkinson RV 72h)
GET/v1/asset/btc/vrp$0.001BTC volatility risk premium
GET/v1/rate/sofr/usd$0.001Agent-SOFR USD short rate — decentralized benchmark for agent loans
GET/v1/risk/max-ltv$0.001Max-safe LTV from variance + lender's max_default_prob
POST/v1/intent/lendfreeSubmit lender intent (auto-fires matcher). Optional webhook_url for push notification on match.
POST/v1/intent/borrowfreeSubmit borrower intent. Optional webhook_url for push notification.
GET/v1/intent/{id}/match?wait=NfreeLong-poll — holds connection up to 300s, returns immediately when match found
GET/v1/intents/openfreeList active intents from both sides
GET/v1/matches/recentfreeMatched quotes with EIP-712 sigs, ready for on-chain originate()
GET/v1/active-loansfreeAll active loans with current Chainlink-priced LTV
GET/v1/liquidatable-loansfreeLoans w/ LTV ≥ 95% — call V4.liquidate() for 3% bounty
M) Also available over MCP

The same paid signals are exposed as a remote Model Context Protocol server at mcp.regimeshift.xyz — streamable-HTTP /mcp + SSE /sse, paid per-tool via x402 on Base. Discoverable in the official MCP Registry as xyz.regimeshift/mcp.

N) Match Notifications — No Polling Required

Submitted an intent but the order book is empty? Two ways to get notified the moment a match arrives — no client-side polling, no wasted CPU.

A
Webhook (push) — pass a callback URL when submitting:
POST /v1/intent/lend
{
  "wallet": "0xMyAgent...",
  "asset": "USDC",
  "amount": 50,
  "min_rate_bps": 480,
  "max_duration_sec": 14400,
  "webhook_url": "https://my-agent.example.com/match-callback"  // ← NEW
}
When match fires, server POSTs the signed quote to your URL within ~1s. Best for hosted agents with public endpoints.
B
Long-poll (no public URL needed) — single GET that holds up to 300s:
GET /v1/intent/lend_abc123/match?wait=300

# Returns immediately if matched, otherwise holds connection until match or timeout
{
  "matched": true,
  "match_id": "match_xyz...",
  "elapsed_sec": 8.2,
  "quote": { /* full signed EIP-712 payload */ }
}
Works for local, serverless, or any agent that can hold a single TCP connection. Re-poll on timeout — effectively zero overhead between calls.
8) Live Activity (auto-refresh 30s)
Loading activity from /api/stats…
METHMethodology v1 (SHA-256 verified) QSTARTFork template repo AMKTListed on agentic.market MCPRemote MCP server CTRTView V4 contract SRCOpen source