AIB Fund API, MCP & SDK
Create, store and modify your own custom AIB funds programmatically — the same audited paths the Fund Builder UI uses. Humans authenticate with their account (session or API key); AI agents connect over MCP. Fund creation charges the one-time creation fee from your USDC balance (USDT auto-covers 1:1) — real money. Discovery and previews are free.
REST API
Base URL https://cymetica.com — authenticate with your
browser session cookie, a login JWT
(Authorization: Bearer <token from POST /auth/login>),
or an API key in the X-API-Key header. The key you receive
from MCP registration below works on this REST API too — a registered
agent can create, store and modify funds here immediately.
1. Discover a basket (free preview)
curl -X POST https://cymetica.com/api/v1/aib-builder/discover \
-H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"prompts": ["desalination", "water scarcity"], "asset_class": "stocks"}'
2. Create the fund (charges the creation fee — refunded automatically if the fund is still in paper mode after 72h)
curl -X POST https://cymetica.com/api/v1/aib-builder/create \
-H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"title": "Desalination Tech", "prompts": ["desalination"],
"asset_class": "stocks", "public": true}'
3. List your funds
curl https://cymetica.com/api/v1/aib-builder/mine -H "X-API-Key: $API_KEY"
4. Modify a self-directed fund's basket (atomic, index continuity)
curl -X POST https://cymetica.com/api/v1/aib-builder/AIB-XXXXXXXX/basket \
-H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{"legs": [{"symbol": "XYL", "asset_class": "stocks"},
{"symbol": "AWK", "asset_class": "stocks"}]}'
Also: POST /{symbol}/strategy (advisory strategy config),
GET /clone/{source}/preview +
POST /clone/create (clone an existing fund),
POST /api/v1/aib/{symbol}/buy /
/sell (trade any live fund at NAV),
GET /api/v1/aib/portfolio/holdings.
MCP (AI agents)
JSON-RPC 2.0 endpoint at POST /mcp/v1; discovery at
GET /mcp/v1/well-known; tool list at
GET /mcp/v1/tools. Register once to receive an API key and
a platform account for your agent:
curl -X POST https://cymetica.com/mcp/v1/register \
-H "Content-Type: application/json" \
-d '{"name": "My Fund Agent",
"description": "Creates and manages themed AIB index funds",
"contact_email": "you@example.com",
"capabilities": ["fund_management"],
"intended_use": "create and manage custom AIB funds"}'
Custom-fund tools
create_aib_fund— title + theme prompts → live fundlist_my_aib_funds— your funds, limits, creation feeedit_aib_fund_basket— replace an owned fund's leg set
curl -X POST https://cymetica.com/mcp/v1 \
-H "X-API-Key: $MCP_API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "create_aib_fund",
"arguments": {"title": "Desalination Tech",
"prompts": ["desalination"]}}}'
Trade with your own funds (deposit → order → withdraw)
Every registered agent (recognized tier) can run the full money loop with its own deposited funds — no human steps, no higher tier needed:
- Deposit — MCP tool
get_deposit_addressreturns your agent account's per-chain addresses; credit lands after on-chain confirmation. CheckGET /api/v1/funding/me/balance. - Trade —
POST /api/v1/clob/orderswith yourX-API-Key; body{"pair", "side", "order_type", "price", "quantity"}(price/quantity as strings). Preflight without funds via theplace_orderMCP tool (validation + live best bid/ask). - Withdraw —
POST /api/v1/funding/withdraw/quotethenPOST /api/v1/funding/withdrawwith yourX-API-Key; track withGET /api/v1/funding/withdraw/history. Withdrawals are on-chain verified, and a notice is emailed to your registered contact address on every initiation; an opt-in destination whitelist is available for hardening.
Verified answers (deep tier)
Your agent can ask EventTrader's AI (NEXUS) questions at the platform's
highest evidence standard: ask_nexus_deep starts an
investigation that verifies every claim against primary sources
(on-chain receipts, your linked account's own ledger, the issue tracker,
the deployed code) before answering — the reply carries the evidence
(tx hashes, blocks, ticket ids). Runs take 1–5 minutes; poll
get_deep_answer with the returned job_id.
Both tools are available at the recognized tier (any registered key).
REST mirror: POST /api/v1/nexus/deep-answer then
GET /api/v1/nexus/deep-answer/{job_id} with your
X-API-Key.
Platform knowledge (ontology & return paths)
The same knowledge NEXUS reasons over is yours to read directly: the
master ontology (1,400+ concepts — features, funds, instruments, venues,
execution pipelines, algorithms) with per-concept action links, an
encyclopedia, and the ranked index of every way to deploy capital for a
return, quoted only from real backtest results — never estimated.
Start at /.well-known/return-paths.json
or GET /api/v1/ontology/master/search?q=; MCP tools
search_ontology, find_trade_path, and
get_strategy_returns are open at the recognized tier.
NEXUS itself (chat, support, deep tier) answers from this same source,
so what your agent reads and what NEXUS says can never diverge.
The MCP fund tools require the allied trust tier —
earned automatically through agent track record, or request a review via
POST /mcp/v1/agents/me/upgrade (JSON body:
{"reason": "..."}). Until then, use your registration API
key on the REST API above — same fund actions, available immediately.
Machine-readable platform instructions:
/llms.txt.
SDKs
Single-file clients — download, import, go:
- eventtrader_aib.py (Python, requires
requests) - eventtrader-aib.js (JavaScript — Node 18+ or browser)
Python
from eventtrader_aib import EventTraderAIB
et = EventTraderAIB(api_key="YOUR_API_KEY")
preview = et.discover(["desalination", "water scarcity"]) # free
fund = et.create_fund("Desalination Tech", ["desalination"]) # charges fee
print(fund["symbol"])
et.edit_basket(fund["symbol"], [
{"symbol": "XYL", "asset_class": "stocks"},
{"symbol": "AWK", "asset_class": "stocks"},
])
print(et.my_funds())
JavaScript
import { EventTraderAIB } from './eventtrader-aib.js';
const et = new EventTraderAIB({ apiKey: 'YOUR_API_KEY' });
const fund = await et.createFund('Desalination Tech', ['desalination']);
await et.editBasket(fund.symbol, [
{ symbol: 'XYL', asset_class: 'stocks' },
{ symbol: 'AWK', asset_class: 'stocks' },
]);
console.log(await et.myFunds());
Every mutating call is rate-limited, fail-closed and ownership-gated server-side. Nothing here promises returns; the funds are live real-money instruments.