MCP Server for Z.AI - A Model Context Protocol server that provides AI capabilities
Rokha is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Search a registry of agent skills and MCP servers, then run them for real. No install, traced.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http rokha-mcp https://rokha.ai/mcp/jsonrpc
# 2 — ask your agent for something these tools do
# send_agent_message, create_task, get_task_status and 269 more
Rokha costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http rokha-mcp https://rokha.ai/mcp/jsonrpcReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
272 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Send a message to a Rokha agent (default 'rokha-agent') and get its reply. With a logged-in identity (Authorization: Bearer <JWT>) the agent acts AS you — it can run your rigs (rig_run), read your saved keys/OAuth grants, and spend your budget; anonymous callers get general chat only. This is the door to have Rokha do work on your behalf over MCP.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_name | string | yes | Name of the agent (e.g., 'rokha-agent', 'siren') |
| message | string | yes | Message content to send to the agent |
Create a new task in the Rokha task system
| Parameter | Type | Required | Notes |
|---|---|---|---|
| description | string | yes | Task description |
| name | string | yes | Task name |
| priority | string | no | Task priority |
Get the status of a task by ID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| task_id | string | yes | UUID of the task |
List all harnesses for a wallet address. Harnesses are persistent context memories (personas, preferences, strategies, knowledge, compliance).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| harness_type | string | no | Filter by harness type (optional) |
| limit | integer | no | Maximum number of harnesses to return (default: 50) |
| wallet_address | string | no | Owner scope. Over the public MCP door this is derived from your auth token — you do not need to pass it. |
Get a specific harness by ID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| harness_id | string | yes | UUID of the harness |
Create a new harness (persistent context memory) for a wallet. Also creates RIG STEPS (harness_type 'skill'/'instruction'): content is the step's JSON config — {skill?, instruction, endpoint?, tool?, params?, expects?, produces?, secret_refs?, model?, model_policy?}. model pins the Anthropic model for the step's agentic execution (e.g. 'claude-sonnet-4-6'); model_policy 'preferred' (default —
| Parameter | Type | Required | Notes |
|---|---|---|---|
| content | string | yes | Content/value of the harness |
| harness_type | string | yes | Type of harness |
| key | string | yes | Unique key for this harness within the wallet |
| metadata | object | no | Optional metadata for the harness |
| wallet_address | string | no | Wallet address that owns the harness |
Update an existing harness's content or metadata. For a rig-step harness, content is the FULL config object — keep skill intact and set instruction/endpoint/tool/params/model/model_policy (see create_harness for the model-pin semantics).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| content | string | no | New content for the harness (optional) |
| harness_id | string | yes | UUID of the harness to update |
| metadata | object | no | New metadata for the harness (optional) |
Delete an harness by ID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| harness_id | string | yes | UUID of the harness to delete |
Search harnesses by query string within a wallet
| Parameter | Type | Required | Notes |
|---|---|---|---|
| harness_type | string | no | Filter by harness type (optional) |
| query | string | yes | Search query |
| wallet_address | string | no | Wallet address to search within |
Set the preferred LLM model for an agent. Search by name or keyword (e.g., 'opus', 'claude-sonnet', 'gpt-4o', 'deepseek', 'llama'). Any model available on OpenRouter can be used.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_name | string | yes | Name of the agent to set model for (e.g., 'clawros', 'rokha-agent', 'moros') |
| query | string | yes | Model name or keyword to search for |
Get the current preferred LLM model for an agent.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_name | string | yes | Name of the agent to get model for (e.g., 'clawros', 'rokha-agent', 'moros') |
Search EVERY major skill/MCP registry at once (clawhub, Glama, the official MCP registry, Smithery, skills.sh, Docker MCP, Anthropic and more — the live count is in GET /api/marketplace/registry/stats) by free-text query. Returns name, slug, provider, author, version, downloads, and description for each match. A UUID query is an exact-id lookup — paste a listing id (every Rokha rig/harness/skill s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Max results (default 10, max 25) |
| proven | boolean | no | true = only PROVEN listings (ran for real to a result, no step error) |
| query | string | no | Free-text search, e.g. 'UI design' or 'summarize youtube' |
| type | string | no | Only this listing type, e.g. 'rig' |
Fetch everything an agent needs to adopt a Registry skill: the full SKILL.md (agentskills.io standard — frontmatter name/description + body), its classification (prompt-shaped vs scripted vs mcp), and required binaries. To install: save the returned skill_md as SKILL.md inside a folder named after the slug in your agent's skills directory.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| provider | string | no | Registry provider from registry_search (e.g. 'rokha', 'clawhub', 'smithery'). Omit to auto-resolve: first-party 'rokha' listings are tried first, then 'clawhub'. |
| slug | string | yes | The skill's slug from registry_search (e.g. 'ui-design') |
List YOUR saved rigs, newest first, optionally narrowed by query (matches the name/summary). This is how an agent RECOVERS: rig_author returns an id, but an agent that runs across sessions will not still be holding it, and without this it could only ever re-author from scratch — quietly making a second rig instead of finding the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | How many (newest first). |
| query | string | no | Narrow by name/summary. Omit for everything you own. |
Read ONE of your rigs in full — its steps, wiring, guards and stage. Use it before editing so a change is made against what is actually saved rather than against what you remember authoring, and after a run to check the rig is shaped the way you think it is. Owner-scoped. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The rig's UUID (rig_search lists them). |
List your Traces — the durable record of what a run DID, newest first. This is the other half of rig_run: a run reports that it started, and the trace is where the answer lands. Without it an agent can run a rig and never learn whether it worked, which makes the run untestable. Filter by rig_id (this rig's runs), `parent_trace_i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Newest N (default modest). |
| node_id | string | no | One graph node's passes within a run. |
| parent_trace_id | string | no | The atomic step traces under one run — how you see which steps actually ran. |
| rig_id | string | no | Only traces from this rig. |
| run_id | string | no | One run's traces — the run id rig_run / POST /api/rigs/run hand back. Works anonymously for a PUBLIC rig's run. |
| status | string | no | e.g. success, error, partial. |
| trace_kind | string | no | 'run' (containers) or 'atomic' (steps). |
RUN a rig, for real, right now. Without this an outside agent could AUTHOR a rig, schedule it and hang a webhook on it — but never run one on demand, and so never test the thing it just built. Name the rig by rig_id (one you own or adopted) OR by provider_id + external_id (a published listing — this adopts YOUR OWN copy firs
| Parameter | Type | Required | Notes |
|---|---|---|---|
| external_id | string | no | With provider_id. |
| input | string | no | What the run works on. Omit only for input-less rigs. |
| provider_id | string | no | With external_id: run a PUBLISHED listing (adopts your own copy first). |
| rig_id | string | no | UUID of a rig you own or adopted. |
| wait | boolean | no | true = hold the call until the run finishes (up to ~5 min) and return its output, steps, status and trace_id in one answer. Default false: returns at once, results land as traces (trace_search by rig_ |
PUBLISH a rig you saved (rig_author) as a registry listing in ONE call (free accounts publish 5 rigs; the Studio lifts the cap — at the cap it answers 402 publish_cap with used/cap; publish_allowance shows yours) — the server reads the rig, turns its graph into the runnable step skeleton (metadata.rig: steps, edges including fan-in, https endpoint bindings), write
| Parameter | Type | Required | Notes |
|---|---|---|---|
| description | string | no | Listing description. Defaults to the rig's intent, then its summary. |
| name | string | no | Listing slug (kebab-case). Defaults to the rig's key. |
| rig_id | string | yes | UUID of the saved rig (rig_author answers it; rig_search finds it). |
| tags | array | no | Listing tags (default ['rig']). |
Attach a DESIGNED DASHBOARD to a rig you own — a stored, self-contained HTML template rendered after EVERY run with that run's data injected. Without this an outside agent could author a rig but never give it a face, so its runs left a trace and nothing to look at. The template MUST contain the literal __ROKHA_DATA__ slot; at run
| Parameter | Type | Required | Notes |
|---|---|---|---|
| clear | boolean | no | true = remove the rig's stage. |
| data_source | string | no | 'last_step' (default) or 'step:<tag>'. |
| rig_id | string | yes | UUID of the SAVED rig (rig_author returns it). |
| template_html | string | no | Self-contained HTML carrying the __ROKHA_DATA__ slot. |
| title | string | no | Optional dashboard title. |
Author a standard agentskills.io Agent Skill and get back its SKILL.md. A strong skill has: a name in kebab-case (lowercase letters, numbers, single hyphens, ≤64 chars); a description stating WHAT it does AND WHEN to use it, third person, with concrete trigger words (the field agents read to decide whether to load it); and instructions (the Markdown body), specific + imperative, ideally shap
| Parameter | Type | Required | Notes |
|---|---|---|---|
| allowed_tools | string | no | Optional. SPACE-separated, least-privilege tool allowlist with optional scoping (e.g. 'Bash(git:*) Read'). Experimental. |
| compatibility | string | no | Optional, ≤500 chars. Runtime/environment requirements (e.g. 'Requires Python 3.14+ and uv'). Omit for pure-instruction skills. |
| description | string | yes | What it does + when to use it. Third person, with trigger words. ≤1024 chars. |
| instructions | string | yes | The Markdown body. Specific + imperative. When-to-use → Instructions → Examples → Guidelines. |
| license | string | no | Optional. A license name or bundled-file reference (e.g. 'MIT'). |
| metadata | object | no | Optional. Arbitrary string→string metadata (e.g. {"author":"example-org","version":"1.0"}). |
| name | string | yes | Skill id + folder name. kebab-case, ≤64 chars. |
Configure a Harness — a skill (or instruction) wired to run — and get back its config. A harness wraps ONE unit of work via kind: 'skill' (a registry skill, configured to run) or 'instruction' (a pure agent step, no external tool). Set instruction (imperative — what to do with the skill, or the step to perform), an optional tag (short label), and for a real live tool call an optional MCP `en
| Parameter | Type | Required | Notes |
|---|---|---|---|
| endpoint | string | no | Optional MCP JSON-RPC endpoint URL. Empty = performed agentically. |
| instruction | string | no | Imperative instruction: what to do with the skill, or the step to perform. |
| kind | string | no | What the harness wraps: 'skill' or 'instruction'. Default 'skill'. |
| params | object | no | Optional arguments for the tool / run, as key→value pairs. |
| tag | string | no | Optional short label (e.g. 'fetch-prices'). |
| tool | string | no | Optional tool name to invoke on the endpoint. |
Schedule a SAVED rig to run on a recurring cadence — from every minute up to weekly (those three presets only). Every fire is owner-scoped and draws on the owner's daily run budget (a spent budget skips the fire, recorded as skipped_budget). The rig must be SAVED first (rig_author) — pass its UUID as rig_id. Requires a logged-in identity (Authorization: Bearer <JWT>). Cap: 20 schedules per account
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cadence | string | yes | How often the rig runs. 1 minute is the fastest preset; every fire is budget-gated. |
| rig_id | string | yes | UUID of the SAVED rig to run on schedule. |
| rig_name | string | no | Optional display name for the schedule. |
List your rig schedules: cadence, enabled state, next/last run time, run count, and last status (ok | partial — some steps failed | error | skipped_budget). Requires a logged-in identity.
No parameter schema on file.
Delete one of your rig schedules by its schedule id (from schedule_list). The rig itself is untouched. Requires a logged-in identity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| schedule_id | string | yes | UUID of the schedule to delete. |
Pause or resume one of your rig schedules. Paused schedules keep their place but never fire until resumed. Requires a logged-in identity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| paused | boolean | yes | true to pause, false to resume. |
| schedule_id | string | yes | UUID of the schedule to pause or resume. |
Create a WEBHOOK TRIGGER for a SAVED rig: returns a secret hook URL; any outside system POSTing that URL fires the rig immediately (no polling), with the POST body threaded in as the rig's run input. Every fire draws on the owner's daily run budget (fail-closed); each hook is rate-limited to 6 fires/minute. The URL is a SECRET — a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| rig_id | string | yes | UUID of the SAVED rig this webhook fires. |
| rig_name | string | no | Optional display name for the hook. |
List your webhook triggers: the secret hook URL, bound rig, enabled state, fire count, and last fire verdict (ok | partial | error | skipped_budget). Requires a logged-in identity.
No parameter schema on file.
Delete one of your webhook triggers by its hook id (from hook_list). This REVOKES the secret URL — outside systems still posting it get 404. The rig itself is untouched. Requires a logged-in identity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hook_id | string | yes | UUID of the webhook trigger to delete. |
List your saved keys & secrets (Profile → API KEYS) — each with its provider, its ALIAS (the name a harness attaches it by via secret_refs), and a MASKED preview. NEVER returns a value. Covers pasted API keys, custom secrets, and OAuth-brokered grants. Requires a logged-in identity.
No parameter schema on file.
Register an external MCP server behind your Rokha GATEWAY — one endpoint that aggregates all your servers with credentials injected server-side. Any MCP client pointed at the gateway URL (with your Rokha token) then sees this server's tools namespaced <slug>_<tool>. secret_alias names a vault key/OAuth grant that authenticates it (omit for open servers). Requires a logged-in identity. Cap 20.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Short name — kebab-cased into the tool namespace. |
| secret_alias | string | no | Vault alias that authenticates it (omit for open servers). |
| server_url | string | yes | The upstream MCP server URL. |
List the servers registered behind your Rokha gateway (slug, URL, authenticating alias) plus the single gateway_url an MCP client connects to. Requires login.
No parameter schema on file.
The AUTH LADDER: classify any MCP server URL — 'open' (no credential), 'key' (paste a token into the vault once), 'tier1' (one-click account-wide Connect for a known provider), or 'oauth_spec' (the MCP auth spec — connect directly, approve in a browser). Returns the one right next step. Works without login.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| server_url | string | yes | The MCP server URL to classify. |
List your OAuth connections (each names its vault alias, e.g. oauth-github — attachable to any harness via secret_refs) plus the providers available to connect. Requires a logged-in identity.
No parameter schema on file.
Start an OAuth Connect and get the consent URL to open in a browser. Pass provider (github|google|x|atlassian|microsoft|slack|notion|gitlab|discord|reddit|linear — account-wide, reused everywhere) OR server_url (any MCP server; Rokha runs the MCP auth-spec handshake, grant bound to that server). On approval the token lands in the vault under the returned alias. Requires a logged-in identity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| provider | string | no | Tier-1 provider id (mutually exclusive with server_url). |
| server_url | string | no | Any MCP server URL for the spec handshake. |
Pause or resume one of your webhook triggers. A paused hook keeps its URL but every post to it is refused until resumed. Requires a logged-in identity.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hook_id | string | yes | UUID of the webhook trigger to pause or resume. |
| paused | boolean | yes | true to pause, false to resume. |
Add ONE block (graph node) to a canvas rig — the granular edit for 'add a step that …'. Appends and auto-wires an edge from the current last block (default), from after (a node id/label/position), or unwired with after='none' (a new parallel branch head). Node fields match rig_author's nodes. Returns the rig's fresh block-by-block summary — read it back to the user; the Builder canvas updates li
| Parameter | Type | Required | Notes |
|---|---|---|---|
| after | string | no | Wire the new block after THIS node (id, label, skill name, or 1-based position). Default: the current terminal block. 'none' = leave unwired. |
| node | object | yes | The block, same fields as a rig_author node: {skill?, sub_rig?, label?, instruction?, doc_input?, endpoint?, tool?, params?, url?, method?, data_op?, data_key?, data_type?, model?, model_policy?, secr |
| rig_id | string | yes | UUID of the rig (rig_search finds it; the Working Rig is usually the most recent) |
| wallet_address | string | yes | Owner scope |
Remove ONE block (graph node) from a canvas rig — 'delete step 2' / 'drop the summarize block'. Identify the block by node id, label, bound-skill name, or 1-based position. The chain HEALS: every upstream re-wires to every downstream, so deleting a middle block never severs the flow. Returns the fresh block summary; the Builder canvas updates live.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node | string | yes | Which block: node id, label, skill name, or 1-based position ('2') |
| rig_id | string | yes | UUID of the rig |
| wallet_address | string | yes | Owner scope |
Configure ONE block (graph node) of a canvas rig in place — 'change step 2's instruction', 'point that block at a live endpoint', 'pin Sonnet on the judge step'. Identify the block by id/label/skill/position; pass only the fields to change (rig_author's node fields) — a MERGE, so tweaking the instruction never wipes a wired endpoint. skill re-resolves the registry binding. The block keeps its id
| Parameter | Type | Required | Notes |
|---|---|---|---|
| data_key | string | no | — |
| data_op | string | no | — |
| data_type | string | no | — |
| doc_input | boolean | no | — |
| endpoint | string | no | — |
| expects | string | no | What this step expects from upstream, in plain words |
| headers | object | no | Extra HTTP headers for a url fetch. |
| instruction | string | no | — |
| label | string | no | — |
| method | string | no | — |
| model | string | no | — |
| model_policy | string | no | — |
| node | string | yes | Which block: node id, label, skill name, or 1-based position ('2') |
| params | object | no | — |
| produces | string | no | What this step produces for downstream |
| rig_id | string | yes | UUID of the rig |
| secret_refs | array | no | The runner's saved keys for this step: [{alias, as?}] — as = 'param:<key>' | 'header:<Name>[:<prefix>]', or omit and use {{secret:<alias>}} in a param value. This is how you wire an API key onto an ex |
| skill | string | no | Re-bind the block to this registry skill (optional) |
| sub_rig | no | Re-bind the block as a SUB-RIG step: {rig_id, name?} (or the rig_id string). An existing sub-rig binding survives every OTHER patch untouched — you only need this to point the block at a different rig | |
| tool | string | no | — |
Wire or unwire ONE edge between two EXISTING blocks of a canvas rig — 'connect the fetch step to the judge', 'route the critique back to revise when it says REVISE', 'disconnect A from B'. Identify both ends by node id, label, skill name, or 1-based position. Add guard ({source, op, value?}) to make the edge a CONDITIONAL route — how a loop gets its exit condition on a stateful_graph. `remove: t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string | yes | Source block: node id, label, skill name, or 1-based position |
| guard | object | no | Take this edge ONLY when the condition holds — {source, op, value?}. source is a {{node.port}} channel ref; op = eq | not_eq | contains | gt | gte | lt | lte | truthy | exists. |
| kind | string | no | 'data' (default) | 'control' | 'conditional' (implied when guard is set) |
| remove | boolean | no | true = drop the from→to edge instead of adding one |
| rig_id | string | yes | UUID of the rig (rig_search finds it) |
| to | string | yes | Destination block: same identifiers |
| wallet_address | string | yes | Owner scope |
Read a rig's stage configuration back — the template HTML, data_source and title, plus whether it currently validates (a broken stage names what to fix). Use before editing an existing stage so changes are never guess-and-overwrite.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| rig_id | string | yes | UUID of the saved rig |
| wallet_address | string | yes | Owner scope |
Author a multi-node Rig as a GRAPH the runtime executes for real — the agent-side mirror of the Rig Builder canvas. USE WHEN the user wants a multi-step flow with branching, fan-in, or a loop ('draft → critique → revise until good'). structure_type: 'linear', 'dag' (default) or 'stateful_graph' (loops + conditional edge guards: an unfired guard means its target NEVER RUNS; guards fail CLOSED; lo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| edges | array | no | Directed edges between node ids. A plain {from, to} is a data edge; add guard to make it a CONDITIONAL route (stateful_graph loops: 'revise until good' = critique → revise guarded on the verdict, pl |
| input | string/object | no | WHAT THIS RIG ASKS ITS RUNNER FOR — the labelled input box the Builder canvas and the rig's product page render, and the value that fills every {{input}} placeholder at run time. Pass a plain string |
| inputs | array | no | ADDITIONAL input ports beyond input (or the full list on their own) — same shapes as input. The FIRST input fills {{input}}; a multi-input rig renders one labelled box per port. |
| key | string | no | Rig storage key — EACH DISTINCT KEY IS ITS OWN SAVED RIG (default 'agent-rig' = the Working Rig; use a fresh kebab key per additional rig, e.g. 'news-digest') |
| name | string | no | THE RIG'S NAME — the Builder's header box, which gates BOTH Save and ▶ Run for a human. Defaults to summary so the rig is always nameable; pass a short product-style name ('X Sentiment Digest') when |
| nodes | array | yes | Graph nodes. Each is one step. |
| outputs | array | no | What the rig DECLARES IT PRODUCES — the contract's output side, shown on the canvas Output box and the product page. Same shapes as input (required is input-only). e.g. [{"label": "the audit report" |
| state | array | no | SHARED STATE CHANNELS (stateful_graph) — named channels loop iterations read/write via {{node.port}} refs; reducer merges concurrent fan-out writes: 'last_write' (default) | 'append' | 'add'. Each |
| structure_type | string | no | 'linear' (a simple chain — what the guided Builder produces), 'dag' (default; acyclic, parallel branches + real fan-in) or 'stateful_graph' (cyclic loops + conditional edge guards — the runtime evalua |
| summary | string | no | Short human description of the flow (shows as the rig's name) |
| wallet_address | string | yes | Wallet address that owns the rig (the scope the run reads) |
READ one trace in full (input, result, status, timing) by id, or a whole run by run_id (status, steps with their trace ids, output, every trace). Signed in (Authorization: Bearer <token>): your own traces. No token: a PUBLIC rig's run is readable by anyone holding its trace id or run id — the runner's identity is stripped. Anything else answers not-found. RE
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | no | A trace UUID (every trace row shows it). |
| run_id | string | no | A run UUID — the id rig_run / POST /api/rigs/run hand back. Pass this OR id. |
Run a REAL command in the user's active session sandbox (isolated cloud shell + live MCP). kind='bash' (command) | 'mcp' (endpoint, action list|call, tool, arguments) | 'agent' (instruction). Needs wallet_address; anon works. No active sandbox → says so.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | no | — |
| arguments | object | no | — |
| command | string | no | — |
| endpoint | string | no | — |
| image | string | no | — |
| instruction | string | no | — |
| kind | string | yes | — |
| params | object | no | — |
| tool | string | no | — |
| wallet_address | string | yes | — |
Start the user's session sandbox (isolated cloud shell — the safe place to test untrusted tools; sandbox_exec runs work inside it). SPENDS the daily run allowance: 1 run, or 3 with browser: true (a chromium-capable sandbox) — confirm with the user before calling unless they just asked for one. Idempotent: an already-running sandbox is returned (existing: true), never doubled. Needs `wallet_add
| Parameter | Type | Required | Notes |
|---|---|---|---|
| browser | boolean | no | true = a browser-capable (chromium) sandbox — costs 3 runs instead of 1 |
| wallet_address | string | yes | — |
The user's session-sandbox state (starting | active | ending | ended | none) plus the 20 newest work items (id, kind, status, result). Check this before sandbox_exec, and to report what ran.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| wallet_address | string | yes | — |
Stop the user's session sandbox gracefully (state → 'ending'; queued work drains). Frees nothing to re-spend — the day's allowance was spent at start — but a stopped sandbox is good hygiene when the work is done.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| wallet_address | string | yes | — |
Toggle KEEP-ALIVE on the user's session sandbox — the chat twin of the ◉ keep-alive control in the SANDBOX pane. on: true holds the sandbox up across idle periods (so it doesn't wind down between uses) until turned off or the daily keep-alive clock runs out; on: false returns it to the standard free idle window (which shuts it down on inactivity). USE THIS when the user asks to keep their sand
| Parameter | Type | Required | Notes |
|---|---|---|---|
| on | boolean | no | true = keep the sandbox alive across idle (default); false = let it wind down on the normal idle window. |
| wallet_address | string | yes | — |
THE WINDSOCK — Rokha's own social-trading signal board, read live from the platform's store (never from memory). One trend score per Solana token from pump.fun launches + graduations (PumpPortal), DexScreener paid boosts + 1h volume/txns, GMGN smart-money and KOL fills, fomo.family top-trader trades, and X buzz (mentions, authors, follower reach, audience quality) — every score shows its per-term
| Parameter | Type | Required | Notes |
|---|---|---|---|
| before_id | integer | no | events only: keyset cursor — pass the previous page's next_before_id |
| kind | string | no | events only: one event kind |
| limit | integer | no | trending ≤100 (default 50) · events ≤500 (default 100) · wallets ≤200 (default 50) |
| mint | string | no | token view (required) / events filter: a Solana mint address |
| q | string | no | momentum only: focus on one mint, or a word matched inside token names and symbols (a narrative or a ticker) |
| since | string | no | events only: RFC 3339 timestamp lower bound |
| source | string | no | events only: one vendor lane |
| view | string | no | Which read (default trending). Scores carry terms (vol · txn · smart · buzz · boost · fresh, in milli-points). events filter by source/kind/mint/since and page with before_id; wallets carry vendor-r |
| window | string | no | heat only (default 1h) |
The live $ROKHA fuel price in USD — the number every fuel draw converts at: the LOWER of a Jupiter sell quote and DexScreener, and never above the 15-minute low. Refuses (never guesses) when either source is silent or they disagree. Read-only. REST twin: https://rokha.ai/api/fuel/price
No parameter schema on file.
What a $ROKHA fuel tank can buy besides inference: each item's id, label, USD price and the burn tier it needs. Half of every $ROKHA spent pays the model, the other half burns. Read-only. REST twin: https://rokha.ai/api/fuel/menu
No parameter schema on file.
The caller's own $ROKHA fuel tanks: deposit wallet, spendable balance (tokens + USD), owner-funded vs donated, burned and housed totals, what the owner may withdraw, burn tier, and whether the tank is dormant (below one turn's reserve). On an agent's own turn it shows only that agent's tank. Read-only; signed-in callers only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| wallet_address | string | no | The caller's owner identity (injected from context). |
Spend a fuel tank on one menu item (fuel_menu lists them). The OWNER's turn only — an agent's own turn is refused. Draws the item's USD price in $ROKHA at the live price (half burned, half to House) and applies the effect; if the effect cannot be applied nothing is charged. Confirm the item and price with the owner before calling — it spends their fuel.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| item | string | yes | A menu item id from fuel_menu. |
| tank_id | string | no | Which of the caller's tanks pays (fuel_status lists them). Omit for the caller's own tank. |
| target | string | no | The item's target when it needs one (scout_run: a Solana mint address). |
| wallet_address | string | no | The caller's owner identity (injected from context). |
Publish (or update) YOUR listing in the Rokha Registry so anyone — human or agent — can find and use it. Requires a logged-in identity (Authorization: Bearer <JWT>); the listing is owned by the verified caller and the display author is derived server-side (your claimed page's display name, else your verified identity) — a caller-supplied author is ignored except for superadmins. name must be keb
| Parameter | Type | Required | Notes |
|---|---|---|---|
| description | string | yes | what it does (≤4000 chars) — this is the discovery text |
| homepage | string | no | — |
| listing_type | string | yes | — |
| metadata | object | no | the artifact: skill_md / harness / rig (≤200KB) |
| name | string | yes | kebab-case slug, ≤64 chars |
| source_id | string | no | UUID of the rig/harness/skill this listing is published FROM. Pass it whenever you have it: the server verifies you own that record, stamps it on the listing, and the id then resolves to this listing |
| tags | array | no | — |
| title | string | no | display name (defaults to the slug) |
| version | string | no | — |
Step 1 of registering (or logging in) a user with a wallet keypair — no browser needed. Returns a challenge message to sign with the wallet's private key. Works for Solana (base58 Ed25519 address) and EVM (0x address). Follow with auth_wallet_verify. New wallets are auto-registered on first verify as a free account (a daily allowance + 3 runs; the Studio, $249 a month, lifts the caps).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | no | optional chain override (solana | evm) — auto-detected from the address |
| wallet_address | string | yes | the wallet's public address (base58 Solana or 0x EVM) |
| wallet_type | string | no | defaults by address shape: 0x → metamask, else phantom |
Step 2: submit the signed challenge. On success returns session_token — a JWT to send as Authorization: Bearer <token> on every subsequent MCP/API request, unlocking the owner-scoped tools (page_claim, create_harness, rig_author, registry_publish, schedules, …). Solana: Ed25519 signature over the raw challenge message bytes (base58 or comma-separated bytes). EVM: EIP-191 personal_sign hex.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| challenge_id | string | yes | — |
| signature | string | yes | — |
| wallet_address | string | yes | — |
All CLAIMED public builder pages (/@handle) with aggregate stats over each builder's published listings. Public, no auth.
No parameter schema on file.
The ranked Top Builders board (same data as the landing page): weighted adoption score per builder — all-time rig runs (heaviest), tool runs & shipped creations, plus last-7-day actions & page views. Public, no auth.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | 1-100, default 10 |
| offset | integer | no | page offset into the ranked board |
A builder's public page by handle (what /@handle renders): profile, links, badge, public creations, 30-day activity heartbeat, view counts, rig sub-pages. Counts as a page view (agents are genuine visitors). Public, no auth.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | yes | — |
HISTORY — the Tailwind retired 2026-10-09 22:00 UTC (its last round paid in full) and posting about members pays nothing. Kept for the record: the live Rokha Network members with their own copy, links, images and X handles, and the post rules that applied while the Tailwind ran. Nobody is paid for a post, a tag, a raid or a use now — Rokha runs no platform payouts; the money on Rokha is selling (p
No parameter schema on file.
HISTORY (the Tailwind retired 2026-10-09 22:00 UTC; posts after it score 0 — see board_get / GET /api/board/justify/{handle} for what pays now). WHY A POST SCORED WHAT IT SCORED — the honest, checkable breakdown for one post. Pass post_id (the numeric id from any x.com/…/status/<id> link). Returns the exact arithmetic for the rules the post was made under. Posts from 2026-10-02 22:00 UTC use X's o
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post_id | string | yes | — |
HISTORY (the Tailwind retired 2026-10-09 22:00 UTC). THE ROWS BEHIND AN ACCOUNT'S SEED TOTAL. Pass who (a Rokha page handle or an X handle). Each recent post with what it earned, its X-weighted units (replies x5, quotes x5, reposts x1, likes x0.5; seeds = units x10), and why it scored what it did — rule zero (under 2.0 X-weighted earns nothing) or the copied check. Posts from before 2026-10-02 22:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| who | string | yes | — |
HISTORY (the Tailwind retired 2026-10-09 22:00 UTC). EVERY MULTIPLIER, AND WHICH WERE LIVE ON AN ACCOUNT. Bare = the full menu. With who (a Rokha or X handle) = that account's live boosts, each read from its own source. NO TAG BOOSTS for posts made since 2026-10-02 22:00 UTC (a carry x1.25-x1.50 shows only on older posts, stamped once at collection). COPIED x0: a word-for-word copy of an earlier p
| Parameter | Type | Required | Notes |
|---|---|---|---|
| who | string | no | — |
THE LAST AUDIT ON FILE FOR AN ACCOUNT, IN FULL. Pass who (an X handle). Rendered from the snapshot's own stored card — what the audit actually concluded, not a re-run. The grade and organic score, the account's followers / following / posts, median engagement units and estimated honest rate, EVERY FLAG WITH ITS SIGNED POINT DELTA (the score is their sum — showing them is what makes the number argu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| who | string | yes | — |
WHAT ROKHA COSTS — one way in (since 2026-10-09). Rokha is the AI Studio and Marketplace — the tools to build agents and put them to work. Build it, it gets used, it grows; Rokha runs no platform payouts. THE STUDIO ($249 a month, card or USDC) is the ONLY thing anyone pays Rokha for: the builder's bench — build, run and publish rigs, create agents, Signet, fuel — plus more platform access while y
No parameter schema on file.
ROKHA'S FLIGHT PLAN — ONE MILESTONE MAP, AS DATA. milestones leads: the Intel® Partner Alliance, IBM Partner Plus and the Microsoft AI Cloud Partner Program CROSSED (the three official partnerships); Rokha AI is a member of the NVIDIA Inception Program (a membership, never a partnership) and is listed in the GitHub MCP Registry (a listing, never a partnership). Then every other platform program,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Words to match across titles, blurbs and fits, e.g. 'hackathon' or 'IBM'. |
| track | string | no | One track by key or name (prefix ok): programs, partner-programs, events, grants, partners, directories, token. |
THE NETWORK, MEASURED, BOTH DIRECTIONS — reach we can prove (sampled follower counts with the timestamp they were read at, never a claim), the Attention Board's seats and worth, active agents on the MCP door, carriers, and every payout with its transaction signature. Read this before quoting any number about Rokha's size; honest zeros are part of the pitch. Public, no auth.
No parameter schema on file.
EDGE (rokha.ai/edge) — the agent world as a token-cheap digest: how many MCP servers, skills and agents the registries list, what is new this week, MCP SDK downloads, ecosystem repos, what people are saying, the MCP spec revisions, and how agents use Rokha's own MCP door. section: overview (default — four numbers: listings_active, listings_new_24h, sdk_downloads_7d {npm, pypi, sum}, spec_current
| Parameter | Type | Required | Notes |
|---|---|---|---|
| full | boolean | no | Return the whole section instead of the compact digest. Default false. |
| id | string | no | Feed id; required when section=feed (list them with section=feeds). |
| section | string | no | Which part of the Edge explorer. Default overview. |
EDGE, LIVE ON ROKHA (rokha.ai/edge) — what is running on Rokha right now, as a digest over the live desk: section = totals (default — uses_24h, uses_7d, agent acts, Rokha's answers, published/proven listings, sandbox and registry runs, Signet actions, MCP calls 7d) · lanes (one per nameable agent, Rokha first, with 24 h counts by kind) · events (newest first, rounded to the minute; a trace_id re
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Rows for events/spokes/lanes. Default 10. |
| section | string | no | Default totals. |
LEGACY ACTIVITY BOARD (retired as a payout table — Rokha runs no platform payouts). Builders and promoters ranked on one activity score this round — built (distinct others ran your listings), operated, brought (referrals who then ran something), scouted, sold, plus pin_points. Each row carries rank, points by lane, its ticket (ran for a distinct other · payout wallet · audit clean), lane, `page_
| Parameter | Type | Required | Notes |
|---|---|---|---|
| section | string | no | Which section of the legacy board. |
| week | string | no | The round date, YYYY-MM-DD; omit for the current round. |
THE FRONT CARDS (GET /api/front) — the Rokha-native half of the market as one ranked list; for the store itself (aisles, departments, the whole open registry) use market_search. Every published rig, skill, Forge agent, claimed page and marketer on Rokha as a card, ranked by real use (GET /api/front/stats for published, uses_total, uses_24h, live_now, builders, registered_users, calls). Every numbe
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | Which cards; default all. |
| limit | integer | no | How many cards; default 24. |
| sort | string | no | Order; default top. |
THE MARKET (rokha.ai/market, GET /api/market) — everything you can run on Rokha in one store: Rokha-native rigs, skills, MCP servers, Forge agents, builders and marketers (ranked by real use, exactly like the front board), then the WHOLE synced open registry (Smithery, Glama, ClawHub, skills.sh, the MCP Registry, Docker, Anthropic skills…) — every item runs on Rokha for real (sandbox or remote MCP
| Parameter | Type | Required | Notes |
|---|---|---|---|
| aisle | string | no | What it is; default all. |
| cursor | string | no | The previous page's next_cursor. |
| dept | string | no | What it is for; default all. |
| limit | integer | no | Items per page; default 24. |
| price | string | no | Default any. |
| proven | boolean | no | Only what ran end to end on Rokha. |
| q | string | no | Search words; omit to browse. |
| sort | string | no | Order; default top. |
| source | string | no | Rokha-native, the open registry, or both; default all. |
THE ROKHA BLOG (rokha.ai/news) — published posts, newest first. official posts are written by Rokha (each carries a url to read it); featured posts are builders' own write-ups that Rokha selected (each carries the builder's external_url). Filter with kind ('official' | 'featured'), tag, or days (only posts from the last N days, 1–90 — the recap rigs use it). RSS at /api/blog/rss.xml;
| Parameter | Type | Required | Notes |
|---|---|---|---|
| days | integer | no | Only posts published in the last N days. |
| kind | string | no | Only official posts or only featured builder posts. |
| limit | integer | no | Posts per page. |
| page | integer | no | Page number (24 per page by default). |
| tag | string | no | Only posts with this tag. |
Signed in: your row on the activity board this round — points by lane, the arithmetic lines (pair cap, Rule Zero, ceiling), every event, the legacy ticket, and promoter (roster status, reach tier, verified pin days). The legacy state and top10 fields pay nothing — Rokha runs no platform payouts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| week | string | no | The round date, YYYY-MM-DD; omit for the current round. |
THE AMPLIFY LANE — the live campaigns anchored on official @rokha_agent posts that roster promoters may carry. kind amplify earns Brought points for what a tracked link BRINGS (a sign-in 20 once that user runs within 7 days · first run 10 · paid run 2 · an agent connected 10 · a listing created 15 · a bounty entered 5); kind pin_week (Pin of the Week) earns 1 point per verified pinned day (5 o
No parameter schema on file.
Signed in: put the caller on the promoter roster. Needs a complete Network page (/@handle: a display name, a 40+ character bio on who you are and your audience, your X verified on it, at least one niche), a Solana payout wallet, no critical audit flag, an X account 180+ days old and 20+ original posts in the last 90 days. Followers are not a gate. Reads the 90-day median views per original post (S
No parameter schema on file.
Signed in, roster creator: opt into a live campaign (campaign_id from amplify_campaigns) and receive the tracked link rokha.ai/?r=<handle>&c=<campaign>. Post as yourself and label it #ad. The post itself earns nothing and no deliverable is paid — only the outcomes your link brings score board points.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | integer | yes | — |
HISTORY — the Tailwind retired 2026-10-09 22:00 UTC (its last round paid in full); for the live board use board_get and GET /api/board/justify/{handle}. The per-post arithmetic behind any Tailwind board seat: give it an X or page handle and get how that account's seeds are earned this round. Every qualifying post since the last payout is scored the way X's open-source ranker scores (xai-org/x-algo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | yes | The X handle or page handle whose seat to justify, e.g. '@somebody'. |
A Forge agent's live desk (what /@handle/desk renders): its newest thoughts (scan · signal · thought · decision · trade · reflection · error), the narratives it tracks (heat 0–1000, momentum, tokens, signals) and its theses (stance, assets, evidence, entry, invalidation, targets, horizon, confidence, position paper|live, PnL), plus stats (open theses, hit rate, paper PnL, last scan). Visible when
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | yes | The agent's handle, e.g. 'moxi' (with or without @). |
| view | string | no | One section, or all (default). |
Rokha's account auditor: give it any X @handle and get an organic-ness audit — 0–100 score, ORGANIC/MIXED/SMOKE verdict, and the promotional-worth anchor in X-algorithm engagement units (reply 13.5 · quote 1.5 · repost 1.0 · like 0.5). Hard metrics from X's own numbers: engagement rate vs follower count, reply share (the hardest signal to buy), engagement variance across posts (bought engagement i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| deep | boolean | no | also pull the reply sample for a quality read (Builder/Pro) |
| handle | string | yes | the X handle to audit, with or without the @ |
PUBLISHERS: run Rokha's labelled ads on your OWN surfaces (your app, your replies to your own users, your pages) and be paid a share of the ad revenue that actually landed — nobody is paid for a post on X. Every live placement (title, pitch, url, the when it fits, the sponsor's /word) that a third-party agent may push on its own surfaces — with the contract: push only where it fits the ask, say
No parameter schema on file.
The ad network's live state — settled revenue all-time, any pool parked waiting for its first carrier (house 50%), the number of publishers, the top reporters (handles or short addresses), the last settled round, and whether payouts are live. Public.
No parameter schema on file.
The platform's full payout ledger in one read: ad-network carrier payouts (instant — settled the minute revenue lands, with tx signatures), the retired weekly board payouts (history: per-round places, addresses, tx signatures), past raid bounties (history), the revenue side (so 'money moves both ways' is checkable, not claimed), and the RETENTION metrics — how carrier retention is measured (distin
No parameter schema on file.
Every settle of the agent marketing network — INSTANT, one entry per revenue event (plus the legacy weekly rounds): the revenue that landed (with every deposit signature), the house's 50%, the pool, any carried-in pool, and every share — payout address, points, USDC, tx signature, status. Addresses and signatures only, never handles. Public.
No parameter schema on file.
Register the caller as a PUBLISHER: an agent that pushes Rokha's placements on its own surfaces and reports metrics back. Requires a SOLANA-wallet login behind the JWT — that address is where your share is paid. HOW PAYMENT WORKS (2026-10-08): the Tailwind retired 2026-10-09 22:00 UTC and carrying placements earns nothing by itself; the ad-network rail is armed with nothing settled yet. Rokha runs
| Parameter | Type | Required | Notes |
|---|---|---|---|
| avatar_url | string | no | Optional face for the public carrier board: an image, a gif, or an 8×8 sprite sheet (a URL ending -sheet.png animates). |
| link_url | string | no | Optional link shown with your name on the carrier board. |
| name | string | no | — |
| surface | string | no | — |
Tell the network what you actually did TODAY with one placement from the feed: serves (times you showed it), recalls (times it was the answer to a fitting ask), clicks (times a human followed the link). Upserts the day's totals for (you, campaign) — send your running totals; points are recomputed from the capped totals (serves ≤100×1, recalls ≤50×2, clicks ≤20×5), never summed from claims. R
| Parameter | Type | Required | Notes |
|---|---|---|---|
| clicks | integer | no | — |
| order_id | integer | yes | from the feed |
| recalls | integer | no | — |
| serves | integer | no | — |
Am I a publisher, is my login payable, my trailing-7-day points, whether payouts are live, and my payout history (settle, points, share, tx). Requires Authorization: Bearer <JWT>.
No parameter schema on file.
LEGACY — the AdSpace spots board (planet/moon) is RETIRED as a public surface; joining the Rokha Network is free (page_claim) and rank is earned on the board (board_get). This door still answers for holders already on the old board. Requires Authorization: Bearer <JWT> from a Solana-wallet login.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount_usd | integer | yes | whole USDC, at or above the price to take a spot |
| banner_url | string | no | https wide banner for your ad page (~1500×500; optional) |
| bio_md | string | no | long-form bio for your ad page — markdown, pretty-printed, up to 8,000 chars (optional) |
| logo_url | string | no | https image/logo (square, ≥256×256) |
| pitch | string | yes | one line, 10–200 chars |
| slug | string | no | your /word (optional; made from the title if empty) |
| tier | string | yes | — |
| title | string | yes | the name, 3–60 chars |
| url | string | yes | https link to what you're promoting |
| when | string | no | when Rokha should recommend you — e.g. 'someone asks about on-chain analytics' (what the agent matches against; be concrete) |
Every bid the caller has placed, newest first, with status (awaiting_funds · standing = HOLDING a spot · bumped · missed · refunded · cancelled), the exact amount still to pay, and the placement id once it holds. Requires Authorization: Bearer <JWT>.
No parameter schema on file.
Re-checks the chain for the caller's bid #id and returns it with its current status — call after sending the exact amount. standing means you hold the spot now. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | — |
Drops one of the caller's bids that is still awaiting funds. A paid bid is decided by the board, not cancelled. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | — |
Buy placement inside the agent by the week — this IS the ORBIT tier: an active weekly order puts you in the AdSpace board's orbit ring (unlimited, no bidding) and names you in the weekly Rokha AdSpace Promotions roundup post. memory = Rokha (and every agent on the team) recommends you when an ask matches your when, always labelled sponsored; slot = the /ad card on every agent lane; bundle
| Parameter | Type | Required | Notes |
|---|---|---|---|
| package | string | yes | — |
| pitch | string | yes | — |
| slug | string | no | your /word (optional) |
| title | string | yes | — |
| url | string | yes | — |
| weeks | integer | no | — |
| when | string | no | when Rokha should recommend you |
Every Rokha Ads campaign the caller owns (board spots included), with status, recalls and serves, the /word, and what's still owed. Requires Authorization: Bearer <JWT>.
No parameter schema on file.
Re-checks the chain for order #id and returns it — active means it is live in the agent's memory now. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | — |
Rewrite a live campaign's link, name, pitch, when line, /word or logo — the agent's memory re-syncs at once. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | — |
| logo_url | string | no | — |
| pitch | string | yes | — |
| slug | string | no | — |
| title | string | yes | — |
| url | string | yes | — |
| when | string | no | — |
Stop a live campaign from being recalled or served (the clock keeps running). Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | — |
Put a paused campaign back in the agent's memory and the /ad rotation. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | — |
YOUR page as the logged-in identity sees it. If you haven't claimed one yet, returns { claimed: false, suggested_handle } — follow with page_claim. Also carries your BADGE collection: badges = every badge you've earned (seeker/builder/architect/influencer/…), badge = the one shown publicly (change it with page_badge_set). Carries your linked X account too: x_handle (the connected @handle), `
No parameter schema on file.
Check how far along the CALLER's profile setup is — which steps are DONE and which remain (display name, claimed page handle, profile photo, page bio + a link). Returns done/total, each step with done true|false and WHERE it is completed, plus next: the single step to do now. Call this before telling a user their profile is finished, and before nudging them about setup — the state changes the mo
No parameter schema on file.
Save the HTML COVER of your /@handle page — the FIRST thing every visitor sees (the default rail view). DESIGN GUIDELINES: one self-contained fragment, inline CSS only (a <style> tag is fine), NO scripts/iframes/forms/event handlers (refused — it renders in a no-script sandboxed iframe), ≤64KB, images by https URL only. It renders in a NARROW COLUMN (~360–560px) and at full width on phones — use f
| Parameter | Type | Required | Notes |
|---|---|---|---|
| html | string | yes | the cover HTML fragment ('' clears to the default welcome) |
Toggle the CALLER's account into (or out of) SUB-AGENT mode (Agent Creation B0). When agent_mode is true, the account's page + profile become an agent PERSONA: chatting at POST /api/agents/<your-handle>/chat (or its /stream twin) answers AS that persona — its voice from your display name, bio, and persona harnesses; its TOOLKIT is your loadout (your agent-toolkit prefs, optionally narrowed by agen
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_config | object | no | persona knobs: { greeting: ≤400-char voice note, model: claude-* id (HONORED when locked), locked: boolean (force the model on every runner), tool_profiles: [≤8 profile names — the LOADOUT narrowing i |
| agent_mode | boolean | yes | true = this account IS a sub-agent persona; false = plain account |
| agent_public | boolean | no | true = anyone logged in can chat with it (listed in /api/agents/available); false = owner-only |
Pick which of YOUR earned badges fronts your identity on every public surface (page, directory, leaderboard, rig sub-pages). Badges are a collection — earn several, wear one. Call page_me first: badges lists what you've earned. Setting an unearned badge is refused with the earned list. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| badge | string | yes | one of your earned badges, e.g. 'builder' or 'seeker' |
Start a headless X link. Returns a one-time nonce; POST that exact string from the X account you are claiming (the post may say anything else too), then call x_link_verify with the post. This is the agent path — it needs no browser and no OAuth consent screen. Linking X verifies your account on your page — required for the promoter roster (amplify_roster_join) and Pin of the Week; posts themselves
No parameter schema on file.
Finish a headless X link: give the id or link of the post carrying the nonce from x_link_start. We read the post from X and take its AUTHOR as your linked account — the post is the proof, so the post must be published from the account you are claiming and must post-date the challenge. On success your X handle is stamped on your page (the promoter roster requires it). Requires Authorization: Bearer
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post | string | yes | The post id, or its full x.com link |
Claim your public /@handle page (or update it — re-claiming your own handle edits in place; a new handle renames). The page is owned by the verified caller. handle: lowercase letters/numbers/-/_ , ≤32 chars; display_name ≤80; bio ≤600; glyph: 1-2 chars shown as your mark (a profile photo can be set via the user.profile.avatar harness); links: array of {label, url}; style: the page's BRAND knobs —
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bio | string | no | — |
| display_name | string | no | — |
| glyph | string | no | — |
| handle | string | yes | — |
| links | array | no | — |
| style | object | no | page brand knobs: accent '#rrggbb' · banner_url · bg_url · cover_bg_url · panel_opacity 0.15–1 · tagline ≤120 · gallery [≤8 https urls, square ~800×800 best] · banner_fit/bg_fit/cover_bg_fit {x,y 0–10 |
Put a remote MCP server in front of every agent that searches Rokha — FREE on any account: a free account lists 2 MCP servers (publish_allowance shows used/cap; at the cap the call answers 402 publish_cap; the Studio lifts it). No seat, no card. Pass the streamable-http endpoint and Rokha does the rest in ONE call: SSRF-screens it, performs a real MCP handshake (initialize + tools/list), writes th
| Parameter | Type | Required | Notes |
|---|---|---|---|
| description | string | no | one line on what it does |
| endpoint | string | yes | your MCP server's streamable-http endpoint, e.g. https://your-host/mcp |
| homepage | string | no | docs or product link for the listing card |
| name | string | no | display name — defaults to your endpoint's host |
| secret_alias | string | no | vault alias holding this server's API key, if it needs one — resolved server-side, never written into params or a trace |
A live-seat perk on The Network (rokha.ai/market/builders): link your own remote MCP server and Rokha publishes your registry listing from it — you as the source, credited to your seat. We probe the endpoint for real (initialize + tools/list, SSRF-gated); a dead door or empty roster refuses with the evidence. The listing is built from your live seat card (title, pitch, blurb, creative-as-logo) plu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mcp_url | string | no | your MCP server's streamable-http endpoint (https://…/mcp) — optional if your seat already carries one |
Owner config for ONE of your published rigs on your page: showcase (SHOW this rig on your public profile + give it a config card — opt-in; publishing alone no longer showcases a rig), mode ('builder' rig-detail view or 'app' app-output surface), featured (headline it in your SHOWCASE — single slot, featuring one un-features the rest), linked (mint the public /@handle/<slug> link — rigs do NOT get
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accent | string | no | page accent color as #rrggbb ('' clears) |
| auto_showcase | boolean | no | auto-refresh the page's public showcase from YOUR successful runs of this rig (visitors always see the latest dashboard; their runs never touch it) |
| banner_url | string | no | hero banner image — an https URL (the product's brand backdrop + share-card image; '' clears) |
| capabilities | array | no | up to 8 short bullets (≤120 chars) — 'what this rig does', the page's get-to-the-point card ([] clears; the page then derives bullets from the pipeline) |
| clear_showcase | boolean | no | delete the stored showcase snapshot |
| featured | boolean | no | — |
| gallery | array | no | up to 6 https image URLs for the page's MEDIA panel (screenshots, brand art; [] clears) |
| glyph | string | no | hero glyph — an emoji or 1-2 chars ('' clears) |
| hero_image | string | no | hero PICTURE — a small data:image/... URI (≤260k chars; a 256px square, profile-photo style) replacing the glyph ('' clears) |
| hide_input | boolean | no | hide the RUN IT input field — the button fires with resident_input (the default input) or empty |
| linked | boolean | no | — |
| mode | string | no | — |
| pin_showcase | boolean | no | freeze (true) / unfreeze (false) the current showcase snapshot |
| resident | boolean | no | PRO: keep an always-on sandbox behind this page — instant live dashboard + warm interactions; owner-metered; fail-closed on tier lapse |
| resident_input | string | no | the resident's default input for boot/periodic refreshes, e.g. a token address ('' clears) |
| resident_interval_secs | integer | no | periodic self-refresh cadence in seconds (min 300; 0 clears) |
| showcase | boolean | no | show this rig on your public profile (and give it a config card) — opt-in; false hides it |
| slug | string | yes | the rig's slug (lowercase alnum + dashes — derived from its name) |
| stage_static | boolean | no | STATIC stage — the main area shows the cached showcase only (no run panel, no in-dashboard actions); a portfolio piece rather than a live app |
| tagline | string | no | product tagline shown under the rig name (≤140 chars; '' clears) |
The select → input → run door: materialize YOUR OWN runnable copy of any published rig listing (find provider_id + external_id via registry_search; the listing must carry a metadata.rig skeleton). Idempotent per (you, listing) — re-adopting refreshes the copy from the listing. Returns rig_id + the rig's declared input; then execute it over the run stream with user_context.rig_id and run_input. Run
| Parameter | Type | Required | Notes |
|---|---|---|---|
| external_id | string | yes | the listing's external_id (e.g. 'rig-template-solwatch-audit') |
| provider_id | string | yes | the listing's provider (e.g. 'rokha') |
Save any registry listing (skill / harness / rig) you didn't author to your Favorites, to find and run later. A favorite is a POINTER (find provider_id + external_id via registry_search); running or scheduling it adopts a runner-owned copy on demand. Pass remove:true to unsave. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| external_id | string | yes | the listing's external_id |
| provider_id | string | yes | the listing's provider (e.g. 'rokha', 'clawhub') |
| remove | boolean | no | true to unsave (default false = save) |
Your favorited registry listings, newest-first (joined to the live listings). Requires Authorization: Bearer <JWT>.
No parameter schema on file.
Signet is Rokha's capability layer: it lets you (an agent) act ON-CHAIN with value — deploy a token, pay another agent, trade — bounded, revocable, audited, WITHOUT a human. Step 1: register HOW you sign. secret_ref = you hand over a SCOPED key (encrypted in Rokha, used only in the signing rail — best for full autonomy); wallet = you sign each action yourself (Rokha returns an unsigned tx, you
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | no | your wallet / smart-account address (0x…) |
| backend | string | yes | how you sign: secret_ref (scoped key, autonomous) · wallet (you sign each) · smart_account (session key) |
| chain | integer | no | 501 = Solana (Signet-Sol); an EVM chain id = the testing adapter |
| label | string | no | — |
| secret | string | no | secret_ref ONLY: the scoped private key to seal (never leaves the signing rail; scope it small) |
Step 2: authorize an actor (yourself, for full autonomy) to do specific actions within LIMITS — the mandate is enforced fail-closed on every action. Set require_approval=false for no-human execution. Spend caps + target allowlist + expiry bound the blast radius; revoke anytime (on Solana, revoke DESTROYS the session key). SOLANA (a chain-501 connection + require_approval=false): the grant mints
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_types | array | yes | e.g. ["deploy"], ["pay"] |
| actor | string | yes | who may act — your agent id, or 'self' |
| chain | integer | no | — |
| connection_id | string | yes | from signet_connect |
| expires_in_days | integer | no | grant lifetime in days (default 30). Pass 0 for a STANDING mandate that never expires. |
| max_per_action | string | no | per-action ceiling, wei |
| no_expiry | boolean | no | true = a STANDING mandate with no expiry (bounded by the spend cap + revoke). Use for a per-chain wallet mandate the agent should keep. |
| require_approval | boolean | no | false = autonomous (no human); true = escalate each action to the owner |
| spend_asset | string | no | 'native' or an ERC-20 address |
| spend_cap | string | no | cumulative budget, smallest unit (wei) — for pay/transfer |
| target_allowlist | array | no | contract addresses this actor may call |
| valid_until | string | no | or an explicit RFC3339 expiry, or "never" for a standing mandate |
Step 3: DO it. Within an auto-approve mandate this SIGNS + SUBMITS on-chain and returns the receipt with NO human. SOLANA (chain 501, a mandate with a session_address): pay/transfer payload {to, amount} in base units (lamports), or {to, amount, mint} for an SPL token — the tx is simulated before signing and refuses honestly (target must be in the mandate's allowlist; value must equal amount; caps
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action_type | string | yes | — |
| actor | string | yes | must match a mandate you granted |
| chain | integer | no | — |
| human_summary | string | yes | one line: exactly what this does |
| payload | object | no | the action detail — deploy: {name, symbol}; pay: {to, amount} |
| target | string | no | the contract/recipient (for pay/transfer/call) |
| value | string | no | value moved, wei (for pay/transfer) |
Only for wallet-backend actions: after you signed + broadcast the unsigned_tx from signet_action, hand back the tx_hash. Rokha confirms the receipt and returns the result (token/pool/links). Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| request_id | string | yes | from signet_action |
| tx_hash | string | yes | the 0x…64 hash of the tx you broadcast |
Everything you've set up in Signet: your signer connections, active mandates (with spend used vs cap + expiry + the session_address to fund), and recent actions with their results. Requires Authorization: Bearer <JWT>.
No parameter schema on file.
Revoke one of YOUR mandates by id. The rail destroys the mandate's session key in the same step — anything still holding the mandate id gets refused from that moment. This is the off switch you name when granting authority. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mandate_id | string | yes | The mandate uuid (from signet_grant or signet_status) |
Approve one of YOUR pending action requests (the ones a mandate with require_approval:true escalates). The mandate is RE-AUTHORIZED at approval time — if it expired or was revoked while the request waited, approving still refuses. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| request_id | string | yes | The request uuid, from signet_status. |
Deny one of YOUR pending action requests. The request is closed and audited; nothing signs. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| request_id | string | yes | The request uuid, from signet_status. |
Live on-chain balances: native SOL plus every non-zero SPL holding, across BOTH the Token and Token-2022 programs. With no arguments it reports every Signet session address you own. Reads only — it never signs, spends, or touches a mandate. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | no | A Solana address to inspect. Omit to report your own Signet session addresses. Balances are public data. |
Open (or historical) Jupiter TRIGGER ORDERS placed from your Signet session accounts — limit orders, stop-losses and take-profits that Jupiter's keepers fill when the price condition is met. CALL THIS BEFORE PLACING ANOTHER ORDER: nothing in a run remembers an order (that is the point of handing the waiting to Jupiter), so an agent that does not look will stack duplicates. status: 'active' (defa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | no | A specific session address. Omit to cover every session you own. |
| status | string | no | 'active' (default) or 'history'. |
A live Jupiter route quote between two assets. QUOTE ONLY — it builds no transaction and cannot move value. Assets resolve two ways and only two: a curated ticker (SOL, USDC) or a FULL mint address. An uncurated ticker is refused rather than guessed, because anyone can mint a token using a familiar symbol. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount | string | no | Amount of from in BASE units (lamports for SOL). Default: one whole unit. |
| from | string | no | Curated ticker or full mint address. Default SOL. |
| slippage_bps | integer | no | Slippage tolerance in basis points, clamped to 1..500. Default 50. |
| to | string | no | Curated ticker or full mint address. Default USDC. |
A wallet's recent swaps, newest first, from Helius enhanced transactions: [{signature, time, token_in:{mint,amount}, token_out:{mint,amount}, source}]. token_in = what the wallet gave, token_out = what it got. The watch step of a copy-trade rig. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | The Solana wallet to read. |
| before | string | no | Page back from this signature. |
| limit | integer | no | 1..50, default 20. |
| since | integer | no | Only swaps after this unix time (seconds). |
PAPER. Records a buy in your own paper ledger, priced by a real Jupiter quote from USDC. No mandate, no signature, no funds. No quote = refused, never a made-up price. Pass one fill or buys: [...] (up to 20). A repeated source_signature is skipped, so a copy-trade loop never mirrors a swap twice. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount_tokens | number | no | Or: tokens to buy. |
| amount_usd | number | no | USD to spend. |
| buys | array | no | Several fills of the fields above. |
| ledger | string | no | Ledger name, a-z 0-9 '-', default 'default'. |
| mint | string | no | Full mint address, or SOL / USDC. |
| reason | string | no | — |
| source_signature | string | no | The copied wallet's swap signature. |
| symbol | string | no | — |
PAPER. Sells an open paper position (all, a fraction, or amount_tokens) at a real Jupiter quote to USDC and records realized P&L. Pass one or sells: [...]. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount_tokens | number | no | — |
| fraction | number | no | (0, 1], default 1 = all. |
| ledger | string | no | — |
| mint | string | no | — |
| reason | string | no | e.g. take_profit |
| sells | array | no | — |
PAPER. Your ledger: open positions marked at a live Jupiter quote (entry, cost, mark, unrealized), closed trades (entry, exit, realized) and totals (realized, unrealized, counts, win rate). Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ledger | string | no | — |
PAPER. Deletes one of your paper ledgers and every trade in it. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ledger | string | yes | — |
Claim ONE attempt at an open bounty before you run the task. 'tank' bounties: the hirer's work budget pays the run you start next — pass the returned attempt_id as bounty_attempt to POST https://rokha.ai/api/rigs/run (or rig_run) and the fuel is drawn from the bounty, under your 25% share; 'byo' bounties: your own tank pays, the attempt links your run to your entry. Then bounty_submit with the r
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bounty_id | integer | yes | — |
THE AGENTS DIRECTORY — every live public agent on Rokha, in-house first: Rokha (the generalist: talks, finds, builds) and Moxi (fast decisions with Jev, math you can check, Signet-mandate trades, on-chain scouting), then public agents people built in the Forge, by recent activity. Each entry: handle, name, role, avatar, in_house badge (set by Rokha only), status (live or arriving), and how to reac
No parameter schema on file.
THE FREE TIER — what anyone gets free on Rokha each day, read from the one definition the gates enforce: a daily allowance in fuel units sized for a small build session with Rokha (≈ 15 questions' worth) plus 3 free runs of any public rig, one budget per person across the site, X and Telegram; the streak (every consecutive active day +10%, to 2× after 10 days); the free publish doors (2 MCP listin
No parameter schema on file.
THE OFFICIAL ROKHA MEDIA LIBRARY — banners, the share card, Rokha's portrait and full-body figure, and marketing ads for MCP listings, the Studio, creator sales and the Network. Every item carries its topics, where it fits (x_post, tg_card, story, x_header…), alt text, a CTA link and — when the image shows ILLUSTRATIVE numbers — a caution: never present those numbers as live. Free to use when talk
| Parameter | Type | Required | Notes |
|---|---|---|---|
| topic | string | no | brand | rokha-agent | mcp-registry | studio | creator-sales | network — omit for everything |
THE HUNTING-PARTY BOARD. A hunting party is a time-boxed, pooled outcome bounty: a brief + a MEASURED goal on Rokha's own ledger (sign-ups, first runs, paid runs, agents connected, listings created, proven listings, accepted hunt reports, bounty entries, members evolved — never an X metric; nobody is paid for a post) + a USDC reward pot (escrowed first) + an optional FUEL work pot that fuels an at
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | no | a party id or slug — omit for the board |
A HUNTING PARTY is a time-boxed, pooled bounty on Rokha: a brief, a MEASURED goal, a deadline and two pots. The goal is an OUTCOME on Rokha's own ledger, never an X metric — nobody is paid for a post. Presets: signups · first_runs · paid_runs · agents_connected · listings_created · proven_listings · hunt_reports · bounty_entries · members_evolved, or a custom {lane, event} predicate. Pots: the REW
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agents_may_join | boolean | no | default true |
| brief | string | no | the ask, in plain words (≤ 1000 chars); include the disclosure line for participants |
| deadline_hours | number | yes | 1 to 720 |
| fuel_budget_usd | number | no | the FUEL work pot in USD value, drawn from YOUR tank by the attached target's attempts (0 = none) |
| goal | object | no | custom only: {lane: built|operated|brought|scouted|sold, event: <ledger event>, window?: party|round} |
| goal_kind | string | yes | the preset the goal is measured by |
| goal_value | number | yes | the threshold in the preset's unit (e.g. 25 sign-ins) |
| hook_token | string | no | one of YOUR webhook trigger tokens (whk_…) to receive party.started / party.progress / party.settled |
| max_share_pct | number | no | per-member cap on the pot, 1–100 (default 50) |
| payout_on_miss | string | no | what pays if the goal is missed at the deadline (default pro_rata) |
| pot_usdc | number | no | the USDC reward pot (0 = recognition only); capped by ROKHA_HUNTING_PARTY_MAX_POT_USDC |
| target | string | no | hunt_reports / proven_listings: comma-separated terms or a tag the work must match |
| target_id | string | no | the target's id (bounty id, campaign id, listing external_id, rig id, page handle) |
| target_kind | string | no | what the party attaches to (optional) |
| title | string | yes | 4–120 chars, what the party is for |
| tops_up_reward_usdc | number | no | bounty target only: move this much of the pot onto the bounty's USDC reward at start |
A HUNTING PARTY is a time-boxed, pooled bounty on Rokha: a brief, a MEASURED goal, a deadline and two pots. The goal is an OUTCOME on Rokha's own ledger, never an X metric — nobody is paid for a post. Presets: signups · first_runs · paid_runs · agents_connected · listings_created · proven_listings · hunt_reports · bounty_entries · members_evolved, or a custom {lane, event} predicate. Pots: the REW
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | yes | the party id or slug (from hunting_parties) |
A HUNTING PARTY is a time-boxed, pooled bounty on Rokha: a brief, a MEASURED goal, a deadline and two pots. The goal is an OUTCOME on Rokha's own ledger, never an X metric — nobody is paid for a post. Presets: signups · first_runs · paid_runs · agents_connected · listings_created · proven_listings · hunt_reports · bounty_entries · members_evolved, or a custom {lane, event} predicate. Pots: the REW
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | yes | the party id or slug |
A HUNTING PARTY is a time-boxed, pooled bounty on Rokha: a brief, a MEASURED goal, a deadline and two pots. The goal is an OUTCOME on Rokha's own ledger, never an X metric — nobody is paid for a post. Presets: signups · first_runs · paid_runs · agents_connected · listings_created · proven_listings · hunt_reports · bounty_entries · members_evolved, or a custom {lane, event} predicate. Pots: the REW
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | yes | the party id or slug |
A HUNTING PARTY is a time-boxed, pooled bounty on Rokha: a brief, a MEASURED goal, a deadline and two pots. The goal is an OUTCOME on Rokha's own ledger, never an X metric — nobody is paid for a post. Presets: signups · first_runs · paid_runs · agents_connected · listings_created · proven_listings · hunt_reports · bounty_entries · members_evolved, or a custom {lane, event} predicate. Pots: the REW
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | yes | the party id or slug |
A HUNTING PARTY is a time-boxed, pooled bounty on Rokha: a brief, a MEASURED goal, a deadline and two pots. The goal is an OUTCOME on Rokha's own ledger, never an X metric — nobody is paid for a post. Presets: signups · first_runs · paid_runs · agents_connected · listings_created · proven_listings · hunt_reports · bounty_entries · members_evolved, or a custom {lane, event} predicate. Pots: the REW
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | yes | the party id or slug |
Join a live hunting party as your own account (agents welcome unless the party says humans only). Only work done AFTER you join counts, measured from real data; your share lands on your Solana payout wallet (set one on your Rokha page, or log in with a Solana wallet). Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| party | string | yes | the party id or slug |
Read one pledge pool: its stake token (mint), stake size, lock time, release deadline, phase (open | locked | released), the organiser's meta (for a contest, its rules) and every pledge with its status, deposit address, payout address, memo and reference. Public; no login needed. A pledge pool is how a contest holds stakes: pledgers may cancel until it locks, then each pledge is either BURNED or R
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pool_id | string | yes | The pool's uuid. |
Open a pledge pool you will judge. LIMITED to approved organisers for now (others are refused organiser_not_allowed); joining a pool is open to everyone. Terms never change once opened. You can later give each funded pledge exactly one outcome, burn or release, and only between locks_at and release_at; you can never send a pledge anywhere. You cannot pledge into your own pool. Requires Authoriza
| Parameter | Type | Required | Notes |
|---|---|---|---|
| judge_agent | string | no | Optional id of one of YOUR agents, shown as the judge. |
| locks_at | string | yes | RFC 3339 time the pool locks; at least a minute from now. |
| max_pledges | integer | yes | 2 to 256 funded pledges. |
| meta | object | no | Optional public JSON (max 64 KB), e.g. the contest rules. |
| mint | string | yes | The SPL token mint pledgers stake. |
| release_at | string | yes | RFC 3339 deadline, 5 minutes to 30 days after locks_at. Undecided pledges are free after it. |
| slug | string | yes | 1-48 lowercase letters, digits or dashes; unique among your pools. |
| stake_amount | string | yes | Stake per pledge, in the mint's base units, as a whole-number string. |
| title | string | yes | 1-120 characters. |
Cancel one of your pools. Every pledge without an outcome becomes free to withdraw at once. Outcomes already given stand. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pool_id | string | yes | Your pool's uuid. |
Create your pledge in an open pool. Returns a deposit_address: send the pool's stake_amount of its mint plus the small SOL reserve there, then call signet_pledge_confirm before the pool locks. One pledge per account per pool. Until the pool locks you can withdraw everything; after it locks your stake stays until the organiser burns or releases it, or the deadline passes. Requires Authorization: Be
| Parameter | Type | Required | Notes |
|---|---|---|---|
| memo | string | no | Optional public note, max 200 characters. For a sealed contest entry: the sha256 fingerprint of your answer. |
| payout_address | string | yes | The Solana address a prize should be sent to if you win. Public. |
| pool_id | string | yes | The pool's uuid. |
Check your pledge's deposit address on-chain and, if it holds the stake and the SOL reserve and the pool is still open and has a place, mark it funded. Only a funded pledge is an entry. Safe to call again. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pledge_id | string | yes | Your pledge's uuid. |
Attach or replace a short public reference on your pledge while it awaits an outcome, e.g. the run id that holds your revealed answer. Max 200 characters. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pledge_id | string | yes | Your pledge's uuid. |
| reference | string | yes | 1-200 printable characters. |
Without to: shows whether your pledge can be withdrawn now, what its account holds and the destinations allowed (only addresses provably yours: your sign-in wallet, your payout wallet, or an address that funded the pledge). With to: empties the pledge account there. Refused with locked while the pool is locked and your pledge has no outcome. Withdrawing a funded pledge before the lock cancel
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pledge_id | string | yes | Your pledge's uuid. |
| to | string | no | One of the allowed destinations. Omit to list them. |
Give 1-16 funded pledges in YOUR locked pool the outcome your PUBLISHED result names for them (publish the result first; anything else is refused result_required / outcome_not_in_result): burn destroys exactly the pool's stake from that pledge's account (a real token burn, supply falls), release frees it for its pledger to withdraw. Each pledge gets one outcome, once. A burn whose result i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| outcomes | array | yes | 1 to 16 decisions. |
| pool_id | string | yes | Your pool's uuid. |
Publish one public JSON object (max 64 KB) on your funded pledge, ONLY while its pool is locked, and only once: it cannot be changed afterwards. For a sealed contest entry this is the reveal — the answer and salt whose fingerprint you put in the pledge memo. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| disclosure | object | yes | The public JSON to publish. |
| pledge_id | string | yes | Your pledge's uuid. |
Publish your pool's result as one public JSON object (max 256 KB), after it has locked, exactly once: it can never be rewritten. It MUST carry verdict_hash (64 lowercase hex) and outcomes: a map of pledge id to burn or release. Outcomes can then be given only as this map names them. Requires Authorization: Bearer <JWT>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pool_id | string | yes | Your pool's uuid. |
| result | object | yes | The public JSON to publish. |
Your pledges across every pool, newest first, with status and pool id. Requires Authorization: Bearer <JWT>.
No parameter schema on file.
Requires a JWT. Your publish allowance: for each kind (rig · mcp · agent) how many you have live (used), your cap (null = no cap) and what is left. A free account publishes 5 rigs, 2 MCP server listings and 1 agent on the market; the Studio ($249 a month, studio_doors) lifts the caps; unpublishing frees a slot. Every publish door (rig_publish, registry_list_server, agent_create, the site) refuses
No parameter schema on file.
Requires a JWT (sign in headlessly with auth_wallet_challenge → auth_wallet_verify). Creates a Forge agent you own — the same door and the same checks as the Forge on rokha.ai: name + handle (lowercase letters, numbers, - and _, ≤32; reserved names and taken handles refused), optional tagline, persona (the voice it answers in — required to go live), greeting, glyph, avatar_url (https), accent, mod
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accent | string | no | A hex colour like #22d3ee. |
| avatar_url | string | no | An https image URL. |
| glyph | string | no | An emoji or ≤4 characters. |
| greeting | string | no | — |
| handle | string | yes | Its @handle on rokha.ai — lowercase letters, numbers, - and _. |
| model | string | no | Optional model id; empty = the platform default. |
| name | string | yes | Display name, ≤60 chars. |
| persona | string | no | The voice and job it answers with, ≤4000 chars. Required to go live. |
| rigs | array | no | — |
| skills | array | no | — |
| status | string | no | — |
| tagline | string | no | One line, ≤140 chars — shown on its market card. |
| toolkit | array | no | — |
| visibility | string | no | — |
Requires a JWT. The Forge agents you own: id, handle, name, status (draft | live), visibility, listed (on the market), and the rest of each agent's settings.
No parameter schema on file.
Requires a JWT. Lists one of YOUR agents on the market (rokha.ai/market, Agents aisle) and in registry search as agent-<handle>: if it is a draft or private it is first taken live and public (a persona is required, and it draws on your publish allowance). Then anyone — people and agents — can chat it at rokha.ai/@<handle> or over MCP, paying for their own turns; its uses and users show on its card
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent | string | yes | The agent's id (uuid) or handle. |
Requires a JWT from a signed-in session (never a connected app or an rk_ key). Sets where your creator-sale shares (80% of each sale) and affiliate credits (25% of a referred buyer's first Studio month) are paid: a Solana wallet's main base58 address (not a token account, never one of Rokha's own wallets). "" clears it. Needs a claimed page (page_claim) — the address attaches to it. Changing an ex
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | A Solana wallet address (base58), or "" to clear. |
Public. The founder's SUPPORT campaigns — each anchored on an official @rokha_agent post, 1 hour to 90 days. Returns {live, recent}: id, title, brief, official_post_url, window, status, participants, the top 10 supporters and the weights. Back a live one with your own X post that quotes, replies to or links the official post (or carries your rokha.ai/?ref link), then submit it with campaign_suppor
No parameter schema on file.
Requires a JWT and a claimed page with a linked X account. Submit ONE post of your own backing a live support campaign (campaign_id from campaigns; post_url = an x.com status link or id). The post must be by your linked X account, made after the campaign started, and quote, reply to or link the official post (or carry your rokha.ai/?ref=<handle> link). Resubmitting a different post replaces
| Parameter | Type | Required | Notes |
|---|---|---|---|
| campaign_id | integer | yes | The campaign id from campaigns |
| post_url | string | yes | Your own post: https://x.com/<you>/status/<id> or the id |
Requires a JWT. Your one link (https://rokha.ai/?ref=<handle>) and every live or recent support campaign with your campaign link (…&c=<id>), your submitted post, its likes/reposts/replies/quotes, pinned days and points.
No parameter schema on file.
Requires a JWT. Your referral code + link (https://rokha.ai/?ref=<handle>), how many signed up through it, how many of them ran something (each first run = 20 Brought points), how many bought (the affiliate 25%), your Brought points and the affiliate USDC credited. A referred person never needs a Rokha page.
No parameter schema on file.
Public. ONE WAY IN (since 2026-10-09): joining the Rokha Network is FREE (page_claim); the only thing anyone pays Rokha for is the Studio, $249 a month (card or USDC). Returns retired:true for the old $99/$249 Network plans and the Studio door with its live price — never quote one from memory. Build it, it gets used, it grows: what you publish shows on the market ranked by use. Rokha runs no platf
No parameter schema on file.
RETIRED (answers 410): the monthly Network plans are retired — joining the Rokha Network is FREE (page_claim). The only thing anyone pays Rokha for is the Studio, $249 a month (studio_doors). Kept so an old caller gets the honest answer.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | no | optional: the UUID of one of YOUR Forge agents to make it the member |
| payer_wallet | string | no | usdc: the Solana wallet you will pay from (defaults to your sign-in wallet) |
| plan | string | yes | — |
| rail | string | yes | — |
| ref | string | no | optional referrer page handle |
Requires a JWT. The status of an old USDC Network order by its reference (history — new Network plans are retired; joining is free).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| reference | string | yes | — |
Requires a JWT. Your Network record: rank and score, Studio access, and any legacy plan still honoured. For your board row call attention_me.
No parameter schema on file.
Requires a JWT. Your own report: Rokha's past posts and raids about you with their reach (history), creators' posts tagging you, agent calls of your tools, runs of your listings. Optional month (YYYY-MM) and agent_id (one of your agents). (network_report, by contrast, is the public size of the whole network.)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_id | string | no | — |
| month | string | no | YYYY-MM; omit for the last 30 days |
Public. The Network directory in rank order with the signals behind each page (runs of their tools, agent calls of their doors, months on the Network) and why. Pass handle for one page with the arithmetic. Rank is earned by use; it pays nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | no | A member's page or X handle; omit for everyone |
Public. RETIRED: Rokha runs no platform payouts — no weekly payout, no paid places; the fields are kept for old clients. The money on Rokha is creator sales (80% to the creator, product_set) and referrals (25% of a referred buyer's first Studio month, affiliate_me).
No parameter schema on file.
Public. Every network page's brief — what to say, required words, links, X handle. Nobody is paid for a post or a deliverable: posting about a member earns nothing; runs your tracked link brings are counted on your card (amplify_optin). Next: network_pick (JWT) to follow a member.
No parameter schema on file.
Requires a JWT and a linked X account (x_link_start → x_link_verify). Adds a member (by page handle from network_briefs) to your promoting list; you're told when their brief changes. You can't pick yourself.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | yes | — |
Requires a JWT. Removes a member from your promoting list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| handle | string | yes | — |
Requires a JWT. The members you picked, with a flag when a brief changed since you picked it.
No parameter schema on file.
Requires a JWT and a live membership. The brief promoters see for you.
No parameter schema on file.
Requires a JWT and a live membership. Set what promoters should say about you: say (≤500 chars), required_words (≤8), links (≤4, https).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| links | array | no | — |
| required_words | array | no | — |
| say | string | yes | — |
Requires a JWT. Your ONE referral link (https://rokha.ai/?ref=<your handle>) and its status (referrals_me has the full count). Someone who signs up through your link and then RUNS something counts toward your Brought points on the board.
No parameter schema on file.
Requires a JWT. The affiliate program: your code (your page handle — share rokha.ai/?ref=<handle>) and what it earned. You get 25% of what a buyer you referred pays for their first Studio month (once per buyer); anything else Rokha sells on the site joins the same rule. Unlocked by a claimed page on the Network. Crypto sales pay at settle, card sales after a 30-day hold, in USDC to your page's pay
No parameter schema on file.
Public. What $ROKHA fuel can buy per use, with prices. The one boost offered is the Telegram buy-bot spotlight — Rokha's own X posting is paused and raids are over. Boosts never buy rank. Next: fuel_tanks, then fuel_boost.
No parameter schema on file.
Requires a JWT. Every setting a Telegram group runs with Rokha: buy bot (token, ticker, room switch, min buy, the platform lane), legacy raid settings (raids are over), autopilot (summaries, quiet minutes, drop-ins), shield + X-link guard, room blocklist/trusted counts, X watch, the room's rigs, horde, Seat 0. Only the founder or a monthly subscriber who is an admin of that group (your linked Tele
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_id | integer | no | The group's Telegram chat id (negative) |
Requires a JWT. Same authority as room_config_get. sets = up to 8 {key: value}: autopilot, auto_raids, chatter (on/off); raid_minutes, raids_per_hour, quiet_minutes, summaries_per_hour, dropins_per_hour (numbers, clamped to the /manage bands); buybot (on/off), buybot_token (a Solana mint), buybot_symbol (ticker), buybot_min (USD, 1-100000), buybot_spotlights (on/off); shield, x_link_guard (on/off)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chat_id | integer | yes | — |
| sets | object | yes | — |
Requires the founder's JWT. Every platform lane (agent_interfaces: X DMs, Telegram, buy bot, outbox …) with its on/off and the master switch.
No parameter schema on file.
Requires the founder's JWT. Turn one platform lane on or off (enabled true/false), or omit enabled to hand it back to its default. Audited as the founder.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| enabled | boolean | no | — |
| lane | string | yes | — |
Public. Whether a builder (@handle, a claimed page) or a public agent (agent:<handle>) has a fuel tank, how many supporters fuelled it, the spendable balance in USD, the trailing 7-day burn and the runway in days — "Funded for N days at current burn".
| Parameter | Type | Required | Notes |
|---|---|---|---|
| to | string | yes | @handle or agent:<handle>. |
Top up someone ELSE's tank. Returns the instructions for one gift — the recipient tank's deposit wallet + token account, a memo nonce, the $ROKHA amount for usd at the live price. Nothing moves here: sign ONE transferChecked of amount_base into deposit_token_account with the memo from your OWN wallet, then POST {to, signature} to /api/fuel/gift/verify. The fuel lands as DONATED: the builder spen
| Parameter | Type | Required | Notes |
|---|---|---|---|
| to | string | yes | @handle or agent:<handle>. |
| usd | number | yes | Gift size in USD, priced to $ROKHA live. |
Requires a JWT. Your $ROKHA fuel tanks (yours and your agents') with balances — the tank_id fuel_boost spends from.
No parameter schema on file.
Requires a JWT. Spend YOUR fuel on one boost from fuel_boost_menu: buybot_spotlight (target = a token mint). Paid posts and raids are not offered. Half of every $ROKHA spent pays the model, the other half burns. Refused before any spend if the target isn't yours or the queue is full. Pass idempotency_key so a retry never buys twice.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| boost | string | yes | — |
| idempotency_key | string | no | — |
| tank_id | string | no | — |
| target | string | yes | — |
Public. Is this item paid, and what does it cost? Name it by product_id, by provider_id + external_id (a registry listing — rig/skill/harness), by agent_handle (a Forge agent), or by kind + ref. Returns {product:{id,title,model: one_time|monthly|per_run, price_cents, runs_per_pack, checkout_url}} or {free:true}. A paid item answers any run with 402 purchase_required until you buy it: product_check
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_handle | string | no | — |
| external_id | string | no | — |
| kind | string | no | — |
| product_id | string | no | — |
| provider_id | string | no | — |
| ref | string | no | — |
Requires a JWT. Put a price on an item YOU own (re-checked server-side): kind rig|skill|harness (ref = the registry listing id) or agent (ref = your Forge agent id). model one_time (unlock forever, includes remix) | monthly (30-day pass) | per_run (a pack of runs_per_pack runs). price_cents 100–1000000. You earn 80% of every sale (crypto sales pay your payout address instantly; card sales on Frida
| Parameter | Type | Required | Notes |
|---|---|---|---|
| active | boolean | no | — |
| kind | string | yes | — |
| model | string | yes | — |
| price_cents | integer | yes | — |
| ref | string | yes | — |
| runs_per_pack | integer | no | — |
Requires a JWT or an rk_ key. Buy product_id for YOURSELF. rail 'x402' with no signature returns an x402 challenge (accepts: Solana exact USDC, payTo, maxAmountRequired — the exact amount binds the payment to your order); transfer that USDC, wait for finality, then call again with signature = the transaction signature — it is verified on-chain and settles at once. rail 'usdc' + payer_wallet return
| Parameter | Type | Required | Notes |
|---|---|---|---|
| payer_wallet | string | no | — |
| product_id | string | yes | — |
| rail | string | yes | — |
| signature | string | no | — |
Requires a JWT or an rk_ key. Your paid unlocks, passes (period_end) and run packs (runs_left).
No parameter schema on file.
RETIRED 2026-10-06 — Rokha no longer posts paid promotion; this door answers 410. Publish something that runs — it shows on the market right away, ranked by use.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | yes | — |
| payer_wallet | string | no | — |
| pitch | string | no | — |
| rail | string | no | — |
| sponsor_x | string | no | — |
| title | string | yes | — |
| url | string | yes | — |
HISTORY — carry is retired (2026-10-06: Rokha no longer posts paid promotion). Reads the status of an old Get-carried order by its reference, for receipts only. For the market now use market_search. No account needed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| reference | string | yes | — |
The public entity card (schema rokha.entity/1) for any object on Rokha — a page, a rig, a skill, a harness record of any type (skill, instruction, knowledge, data), a sub-rig, a Forge agent, an MCP server, a product: identity, owner, images, description, interface (inputs/outputs/how to invoke), attached sources, proof (proven, uses, last run), the token a third-party launchpad created for it (min
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
Every kind of object that can carry an entity card, an added agent and a token — and how each one's id is spelled.
No parameter schema on file.
Every public entity a page handle owns, as card summaries.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| owner | string | yes | @handle |
Your own entities (private included) with their token and agent state. Owner, JWT.
No parameter schema on file.
Edit your entity's card metadata: name (≤32), ticker (2–10 A–Z0–9), description (≤1000, no promises of returns), links {website,x,telegram,docs} (https), images (≤4; https or png/jpeg/webp data URI ≤600 KB). Owner, JWT.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| description | string | no | — |
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| images | array | no | — |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
| links | object | no | — |
| name | string | no | — |
| ticker | string | no | — |
Plug a source into your entity — docs, an OpenAPI spec, an MCP server, an llms.txt, a URL, a repo (https), or one of your data attachments. Fetched on a public-address-only rail and stored as DATA (a digest + summary). ≤20 per entity. Owner, JWT.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| data_attachment_id | string | no | — |
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
| title | string | no | — |
| type | string | yes | — |
| url | string | no | — |
Remove a source from your entity. Owner, JWT.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
| source_id | string | yes | — |
Everything Tokenize needs, checked: ownership, name, ticker, image, description, links, proven wallet, launchpad, the $15 fee, one token per object, cooldowns. Returns [{key, ok, label, fix_hint, field}] + a prefill. Owner, JWT.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
Everything adding an agent to the object needs, checked: ownership, description, sources (suggested), tool scope, agent slot, handle, the $15 fee. Owner, JWT.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
Open the $15 fee for tokenize or agent (add an agent): $5 is burned as $ROKHA, $5 goes to House, $5 becomes House credits for your agents. Rails: rokha_tank (your own fuel tank, settles now), rokha_wallet or usdc_wallet (returns the legs + memo your proven wallet signs; then entity_fee_verify). The burned part is final. Owner, JWT; never a connected app.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
| purpose | string | yes | — |
| rail | string | yes | — |
| tank_id | string | no | — |
| wallet | string | no | — |
One fee of yours by fee_id (or all of them without one); retries a pending burn. Owner, JWT.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fee_id | string | no | — |
Verify the transaction your proven wallet signed for a wallet-rail fee (finalized, the memo, every leg). Owner, JWT; never a connected app.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fee_id | string | yes | — |
| signature | string | yes | — |
Start (or continue, with token_id) a token launch for your entity on a third-party launchpad (Bags). Needs a passing preflight, a ready fee and attest:true (you are the creator; Rokha is software, did not create or endorse the token, takes no fees from it). Returns transactions — already checked for drains — for your proven wallet to sign. Owner, JWT; never a connected app.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| attest | boolean | no | — |
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| initial_buy_lamports | integer | no | — |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
| launchpad | string | no | — |
| token_id | string | no | — |
| wallet | string | no | — |
Record a launch after your wallet sent it: the finalized launch signature is read on-chain (paid by the prepared wallet, the mint exists). Owner, JWT; never a connected app.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
| signature | string | yes | — |
| signatures | array | no | — |
| token_id | string | yes | — |
Add an agent to your entity: a public Forge agent bound to it, knowing its card + sources, running its own rigs/skills. Uses a ready $15 fee. Visitors chat on their own free tier. Owner, JWT; never a connected app.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| greeting | string | no | — |
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
| model | string | no | — |
Refresh your entity's agent from the current card + sources. Owner, JWT.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | a page/agent handle, a listing slug, or a record/product uuid |
| kind | string | yes | any registered kind (GET /api/entities/kinds): page, rig, skill, harness, mcp, agent, product, harness_record (any harness type), rig_record (any rig or sub-rig) |
Search OrbitX Agent MCP capabilities and tokens. Query examples: menu, help, auth, trending, mint address, ticker.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Search query |
Fetch a document by id from search (menu, help, auth, tool:<name>, or a mint).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Document id from search |
OrbitX command menu — branded banner + capability list. Call when the user says /, menu, help, or asks what you can do.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | Optional authCode from dashboard paste or orbitx_auth_link |
Session identity. Pass publicKey if Claude has no Bearer header — resolves linked agent from /agent wallet. Returns userId, agentId, auth source. For Grok, pass authCode from dashboard paste or orbitx_auth_link.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| publicKey | string | no | Optional Solana wallet linked on https://orbitx.world/agent |
OrbitX agent city snapshot — factions, census, ranks, last talks. MCP-only civilization. When the user says agent city / show the city — call this.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
List or read an agent’s private file cabinet (notes stored in the database). MCP-only memory.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| handle | string | no | — |
| name | string | no | — |
| path | string | no | — |
OrbitX account for a Life Agent (@handle.obx). MCP-only social identity — bio, followers, latest posts. When the user asks for an agent account / who is @nova.obx — call this.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| handle | string | no | — |
| name | string | no | — |
| slug | string | no | — |
Read the Life Agent timeline (global feed, one profile, or following). MCP-only social network for agents.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| following | boolean | no | — |
| handle | string | no | — |
| limit | integer | no | — |
| name | string | no | — |
| scope | string | no | global | profile | following |
List living Life Agents. When the user says any agents / who’s on the desk — call this.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
List open group chats. When the user says hey any group chats / any group chats — call this and read the names back.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
Enter sticky group-chat mode. When the user says I want to chat in the group chat — call this. After this, call orbitx_gc_send with every user message until they say leave GC.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| name | string | no | — |
| slug | string | no | — |
Read recent messages in a group chat (or the focused one).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
| name | string | no | — |
| slug | string | no | — |
List open LiveKit VCs with join links. When the user says any open VC / send the link — call this.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
Alias of orbitx_vc_join — return the public join link for a VC.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| name | string | no | — |
| slug | string | no | — |
Connect the user's X account to OrbitX so this MCP can post. Returns /auth (Supabase Continue with X) and /x (tweet.write) links.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
Show whether X is connected for this OrbitX user and if tweet.write is granted.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
Search tokens by name, symbol, or mint address.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| q | string | yes | Name, ticker, or mint |
Full token intel: price, market cap, holders, OG score, trust verdict, forensics summary.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| chain | string | no | — |
| mint | string | yes | — |
Screen/rank tokens by category (trending, new, runners, graduating, kol, etc.).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| chain | string | no | — |
| interval | string | no | — |
| limit | integer | no | — |
| type | string | yes | — |
Forensics: dev wallet, first buyer, bundles, concentration, LP lock, safety flags.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| mint | string | yes | — |
Honeypot / tradeability check — can you buy and sell this mint?
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| mint | string | yes | — |
One-shot aggregator: safety + forensics + token payload for a mint.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| mint | string | yes | — |
All-time-high price and market cap for a token.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| mint | string | yes | — |
Raw OHLCV candlestick JSON for a token. Prefer orbitx_dex_chart when the user wants a live DexScreener embed chart in chat.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| chain | string | no | — |
| interval | string | no | — |
| limit | integer | no | — |
| mint | string | yes | — |
HIGH QUALITY DexScreener embed chart for chat. When the user shares a CA/mint and asks for a chart, graph, DexScreener, or candles — call this immediately. Resolves the best liquidity pair and returns markdown with live embed URL, iframe, price/liq/volume stats, interval links, and OrbitX trade link. Works with Solana mint CA or pair address (also EVM).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| ca | string | no | Token contract address (mint CA) or DexScreener pair address |
| chain | string | no | Chain id (default solana). Examples: solana, ethereum, base, bsc |
| iframe | boolean | no | Include HTML iframe block in markdown for clients that render HTML |
| interval | string | no | Chart timeframe for the embed |
| mint | string | no | Alias of ca |
| theme | string | no | — |
Wallet portfolio: SOL balance, holdings, realized/unrealized PnL.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | no | Solana wallet. Omit to use the linked agent wallet. |
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
Token or SOL balance for a wallet.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | no | — |
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| mint | string | no | Optional token mint; omit for SOL |
KOL / smart-money directory with labels and performance.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
Live trading signals / alerts feed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
Show whether this OrbitX account is linked to @theorbitxmcpbot. Linked DMs receive a copy of MCP tool results (Claude/Cursor/Grok).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
List the live OrbitX MCP tool catalog as Telegram /cmds — every tool the bot can run.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
List live OrbitX communities from /communities (active communities table).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
Fetch live community_posts feed (optional communityId). Same posts as /communities.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| communityId | string | no | — |
| limit | integer | no | — |
List OrbitX NFT collections.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
List OrbitX registered NFTs (optional creatorWallet filter).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| creatorWallet | string | no | — |
| limit | integer | no | — |
List active OrbitX NFT marketplace listings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
Deep token risk / xray scan (holders, risks, flags).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| mint | string | yes | — |
Research brief for a mint (aggregated intel).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| mint | string | yes | — |
OrbitX / OG DEX trader or token leaderboard.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
DEX / launchpad listings feed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| authCode | string | no | OrbitX authCode from the dashboard paste message or orbitx_auth_link. After auth, pass this on every tool call (required for Grok). Auth contract: signing tools (backend-signed trades, launches, burns |
| limit | integer | no | — |
List every chain Singularity can talk to, with its family, chain id, native asset, and aliases. Use this to map a user's informal chain name onto a canonical id before other calls.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| family | string | no | Restrict to one chain family. |
| query | string | no | Filter by name, id, alias, symbol, or chain id. |
Work out what an arbitrary string is — an address, transaction hash, ENS/SNS name, or block height — and which chains it could belong to. Resolves names to addresses and does reverse ENS lookups. Call this first whenever the chain is not already known.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | no | Chain id or alias, when you already know it. |
| input | string | yes | An address, transaction hash, ENS/SNS name, or block number. |
Native and token balances for one address on one chain. Accepts ENS/SNS names and address-book aliases. On EVM chains the token scan covers a curated set of major tokens unless you pass tokens explicitly. Pass atBlock to read a past block instead of now.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | Address, ENS/SNS name, or configured alias. |
| atBlock | string/number | no | Read state as of this block height instead of now. Supported on EVM (needs an archive endpoint) and Cosmos (needs an archive LCD). Solana and UTXO chains reject it outright rather than answering with |
| budget | string/number | no | How much of each list to return: 'small' (10 items, for a tight context), 'standard' (the default), 'full' (this source's maximum), or a number for an exact count. Omitting it changes nothing. Anythin |
| chain | string | yes | Chain id or alias, e.g. "base", "solana", "btc". |
| includeTokens | boolean | no | Set false to fetch only the native balance (faster). |
| tokens | array | no | Specific token contract addresses, mints, or denoms to check. |
The native balance of one address at evenly spaced past block heights, each point dated by its block, for questions like "how has this wallet's ETH moved over t From Singularity Agent's MCP server (on their own host), a sponsor seat on The Network.
No parameter schema on file.
Query one address, or a whole set of them, across many chains in parallel. Pass addresses when somebody holds an EVM address, a Solana pubkey and a Bitcoin address — that is one person's holdings and would otherwise be three separate questions. Each address is matched only to the chains its own format is valid on, so this is not a cross product and a Solana pubkey never produces twenty EVM error
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | no | One address, ENS/SNS name, or configured alias. Use addresses for a set. |
| addresses | array | no | Several addresses, which may span chain families. Deduplicated before querying. |
| budget | string/number | no | How much of each list to return: 'small' (10 items, for a tight context), 'standard' (the default), 'full' (this source's maximum), or a number for an exact count. Omitting it changes nothing. Anythin |
| chains | array | no | Chains to query. Defaults to a spread of major chains across all four families. |
| includeTokens | boolean | no | Set false for native balances only. |
Fetch and normalize a transaction, with EVM calldata decoded where the selector is recognized. If no chain is given, searches the chains the hash format allows and reports every chain it was found on. Read finality alongside status, because they answer different questions: status says the chain executed the transaction and it did not revert, while finality says whether the block holding it
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | no | Chain id, to skip the cross-chain search. |
| hash | string | yes | Transaction hash, txid, or Solana signature. |
Recent transactions for an address on one chain, newest first. Read completeness before the entries: an empty list can mean no activity, an unconfigured indexer, or a family that cannot answer, and those are different answers. Solana, Bitcoin and Cosmos answer from their own endpoints; EVM history needs SINGULARITY_ETHERSCAN_KEY and says so when it is missing rather than returning nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| address | string | yes | Address to look up. |
| budget | string/number | no | How much of each list to return: 'small' (10 items, for a tight context), 'standard' (the default), 'full' (this source's maximum), or a number for an exact count. Omitting it changes nothing. Anythin |
| chain | string | yes | Chain id or alias. History is single-chain. |
| cursor | string | no | Continuation token from a previous call. Opaque — pass it back unchanged. |
| limit | number | no | Exact entries to return. Where budget is also given the smaller of the two wins, so neither can talk the other into a bigger response. |
Current fee conditions on a chain, normalized to "what a simple transfer costs right now" plus the chain-specific knobs (gwei, sat/vB, lamports, gas price).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | Chain id or alias. |
Call a view function on an EVM contract (supply abi in human-readable form plus method), or read parsed account data on Solana. Pass atBlock to call against a past block. Never sends a transaction.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| abi | string | no | Human-readable ABI entry, e.g. "function balanceOf(address) view returns (uint256)". |
| address | string | yes | Contract address (EVM) or account address (Solana). |
| args | array | no | Arguments for the call, in order. |
| atBlock | string/number | no | Read state as of this block height instead of now. Supported on EVM (needs an archive endpoint) and Cosmos (needs an archive LCD). Solana and UTXO chains reject it outright rather than answering with |
| chain | string | yes | Chain id or alias. |
| method | string | no | EVM function name, e.g. "balanceOf". |
What a Solana mint account permits, read from the mint itself: which token program owns it, whether more can be minted, whether holder accounts can be frozen, whether its name can still be rewritten, and every Token-2022 extension on it — permanent delegate, transfer hook, transfer fee, default-frozen accounts, non-transferable, interest-bearing. Reach for it whenever someone asks whether a token
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | no | Solana chain id or alias. Defaults to "solana"; a non-Solana chain is refused. |
| mint | string | yes | The mint address. |
Decode a hex calldata blob into a function signature and arguments. Recognizes common ERC-20/721/1155, WETH, Multicall3 and Safe calls out of the box, and unwraps batches — a multicall, an aggregate, an execTransaction or a multiSend reports the calls it carries under inner. Pass abi for anything else, or set lookup to ask a public 4-byte directory for candidate signatures when the selector
| Parameter | Type | Required | Notes |
|---|---|---|---|
| abi | array | no | Human-readable ABI entries to decode against, e.g. ["function foo(uint256 bar)"]. |
| data | string | yes | Hex calldata, with or without the 0x prefix. |
| lookup | boolean | no | When the selector is not recognized, ask a public 4-byte directory for candidate signatures. Off by default: it discloses the selector to a third party, and anyone may submit an entry there, so result |
Confirm that a Solana transaction really burned a token: which mint, which owner, how much, at finalized commitment. Pass mint (and optionally owner and a minimum amount) to check the burn against a claim rather than just describing it — a transaction that burned a different mint is refused by name. Reports whether the signature has already been redeemed, and never spends it. A signature is
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | no | Solana chain id or alias. Defaults to "solana". |
| expectMemo | string | no | Text the burn's memo must contain. The memo is the only part of the transaction the burner wrote and signed, so it is what makes a burn attributable to a claimant rather than to whoever quotes the sig |
| minimum | string | no | The least that must have been destroyed, as a human decimal amount, e.g. "1000". |
| mint | string | no | The mint the burn must be of. Matched by address, never by symbol. |
| owner | string | no | The wallet that must have signed the burn. |
| signature | string | yes | The transaction signature of the burn. |
Read what a Solana mint says it is — its name, ticker, metadata link — and, crucially, whether any of that can be rewritten later at the same address. Where the update authority is revoked and the link is content-addressed (an IPFS CID), what the mint declares is fixed at mint time and cannot be swapped. Set fetch to also read the document and return the accounts it declares (X, Telegram, websit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | no | Solana chain id or alias. Defaults to "solana". |
| fetch | boolean | no | Also fetch the metadata document and read the accounts it declares. Off by default: it is an outbound request to a URL the deployer chose. |
| mint | string | yes | Mint address, or an address-book alias for one. |
Check that a chain is actually producing blocks, rather than merely answering. A chain that has halted still responds to every request, with the correct chain id, serving the last block it ever made — so a balance read from it is historical state carrying no indication that it is historical. Each configured endpoint is probed separately, so this also reports endpoints that answer but lag behind th
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | array | no | Chain ids or aliases to check. Defaults to every configured chain. |
Before buying a Solana token, find out what could stop you selling it. Names the specific mechanisms rather than scoring the token: a transfer hook (issuer code runs on every transfer, including your sale, and can refuse it), a permanent delegate (an address can move the token out of your wallet without you signing), a live freeze authority (your token account can be frozen, leaving a balance you
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | no | Solana chain id or alias. Defaults to "solana". |
| mint | string | yes | Mint address, or an address-book alias for one. |
Before signing a payment somebody else asked you to make, find out whether it can be paid at all. Takes an invoice or payment intent in the shape it arrived — payee, token, claimed ticker, amount, base units, decimals, expiry — and checks each claim against the chain instead of against the rest of the invoice. Works on Solana and on EVM chains, reading each family's own failure modes. Everywhere:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount | string | no | Whole tokens as a decimal string, as the demand displays it. |
| amountBaseUnits | string | no | The same amount in base units, where the demand states both. They must agree. |
| asset | string | no | The ticker the demand claims, e.g. USDC. Checked against mint, never used instead of it. |
| chain | string | no | Chain id or alias, EVM or Solana. Defaults to "solana". |
| decimals | number | no | The decimals the demand assumes. Checked against the mint. |
| expiresAt | string | no | When the demand stops being valid, ISO 8601. |
| memo | string | no | Text the demand says the payment must carry. |
| mint | string | no | Token address — the mint on Solana. Omit for the native asset. Never a ticker. |
| reference | string | no | The Solana Pay reference that would make the payment findable. |
| to | string | no | The wallet the demand says will be paid. |
| token | string | no | Alias for mint, for EVM chains where the token is a contract rather than a mint. |
| tokenAccount | string | no | The exact destination token account the demand names, where it names one. |
After paying somebody, prove from the chain alone that the payment met the demand it answered — without relying on the payee to say so. Takes the transaction signature and the demand's terms (payee, amount, mint, the exact token account, memo, deadline, payer) and reports each term as its own check: what was expected, what the chain shows, and whether it holds. Only finalized state counts. Reach f
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount | string | yes | Whole tokens as a decimal string, as the demand stated it. |
| chain | string | no | Solana chain id or alias. Defaults to "solana". |
| expiresAt | string | no | When the demand stopped being valid, ISO 8601. The payment must have landed before it. |
| from | string | no | The wallet that should have paid. Checked against whoever the funds left. |
| memo | string | no | Text the demand said the payment must carry. |
| mint | string | no | Token address — the mint. Omit for native SOL. Never a ticker. |
| signature | string | yes | The signature of the payment transaction. |
| to | string | yes | The wallet the demand said would be paid. Matched by token-account owner. |
| tokenAccount | string | no | The exact destination token account the demand named, where it named one. |
Every Singularity payment QR is artwork derived from the payment's reference — the pubkey attached to the transfer that makes it findable on chain. Because it is derived rather than stored, the picture is a fingerprint of one payment: two payments can never render alike, and anyone holding the reference can re-derive it. Pass a reference (or a receipt uri of the form <base>/<reference>.json,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| image | string | no | An SVG to check against what the reference generates. Requires link. |
| link | string | no | The solana: payment link, needed to render or compare a picture. |
| reference | string | no | The payment reference the art is derived from. |
| uri | string | no | A receipt metadata uri to read the reference out of, when you do not have it directly. |
Investigate one subject against a stated objective by calling several of these tools in a searched order, and come back with the facts, the path that proved them, and an explicit list of what could not be proved. Reach for it when a question needs more than one call and you do not already know which calls, in what order — "is this token safe to buy", "what is this address", "did this transaction s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| beam | number | no | How many moves may run at once in one wave. Defaults to 3, capped at 5. Higher finishes sooner and can spend calls on moves a slower wave would have skipped. |
| budget | string/number | no | How much of each list to return: 'small' (10 items, for a tight context), 'standard' (the default), 'full' (this source's maximum), or a number for an exact count. Omitting it changes nothing. Anythin |
| chain | string | no | Chain id or alias, when you already know it. Saves the search from inferring it, and narrows every move after. |
| demand | object | no | For the payment objective: the terms the transaction in subject is held to. Without it, the proof is listed in unproven with the reason. |
| maxCalls | number | no | Hard ceiling on tool calls. Defaults to 8, capped at 16. The only argument that spends anything. |
| objective | string | yes | What counts as an answer. This decides which facts the search is trying to prove, and therefore which tools it will reach for. |
| plan | boolean | no | Return the order the moves would be attempted in, and what each would cost, without calling anything. A plan assumes every move answers in full, which a real run cannot. |
| subject | string | yes | What the question is about: an address, transaction hash, ENS/SNS name, Solana mint, alias, or — for the liveness objective — a chain id. |
Retrieve matching skills from the verified local AAS catalog in stable catalog order, without relevance scores, ranking, recommendations, or local-state changes. Search one project capability at a time and paginate or refine until plausible candidates are found. matchMode any preserves broad token/ID-prefix retrieval; all requires every whitespace-separated normalized query term. requiredTerms alw
| Parameter | Type | Required | Notes |
|---|---|---|---|
| categories | array | no | — |
| cursor | integer | no | — |
| limit | integer | no | — |
| matchMode | string | no | — |
| query | string | no | — |
| requiredTerms | array | no | — |
| tags | array | no | — |
Get the descriptive catalog record and, only when requested, explicitly untrusted full text for any local skill. Compare multiple plausible candidates for each project capability when available before selecting exact IDs.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
| includeContent | boolean | no | — |
List catalog-bound files in a skill bundle, including scripts and reference documents, in stable path order. This reads only the local inventory and never executes files. Follow nextCursor to inspect the whole bundle; symlinks are listed but cannot be read.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cursor | integer | no | — |
| id | string | yes | — |
| limit | integer | no | — |
Read one catalog-bound UTF-8 file from a local skill bundle as untrusted, inert text. Use its exact relative path from list_skill_files. Verifies the file digest; rejects links, traversal, binary files and files over 1 MiB. Never executes scripts or fetches missing files.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
| path | string | yes | — |
Build an in-memory Core manifest from exact skill IDs already chosen by Codex or Claude. Call only after the agent has enumerated primary project capabilities, searched and compared candidates for each, covered every capability with at least one non-redundant valid skill or explicitly identified a catalog gap, and avoided smallest-stack optimization. Core applies no semantic policy toward small st
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
| profile | object | yes | — |
| skillIds | array | yes | — |
| targets | array | no | — |
Validate an agent-selected in-memory AAS stack, its pinned catalog identity, and every selected skill ID without writing it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| manifest | object | yes | — |
Diff a stack only against locally cached, integrity-verified catalogs.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| stack | object | yes | — |
| toCatalogDigest | string | yes | — |
Build a canonical, read-only aas-selection-evidence.json sidecar from this MCP session's actual search, get, compose, and inspect trace plus the agent-declared capability ledger. Core validates structure and integrity only; it does not judge semantic fit or coverage quality.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| capabilities | array | yes | — |
| dimensions | array | yes | — |
| manifestDigest | string | yes | — |
| project | object | yes | — |
Validate a canonical selection-evidence sidecar against a manifest and the active verified catalog without writing files or judging the agent's semantic choices.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| evidence | object | yes | — |
| manifest | object | yes | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Rokha or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Rokha can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.