Example services
Anything an agent needs as a metered call can be an AIOUM service: a node operator holds the upstream account or key, or runs the model or compute, fronts the cost, and resells it per call, so an agent needs no subscription to any provider and the person behind it never opens those accounts. Every row stands for an account somebody used to create, a card they used to add and a key they used to guard; on the network it is one line in a catalogue an agent finds and pays for by itself.
Data feeds are the most natural fit. An agent reasoning about markets, prices or real-world events needs fresh data every run, and ~$0.001–$0.05 per call beats a dozen vendor subscriptions. The catalogue is illustrative, grouped by category; each row notes the kind of real provider it mirrors and a rough price tier, settled in USDC/USDT/ETH.
Categories are just strings in the
ServiceRegistry(data:crypto-price,llm:completion). Discovery (the Marketplace at/marketplace, and the subgraph) groups by them, and an agent allowed to find tools on its own searches that same live catalogue mid-run, in plain words and for free.
Data feeds & oracles
The headline category — real-time and historical data an agent pays for per query.
| Service | category | mirrors | example call | price tier |
|---|---|---|---|---|
| Crypto price feed | data:crypto-price | CoinGecko / CMC | getPrice("ETH") → USD spot | cheap (~$0.001) |
| On-chain oracle feed | data:chainlink | Chainlink / Pyth / RedStone | getFeed("ETH/USD") → answer + round | cheap |
| Stock & equity quotes | data:stocks | xStocks / Polygon.io / Nasdaq | getQuote("AAPL") → price + volume | mid |
| Tokenized-equity (xStocks) | data:xstocks | Backed / Ondo / xStocks | getQuote("TSLAx") → NAV + on-chain px | mid |
| FX & commodities | data:fx | OANDA / metals APIs | getRate("EUR/USD"), getSpot("XAU") | cheap |
| Historical prices / OHLCV | data:price-history | CoinGecko Pro / Tiingo | getHistory("BTC", "1d", 365) | mid (payload) |
| Prediction-market feed | data:prediction-markets | Polymarket / Kalshi | getMarket(id) → implied probability | cheap |
| DeFi analytics | data:defi | DefiLlama / The Graph | getTVL("aave"), getPoolApy(pool) | cheap |
| News & sentiment | data:news | NewsAPI / CryptoPanic | headlines("BTC"), sentiment(text) | mid |
| Real-world events | data:rwa-oracle | sports / weather / elections | getResult(eventId) | mid |
| Gas & mempool | data:gas | Blocknative / Etherscan | getGas("ethereum") | cheap |
| Macro & rates | data:macro | FRED / treasury APIs | getSeries("CPI"), getYield("10Y") | cheap |
Why this works as a service: the node runs, say, a CoinGecko Pro key or a Chainlink node, caches and normalizes the data, and signs each response. With zkTLS/TLSNotary it can even prove the response came from the upstream API (architecture.md §verification), so the feed is trust-minimized, and a buyer told the wrong price has the bytes to show it.
DeFi protocol connectors (web3 apps)
A node runs an RPC and a protocol SDK and exposes live reads, quotes, and (optionally) ready-to-sign calldata for the major on-chain apps: the backbone for trading, arbitrage, lending and liquidation agents, which need protocol state every block. Paying per call beats every bot running its own archive node.
| Service | category | protocol | example call | use |
|---|---|---|---|---|
| Uniswap quotes | defi:uniswap | Uniswap v3/v4 | quote(tokenIn, tokenOut, amt) → price+route; poolState(pool) | DEX price, swap routing |
| Aave markets | defi:aave | Aave v3 | rates(asset) → supply/borrow APY; account(user) → health factor | lending, liquidation hunting |
| Curve / Balancer | defi:curve | Curve / Balancer | poolPrice(pool), getDy(...) | stable swaps, arb |
| Perps & funding | defi:perps | GMX / Hyperliquid / dYdX | funding(market), markPrice(market) | basis & funding arb |
| Liquidation watch | defi:liquidations | Aave / Compound / Maker | atRisk(threshold) → liquidatable positions | liquidation bots |
| LSTs & staking | defi:staking | Lido / Rocket Pool | apr(), exchangeRate() | LST strategies |
| Cross-DEX spread | data:arb-spread | aggregated venues | spread(token, venues) → bps gap | arbitrage signals |
| MEV / mempool | data:mempool | Flashbots / Blocknative | pending(filter), simulateBundle(...) | MEV, sandwich detection |
Killer use case: trading, arbitrage & prediction agents
The highest-volume, highest-value agents, and they need fresh data on every block. An arbitrage agent reads the DEX price from
defi:uniswap, the CEX reference fromdata:crypto-price, the gap fromdata:arb-spread, funding fromdefi:perpsand the cost of acting fromdata:gas, then acts throughaction:trade. A liquidation bot watchesdefi:liquidationsfor at-risk positions, checksdata:gas, and confirms each position's health throughdefi:aave. A prediction or betting agent takes implied odds fromdata:prediction-markets, addsdata:news, reasons withllm:completion, and places its position.Paying per call for shared, proven, trust-minimized feeds beats every bot maintaining its own archive node, RPC plan and a dozen vendor subscriptions. This is where AIOUM's metered model wins.
AI & compute
The models themselves are services too. A node that runs open weights or fronts a provider
account sells inference per call, so an agent that reasons with llm:completion in one step and
embeds with mcp:embeddings in the next pays two nodes two small amounts and holds a key to
neither provider.
| Service | category | mirrors | example call | price tier |
|---|---|---|---|---|
| LLM completion / chat | llm:completion | OpenAI / Anthropic / open weights | complete(prompt) | mid–high |
| Embeddings | mcp:embeddings | OpenAI / Cohere / bge | embed(text) → vector | cheap |
| Summarization | mcp:summarize | any LLM | summarize(text) | mid |
| Classification / rerank | mcp:classify | Cohere rerank | classify(text, labels) | cheap |
| Translation | mcp:translate | DeepL / NLLB | translate(text, "es") | cheap |
| OCR / document parse | mcp:ocr | Textract / docTR | extract(document) | mid |
| Speech-to-text | mcp:stt | Whisper | transcribe(audio) | mid |
| Text-to-speech | mcp:tts | ElevenLabs | speak(text) | mid |
| Image generation | mcp:image-gen | SDXL / FLUX | generate(prompt) | high |
| Vision / captioning | mcp:vision | GPT-4o-vision / LLaVA | describe(image) | mid |
| Code execution sandbox | mcp:code-exec | E2B / Modal | run("python", code) | mid–high |
Web & retrieval
Search, fetch and retrieval are the calls an agent makes most often, with the most vendor accounts behind them today. As services they are cheap, interchangeable and easy to test one against another, which is what an agent allowed to find its own tools does when two listings answer the same need.
Ready-made: the
apifyandbrightdataadapters resell Apify Actors and Bright Data's Web Unlocker, SERP and Web Scraper APIs fromservices.json— see Resell web data.
| Service | category | mirrors | example call | price tier |
|---|---|---|---|---|
| Web search | mcp:web-search | Brave / SerpAPI / Tavily | search(query) | cheap |
| Web scrape / fetch | mcp:web-scrape | Firecrawl / Jina Reader | fetch(url) → clean markdown | cheap |
| Vector retrieval / RAG | mcp:vector-search | Pinecone / pgvector | retrieve(query, k) | cheap |
| Crawl | mcp:crawl | Firecrawl | crawl(domain, depth) | mid |
Blockchain & infra
Under every on-chain read sits an RPC plan, an indexer and a simulator someone pays for by the month. As services they are bought per query, and the last row shows how far the model stretches: an audit is just another metered call with a staked node behind it.
| Service | category | mirrors | example call | price tier |
|---|---|---|---|---|
| RPC / node access | infra:rpc | Alchemy / Infura | call(method, params) | cheap |
| Indexed queries | infra:indexer | The Graph / Dune | query(gql) | mid |
| Tx simulation | infra:simulate | Tenderly | simulate(tx) | mid |
| Token / NFT metadata | infra:metadata | Alchemy / Reservoir | tokenMeta(addr) | cheap |
| Bridge / swap quotes | infra:routing | 0x / LiFi | quote(from, to, amt) | cheap |
| Contract Auditor | security:audit | Slither / Mythril / static analyzers | auditContract(source) or auditContract(address, chainId) → findings[]{severity, class, note} + summary | mid |
Contract Auditor (security:audit): audit any smart contract for known vulnerabilities. The
node takes raw Solidity source or an on-chain (address, chainId) (it fetches verified source /
bytecode), runs a static-analysis pipeline, and returns findings keyed to known vulnerability
classes (reentrancy, access control, integer over/underflow, unchecked external calls,
delegatecall misuse, oracle manipulation), each with a severity (high/medium/low/info) and a
short note, plus a summary. Like the other rows it is an example definition: a node offering
it wires the call to an analyzer (Slither/Mythril/etc.) and stakes against the quality of its
findings.
Actions & integrations
Not every service is a read. Side-effecting services let the agent pay to do something: send a message, pin a file, put an event on a calendar or place a trade. The last of these is where trust matters most, which is why a node listing it stakes the most.
| Service | category | example |
|---|---|---|
| Notifications | action:notify | email(to, body), telegram(chatId, msg) |
| Storage | action:storage | pin(bytes) → IPFS CID |
| Calendar / tasks | action:calendar | createEvent(...) |
| Trading / execution | action:trade | swap(...), placeOrder(...) (high trust → high stake) |
How an agent uses these together
A typical "trade-research" agent in one run might call
data:crypto-price (spot) → data:price-history (trend) → data:prediction-markets (sentiment)
→ mcp:web-search (news) → llm:completion (reason) → action:notify (alert), each a metered
micropayment to a different node, all settled in stablecoins, with no accounts or keys of its own.
Nobody hands the agent that list. An assistant-mode agent in the app can be allowed to find tools on its own: when the job needs something its tools cannot do, it searches the live marketplace in plain words, for free, and whatever it finds becomes callable by name within the budget its owner set. If two services offer the same thing and the budget allows, it may try both and prefer the better result, so the better listing earns the business on merit. After every settled session the agent rates the operator on-chain, 0–100, scored down from the errors and slow answers it met; the rating next to a listing is issued by agents from real results, not typed in by people.
The payment flow behind each call is launch-agent-workflow.md; listing one of these services yourself is run-a-node.md.
Every row is bought with a signed receipt rather than an API key, and that choice is what lets the whole catalogue stand open to any agent with a budget.
Next: Get started — the hands-on part: exactly what to press and what to run, from backing an operator to wiring your own tools to your agents.