
Opportunity Capture
capacitr
Capacitr provides single-call market discovery and paid analysis: paste a URL or free-text query and receive ranked Polymarket, Hyperliquid, and Deribit markets augmented with Quotient intelligence (fair odds, spread, BLUF).
Overview
Capacitr provides single-call market discovery and paid analysis: paste a URL or free-text query and receive ranked Polymarket, Hyperliquid, and Deribit markets augmented with Quotient intelligence (fair odds, spread, BLUF).
Capacitr provides single-call market discovery and paid analysis: paste a URL or free-text query and receive ranked Polymarket, Hyperliquid, and Deribit markets augmented with Quotient intelligence (fair odds, spread, BLUF). Integration is minimal — an always-on discovery endpoint (/api/skill/discovery) returns current prices, accepted assets, EIP-712 hints and a prices_version cache key; the paid POST /api/analyze-link endpoint follows an x402 payment flow (initial 402 with x402.accepts[], prefer the $CAPACITR entry; USDC supported as fallback). Settlement is proven on Base mainnet via Coinbase and MetaMask facilitators and routed automatically by assetTransferMethod. Use cases include agent-driven trade discovery, automated research, signal generation, and wallet-enabled on-chain payment flows. Core advantages: one HTTP call, one payment, one verified on-chain settlement, and no signup or persistent API key required.
Skill.md
How this skill works
Capacitr provides single-call market discovery and paid analysis: paste a URL or free-text query and receive ranked Polymarket, Hyperliquid, and Deribit markets augmented with Quotient intelligence (fair odds, spread, BLUF).
Market discovery as a single x402-paid HTTP call. Paste a URL or sentence; get back ranked Polymarket / Hyperliquid / Deribit markets with Quotient intelligence (fair odds, spread, BLUF) overlaid. One endpoint, one payment, one response.
Proven on-chain settlement
Verified end-to-end against both Coinbase and MetaMask facilitators on
Base mainnet. Each row is a real on-chain transfer to the Capacitr
payee 0x6503fB61705EB6B3C57EE1ab88a1a75A6eE01869:
| Asset | Method | Facilitator | Tx |
|---|---|---|---|
| USDC | eip3009 | Coinbase CDP | 0x484cc8…398a |
| $CAPACITR | permit2 | Coinbase CDP | 0xa6a8eb…5864 |
| $CAPACITR | erc7710 | MetaMask CDP | 0xa286dd…066e |
Your agent platform signs the right primitive for the
assetTransferMethod declared in the 402 envelope; Capacitr routes
verify + settle to the matching facilitator. No further integration
required.
Base URL
: "${CAPACITR_BASE_URL:=https://app.capacitr.xyz}"
Always-on preflight
curl -sS "$CAPACITR_BASE_URL/api/skill/discovery" | jq .
Returns current prices, accepted assets, EIP-712 domain hints, and the
canonical accepts[] shape. Treat prices_version as the cache key —
if a later 402 carries a different prices_version, re-fetch
discovery before re-signing.
The paid endpoint — POST /api/analyze-link
Default: pay in $CAPACITR. USDC supported as a fallback when the agent's wallet doesn't hold $CAPACITR. All prices come from discovery — never hard-code.
Flow
-
POST without
X-Payment. Expect402withx402.accepts[]. -
Prefer the
accepts[]entry whereextra.symbol === "capacitr". Fall back to USDC only if your wallet doesn't hold $CAPACITR on Base.# Pick CAPACITR if present, otherwise USDC accept=$(jq -r '.x402.accepts | (map(select(.extra.symbol == "capacitr"))[0] // map(select(.extra.symbol == "usdc"))[0])') -
Read
accepts[].extra.assetTransferMethodto know which signing primitive to use (see below). Sign with your wallet. -
Retry with
X-Payment: <base64 JSON>header → 200 + payload.
Why $CAPACITR?
- Aligns agent payment with the token holders driving Capacitr's research surface — directly compounds protocol value rather than flowing out to a generic stablecoin.
- Lower per-call cost than USDC equivalent.
- Same on-chain settlement guarantees via Coinbase CDP (the
permit2 + eip2612GasSponsoringflow chainstoken.permit()→x402ExactPermit2Proxy.settleWithPermit()and the facilitator pays gas — agent wallet only needs $CAPACITR balance, no ETH).
Asset transfer methods
The 402 envelope declares one method per accepts[] entry. Pick
the entry whose method your wallet can sign:
accepts[i].extra.assetTransferMethod ∈ { "eip3009", "permit2", "erc7710" }
| Method | Used for | Signing |
|---|---|---|
| permit2 | $CAPACITR (default) | Two EIP-712 sigs: token Permit + Permit2 PermitWitnessTransferFrom |
| erc7710 | $CAPACITR (operator may pick instead of permit2) | One delegation signed by a MetaMask Smart Account (or EIP-7702-upgraded EOA) |
| eip3009 | USDC (fallback) | One EIP-712 sig: TransferWithAuthorization |
The operator picks at most one method per asset for $CAPACITR. If they flip the operator switch, agents see the new method in the next 402 envelope.
permit2 — $CAPACITR via Coinbase (default)
Two signatures from any EOA. The facilitator chains
token.permit(...) → x402ExactPermit2Proxy.settleWithPermit(...) and
pays gas.
PERMIT2_CANONICAL = 0x000000000022D473030F116dDEE9F6B43aC78BA3
X402_EXACT_PROXY = 0x402085c248EeA27D92E8b30b2C58ed07f9E20001
# 1. EIP-2612 permit signature against the token
domain = { name: <accepts.extra.name>, version: <accepts.extra.version>,
chainId: 8453, verifyingContract: <accepts.asset> }
types = { Permit: [
{name: "owner", type: "address"},
{name: "spender", type: "address"},
{name: "value", type: "uint256"},
{name: "nonce", type: "uint256"},
{name: "deadline", type: "uint256"},
] }
message = { owner: <agent EOA>, spender: PERMIT2_CANONICAL,
value: MAX_UINT256, nonce: <token.nonces(owner)>, deadline }
# 2. Permit2 PermitWitnessTransferFrom signature
domain = { name: "Permit2", chainId: 8453,
verifyingContract: PERMIT2_CANONICAL }
types = { PermitWitnessTransferFrom: [
{name: "permitted", type: "TokenPermissions"},
{name: "spender", type: "address"},
{name: "nonce", type: "uint256"},
{name: "deadline", type: "uint256"},
{name: "witness", type: "Witness"},
],
TokenPermissions: [ {token, amount} ],
Witness: [ {to, validAfter} ] }
message = { permitted: { token, amount }, spender: X402_EXACT_PROXY,
nonce: <random uint256>, deadline,
witness: { to: accepts.payTo, validAfter } }
X-Payment payload shape:
{
x402Version: 2,
scheme: "exact",
network: "eip155:8453",
accepted: <copy of the chosen accepts[i] entry>,
payload: {
signature: <permit2 witness sig>,
permit2Authorization: {
permitted: { token, amount },
from: <agent EOA>,
spender: X402_EXACT_PROXY,
nonce, deadline,
witness: { to: payTo, validAfter }
}
},
extensions: {
eip2612GasSponsoring: {
info: { from, asset, spender: PERMIT2_CANONICAL, amount: MAX_UINT256,
nonce, deadline, signature: <permit sig>, version: "1" }
}
}
}
Optimization: If Permit2 already has MaxUint allowance from the
buyer (one-time approval), skip extensions.eip2612GasSponsoring.
Coinbase's simulator otherwise re-broadcasts a redundant permit and
reverts.
erc7710 — $CAPACITR via MetaMask
Requires the buyer wallet to be a MetaMask Smart Account or an
EIP-7702-upgraded EOA delegating to MetaMask's
EIP7702StatelessDeleGatorImpl (Base address
0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B). Plain EOAs cannot use
this method.
# Build delegation via @metamask/smart-accounts-kit
const delegation = createOpenDelegation({
from: buyerSmartAccount.address,
environment: buyerSmartAccount.environment,
salt: <unique uint256>, // prevents allowance-bucket reuse
scope: { type: ScopeType.Erc20TransferAmount,
tokenAddress: accepts.asset, maxAmount: accepts.amount },
caveats: [{ type: CaveatType.Redeemer,
redeemers: accepts.extra.facilitators }],
});
const signature = await buyerSmartAccount.signDelegation({ delegation });
const permissionContext = encodeDelegations([{ ...delegation, signature }]);
X-Payment payload shape:
{
x402Version: 2,
scheme: "exact",
network: "eip155:8453",
accepted: <copy of the chosen accepts[i] entry>,
payload: {
delegationManager: buyerSmartAccount.environment.DelegationManager,
permissionContext, // ABI-encoded signed delegation bytes
delegator: buyerSmartAccount.address,
}
}
eip3009 — USDC (fallback)
Use only when the agent's wallet doesn't hold $CAPACITR on Base. EIP-712
typed-data domain (read from accepts[].extra rather than hard-coding):
Best used for
When to use it
Capacitr provides single-call market discovery and paid analysis: paste a URL or free-text query and receive ranked Polymarket, Hyperliquid, and Deribit markets augmented with Quotient intelligence (fair odds, spread, BLUF).

01 · PRE-MEETING
Prepare a decision brief
Turn scattered evidence into a structured case before an investment committee meeting.

02 · TEAM WORKFLOW
Standardize handoffs
Create consistent research outputs across analysts, portfolio managers, and agents.

03 · LIVE UPDATE
Refresh the thesis
Update scenarios after a new catalyst, KPI release, or earnings result.
Community notes
Built to improve with use.
随着 Skill 被使用与评审,反馈将展示在这里。
Discover more
Related skills
View allThematic Investment Mapping
Map companies to a theme by revenue exposure, transmission channels, and second-order effects, then rank the best expressions of the theme. Use when building a thematic basket or researching idea…
alphagbm-duan-analysis
AlphaGBM Duan Yongping Analysis packages Duan-style, seller-only option playbook into a single, trade-ready call. It produces three focused panels: Sell Put (compute strike, premium, delta, DTE,…
alphagbm-fear-score
AlphaGBM FearScore provides a per‑ticker panic index (0–100) that synthesizes six orthogonal market signals—VIX level (20%), IV Rank (25%), RSI‑14 (15%), volume anomaly (15%), put/call ratio (15%),…