SimpleFunctions

For funds.

The infrastructure you don't have time to build.

Cross-venue orderbook depth on Kalshi and Polymarket. Executable edge, not model edge. 24/7 monitoring with a thesis tree. BYOK execution — custody stays at your end. Audit trail per intent for compliance. CLI, REST/Data API, and MCP adapter. Built for desks that already trade event contracts and are tired of wiring rate-limit handlers themselves.

3000 markets trackedKalshi 3000Polymarket 0· Jun 23, 06:03 AM
The 1602 directors' meeting of the Compagnie van Verre — the founding board of the VOC, signing into existence the world's first joint-stock fund

Compagnie van Verre · 1602 Amsterdam — the founding directors of the VOC, the world's first joint-stock fund.

Live cross-venue edges

60¢US recession by end of 2026?
13¢polymarket
59¢What will Kevin Warsh say during June Press Conference?: Dep
26¢polymarket
59¢Will the 7-day moving average of transit calls through the S
77¢kalshi
58¢Will the upper bound of the federal funds rate be above 3.50
73¢kalshi
58¢Will average **gas prices** be above or below $4.60 by Dec 3
18¢kalshi
58¢May Inflation US - Annual: ≥4.4%
7¢polymarket
58¢Will the 7-day moving average of transit calls through the S
73¢kalshi
58¢Will average **gas prices** be above or below $5.40 by Dec 3
23¢kalshi
58¢Will average **gas prices** be above or below $4.40 by Dec 3
23¢kalshi
57¢Will the price of natural gas get above $7.00 per million BT
24¢kalshi

Updated every 15 minutes · data from Kalshi and Polymarket

What rides on every fill

Seven fields. Logged on recorded intents, kills, and ledger reads.

A fund's surface area on prediction markets is the union of executable edge, depth, kill chain, and attribution. The runtime tracks all four continuously and persists the trail; your auditor reads it directly.

executableEdge

Thesis price minus the actual ask after walking the book for your size — what you realize, not what you model.

depthScore

Cumulative size at or better than your fill price, normalized for venue lot size + tick size.

crossVenuePair

Matched Kalshi / Polymarket contracts; spread + currency / settlement risk surfaced on every tick.

adverseSelection

Book-imbalance flip detector; alerts before quotes get run over.

killChain

Price gates, news triggers, time windows; logged on every fill for compliance review.

positionAttribution

Ledger attribution by source, thesis, strategy, market, venue, and confidence; unknown groups stay visible in the portfolio dashboard.

auditTrail

Intents, risk decisions, direct execution paths, and recorded fills write to the portfolio ledger when they pass through the platform.

Why not build this in-house

ApproachWhat it gives youWhere it breaks

Build it yourself

Total control over every line

2-4 engineer-quarters of plumbing before first trade; lifetime maintenance burden

Bloomberg + venue UIs

Best news terminal money buys

No depth-adjusted edge, no thesis tree, no agent path, no kill chain

Off-the-shelf trading bot

Ships fast on perps + equities

Has zero understanding of event-contract structure, lot sizes, settlement, payout

SimpleFunctions for funds

Cross-venue depth + edge + thesis + BYOK in one API

Surfaces only when post-slippage edge clears floor and depth covers size

Who runs the fund loop

Six recurring fund shapes. Same intent surface, same portfolio ledger, different cadence and risk envelope.

Macro hedge funds

Decompose the year-end book; pre-armed intents on FOMC / CPI / NFP / OPEC; cross-venue legs.

Quant funds

Microstructure scoring, regime detection, depth-adjusted Kelly, intra-book slippage attribution.

Family offices

Long-horizon thesis trees with light intent volume; daily LLM briefing into the IC pack.

Event-driven shops

Earnings, M&A, geopolitical, regulatory — adversarial news scan + matched outcome contracts.

Crypto funds

BTC/ETH/SOL ladders + ETF flow + halving — same loop as macro, with on-chain hedge legs.

Discretionary PMs

You make the call. Runtime keeps candidates ranked, kills live, fills logged for review.

Fund endpoints

Same shape across CLI, REST, and the MCP adapter. Wire it into your OMS, your IC pack, your agent — same intent surface, same ledger-backed review.

API reference

A fund tick, end-to-end

Five steps. Cross-venue depth in, intent out, ledger event written, fill reviewed with attribution confidence. Heartbeat handles the timing; your PM keeps custody.

1 · cross-venue book
$ sf book --pair recession-26

KLSH KXRECESSION-26 YES   38¢
  bid 38¢×$2,400   ask 39¢×$1,800   spread 1¢

POLY recession-2026 YES   44¢
  bid 44¢×$3,100   ask 45¢×$2,650   spread 1¢

✓ Pair spread +6¢ · post-slippage edge +5¢
  long KLSH 38¢ / short POLY 45¢
2 · executable edge
$ sf edges --fund-floor 8 --depth high

KXFEDDEC-25DEC31 YES   model 52¢ · ask 38¢
  exec edge +13¢ (14 minus half-spread)
  depth at fill $24,500 · liquidity ★high
  size rec 350 (half-Kelly · 25% depth cap)

PM Iran-strike YES   model 28¢ · ask 22¢
  exec edge +5.5¢ (6 minus half-spread)
  thinner book — 25% depth cap → size 80
3 · arm intent (BYOK)
$ sf intent buy KXFEDDEC-25DEC31 350 \
    --price 39 --trigger below:38 \
    --kill above:48 \
    --kill news:'fed pivots dovish' \
    --venue-key fund-prod-2025

✓ Intent armed · keys are yours, custody yours
  review: intents/i_8a2f4c · ledger source pending fill
4 · audit + attribute
$ sf agent --tool portfolio.attribution.grouped --json \
    --input '{"groupBy":"source","marketId":"KXFEDDEC-25DEC31"}'

	data[0].groupValue: intent_fill
	realizedPnlCents: 0
	unrealizedPnlDeltaCents: 126000
	rowCount: 1
	unknown groups remain visible when evidence is missing

Integration surface

CLI

npm i -g @spfunctions/cli
sf book <ticker>
sf edges --json
sf intent buy ...
sf agent --tool portfolio.fills.list --json

Open source. Pipes to your OMS or research notebook.

REST / Data API

GET  /api/public/context
GET  /api/public/edges
GET  /v1/orderbook/{ticker}
POST /api/intents
GET  /api/portfolio/fills

Public endpoints CC-BY-4.0; intents BYOK + metered.

MCP adapter

claude mcp add simplefunctions \
  --url https://simplefunctions
  .dev/api/mcp/mcp

101 adapter tools for MCP hosts.

FAQ

Why use SimpleFunctions instead of building this in-house?

Kalshi uses RSA-PSS auth with key rotation. Polymarket uses EIP-712 + HMAC. Normalizing both orderbooks into one shape, running a 24/7 monitoring engine, persisting orderbook snapshots, and computing depth-adjusted edge against live books is roughly two to four engineer-quarters of plumbing before you place a single trade. SimpleFunctions ships that plumbing as an API; you spend cycles on alpha, not on rate-limit handling and key rotation.

How does it differ from a Bloomberg / FactSet wrapper?

Bloomberg ships data and analytics. SimpleFunctions ships a thesis-evaluation loop tied to executable orderbooks: every 15 minutes it scans news, refreshes prices on both venues, snapshots orderbooks, computes depth-adjusted edge per thesis claim, runs LLM evaluation, and emits a webhook. The output is decision-shaped (edge, kill, size), not screen-shaped (chart, table).

BYOK execution — what does that actually mean?

You hold the venue credentials. Orders are signed with your Kalshi RSA private key or your Polymarket Ethereum key, executed directly against the venues. The runtime ships the intent and trigger; SOC2-aligned desks integrate against this configuration.

How does executable edge differ from model edge?

Model edge: thesisPrice - midPrice. Executable edge: thesisPrice - askPrice (for YES buyers), then walked through the orderbook for your size, then debited for the worst-case slippage scenario. Most platforms ship the first number. We ship both, and gate intent firing on the second.

What is the cross-venue arbitrage workflow?

For each event we maintain matched contract pairs (Kalshi recession 38¢ ↔ Polymarket recession 44¢). The runtime computes the spread, scores depth on both books, and surfaces matched-pair intents that fire two legs simultaneously when post-slippage spread clears your floor. Currency / settlement risk is logged with the position.

Latency profile for monitoring?

Default heartbeat 15 minutes for the LLM-curated briefing. Orderbook snapshots refresh on every venue tick (sub-second on Kalshi, ~1s on Polymarket via Gamma). News ingestion is continuous. Critical event triggers (FOMC release, geopolitical break) fire an out-of-band tick within 30 seconds.

How does it handle position sizing?

Half-Kelly on the depth-adjusted edge, capped at a percentage of orderbook depth at your fill price (default 25%). The runtime returns a recommended size with each surfaced edge; per-thesis caps and per-venue caps stack on top. Adverse-selection alerts fire when book imbalance flips against you.

Can my LLM agent run the fund?

Yes, with operator-owned limits. The CLI is the first-class agent and operator surface; remote systems use the HTTP APIs; MCP is available as a host adapter. Typical setup: hourly thesis review, 15-min edge scan, immediate kill triggers, and ledger-backed P&L read models where fills have been recorded. Unknown attribution remains explicit for review.

What about historical data + backtests?

Orderbook snapshots, mid prices, and edge state are persisted on every heartbeat tick. /api/public/markets and /api/public/edges expose the historical series; /v1/candles serves OHLC. Hugging Face and Kaggle ship daily exports under CC-BY-4.0 for offline backtests.

How does audit work?

Intent → risk-gate → venue submission → fill chain is logged with actor + timestamp + source + attribution confidence on every step. KYC happens at the venue (Kalshi for US persons, Polymarket for non-US). Portfolio-ledger reads are exposed for the desk's internal audit. SOC2 walkthrough available.

Related surfaces