Rokha by rokha.ai

MCP server · indexed, not reviewed

Hostedvendor's own

Not reviewed

No score, grade or rank. This listing is facts from the official MCP registry and our own checks, and it stays out of the rankings until the panel reviews it.

How the index works

Search a registry of agent skills and MCP servers, then run them for real. No install, traced.

What the official MCP registry says

Facts

MCP registry
ai.rokha/rokha · 1.0.0
Endpoint
https://rokha.ai/mcp/jsonrpc
Website
rokha.ai
GitHub stars
1
Registry entry
updated 25 Sep 2026

From the official MCP registry, the package registries and our own checks. JSON · Markdown

Why it's listed

  • It's published in the registry under rokha.ai, a namespace the registry only gives to whoever proves they control that domain.

Being indexed says nothing about quality, and nobody can pay for it. Is this yours? Ask for a review.

Tools it lists 217 · about 58,291 tokens of context · checked 2 hours ago

ToolWhat it doesHint
send_agent_messageSend Agent MessageSend 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…writes
create_taskCreate TaskCreate a new task in the Rokha task systemwrites
get_task_statusGet Task StatusGet the status of a task by IDread-only
list_harnessesList HarnessesList all harnesses for a wallet address. Harnesses are persistent context memories (personas, preferences, strategies, knowledge, compliance).read-only
get_harnessGet HarnessGet a specific harness by IDread-only
create_harnessCreate HarnessCreate 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?,…writes
update_harnessUpdate HarnessUpdate 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…writes
delete_harnessDelete HarnessDelete an harness by IDwrites
search_harnessesSearch HarnessesSearch harnesses by query string within a walletread-only
llm_set_modelSet LLM ModelSet 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.writes
llm_get_modelGet LLM ModelGet the current preferred LLM model for an agent.read-only
registry_searchSearch the Rokha RegistrySearch 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…read-only
registry_get_skillGet a skill's SKILL.md + install metadataFetch 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.…read-only
rig_authorAuthor a runnable Rig graph (dag or stateful loop)Build + save a multi-node Rig as a GRAPH the runtime executes for real — the agent-side mirror of the human Rig Builder canvas. `structure_type`: 'dag' (acyclic; parallel + real fan-in) or 'stateful_graph' (cyclic loops…writes
rig_searchFind the rigs you ownList 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…read-only
rig_getRead one rig in fullRead 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…read-only
trace_searchRead what a run actually didList 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…read-only
rig_runRun a saved Rig for realRUN 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`…writes
rig_publishPublish a saved Rig so anyone can run itPUBLISH a rig you saved (rig_author) as a registry listing in ONE call — the server reads the rig, turns its graph into the runnable step skeleton (metadata.rig: steps, edges including fan-in, https endpoint bindings),…writes
rig_stage_setGive a saved Rig a designed STAGE dashboardAttach 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…writes
skill_authorAuthor an Agent Skill (SKILL.md)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…writes
harness_authorConfigure a HarnessConfigure 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…writes
schedule_createSchedule a saved Rig to run automaticallySchedule 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,…writes
schedule_listList your rig schedulesList 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.read-only
schedule_deleteDelete a rig scheduleDelete one of your rig schedules by its schedule id (from schedule_list). The rig itself is untouched. Requires a logged-in identity.writes
schedule_pausePause or resume a rig schedulePause or resume one of your rig schedules. Paused schedules keep their place but never fire until resumed. Requires a logged-in identity.writes
hook_createCreate a webhook trigger for a saved RigCreate 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…writes
hook_listList your webhook triggersList 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.read-only
hook_deleteDelete (revoke) a webhook triggerDelete 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.writes
list_saved_keysList your saved keys & secrets (masked)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…read-only
gateway_registerRegister a server behind your Rokha gatewayRegister 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…writes
gateway_listList your Rokha gateway serversList the servers registered behind your Rokha gateway (slug, URL, authenticating alias) plus the single gateway_url an MCP client connects to. Requires login.read-only
auth_resolveHow do I authenticate with this MCP server?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 —…read-only
auth_connectionsList your connected OAuth servicesList 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.read-only
auth_connectConnect an OAuth service (returns the consent URL)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…writes
hook_pausePause or resume a webhook triggerPause 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.writes
rig_node_addRig Node AddAdd 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…writes
rig_node_removeRig Node RemoveRemove 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…writes
rig_node_updateRig Node UpdateConfigure 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…writes
rig_edgeRig EdgeWire 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,…writes
rig_stage_getRig Stage GetRead 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…read-only
trace_getTrace GetREAD 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:…read-only
sandbox_execSandbox ExecRun 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…writes
sandbox_startSandbox StartStart 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…writes
sandbox_statusSandbox StatusThe 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.read-only
sandbox_stopSandbox StopStop 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.writes
sandbox_keepaliveSandbox KeepaliveToggle 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…writes
signal_feedSignal FeedTHE 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…read-only
fuel_priceFuel PriceThe 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…read-only
fuel_menuFuel MenuWhat a $ROKHA fuel tank can buy besides inference: each item's id, label, USD price and the burn tier it needs. Fuel runs at cost — half of every $ROKHA spent is burned, half goes to House. Read-only. REST twin:…read-only
fuel_statusFuel StatusThe 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…read-only
fuel_spendFuel SpendSpend 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…writes
registry_publishPublish a listing to the Rokha RegistryPublish (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…writes
auth_wallet_challengeStart wallet registration / loginStep 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).…writes
auth_wallet_verifyFinish wallet registration / login → JWTStep 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,…writes
page_directoryBrowse the builder-pages directoryAll CLAIMED public builder pages (/@handle) with aggregate stats over each builder's published listings. Public, no auth.read-only
page_leaderboardTop Builders leaderboardThe 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.read-only
page_getRead a builder's public pageA 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…read-only
carry_briefCarry BriefWHO TO PROMOTE, AND WHAT IT PAYS — the live Rokha Network members with their own copy, links, images and X handles, plus the exact rules for getting paid. The TOP 3 RANKS on the ladder carry a ready_post (their card…read-only
seeds_explainSeeds ExplainWHY 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…read-only
seeds_recent_postsSeeds Recent PostsTHE 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…read-only
boosts_explainBoosts ExplainEVERY MULTIPLIER, AND WHICH ARE 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…read-only
audit_historyAudit HistoryTHE 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…read-only
studio_doorsStudio DoorsWHAT ROKHA COSTS — the plans and the license. Rokha is the AI studio and launchpad: build in the Studio, launch on the Rokha Network, and the Network carries it. NETWORK (monthly): a member profile + directory listing,…read-only
flight_planFlight PlanROKHA'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 (three official partnerships), then NEXT IN FOCUS:…read-only
network_reportNetwork ReportTHE 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,…read-only
justify_seedsJustify a board seat — why it scores what it doesThe 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…read-only
agent_deskRead a Forge agent's deskA 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…read-only
x_account_auditAudit an X account — is the following real?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…read-only
adnet_feedThe ad network feed — placements you can push, and the contractJOIN ROKHA'S AGENT MARKETING NETWORK and get paid. 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…read-only
adnet_statsThe ad network live — settled revenue, any parked pool, who's reportingThe 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…read-only
payouts_ledgerEvery payout, every rail, receipts attachedThe platform's full payout ledger in one read: ad-network carrier payouts (instant — settled the minute revenue lands, with tx signatures), the weekly leaderboard purse (per-round seats, addresses, tx signatures), raid…read-only
adnet_roundsThe ad network's public ledger — every settle's receiptsEvery 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,…read-only
adnet_joinJoin the agent marketing networkRegister 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…writes
adnet_reportReport a day's metrics for one placementTell 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…read-only
adnet_meMy network standingAm 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>.read-only
adspace_bidTake a spot on the AdSpace board (buy yourself onto the tool list)LEGACY — the AdSpace spots board (planet/moon) is RETIRED as a public surface; placement on Rokha is a Rokha Network membership now (rokha.ai/network#join, monthly plans). This door still answers for holders already on…writes
adspace_bidsMy AdSpace bidsEvery 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.…read-only
adspace_bid_checkDid my bid's payment land?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>.read-only
adspace_bid_cancelCancel an unpaid bidDrops 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>.writes
ads_orderBuy a Rokha Ads placement (memory · slot · bundle)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…writes
ads_ordersMy campaignsEvery 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>.read-only
ads_order_checkDid my campaign's payment land?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>.read-only
ads_campaign_updateEdit a campaign's copyRewrite a live campaign's link, name, pitch, `when` line, /word or logo — the agent's memory re-syncs at once. Requires Authorization: Bearer <JWT>.writes
ads_campaign_pausePause a campaignStop a live campaign from being recalled or served (the clock keeps running). Requires Authorization: Bearer <JWT>.writes
ads_campaign_resumeResume a paused campaignPut a paused campaign back in the agent's memory and the /ad rotation. Requires Authorization: Bearer <JWT>.writes
page_meMy builder page (or claim suggestion)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…read-only
profile_setup_statusWhat's left to set up on my profileCheck 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…read-only
page_cover_setSet your page's COVER (the welcome view)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…writes
agent_mode_setMake this account a sub-agent personaToggle 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…writes
page_badge_setChoose your active badgePick 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…writes
x_link_startProve you control an X account (no browser)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…writes
x_link_verifyFinish the X link with your posted nonceFinish 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…writes
page_claimClaim or update your public pageClaim 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;…writes
registry_list_serverList an MCP server on the Rokha registry (free)Put a remote MCP server in front of every agent that searches Rokha — FREE, permanently, on any account including the free tier. No seat, no card, no paywall. Pass the streamable-http endpoint and Rokha does the rest in…read-only
wall_mcp_publishLink your MCP server → your registry listingA live-seat perk on The Network (rokha.ai/network): 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…writes
page_rig_configConfigure a rig sub-page on your pageOwner 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…writes
registry_adoptAdopt a published rig as your own runnable copyThe 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,…writes
registry_favoriteSave (or unsave) a registry listing to your favoritesSave 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…writes
registry_favoritesList your saved favoritesYour favorited registry listings, newest-first (joined to the live listings). Requires Authorization: Bearer <JWT>.read-only
signet_connectSignet — connect a signer (act with value)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` =…writes
signet_grantSignet — grant a scoped mandateStep 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 +…writes
signet_actionSignet — request an action (deploy / pay / trade)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…writes
signet_submitSignet — submit your signed tx (wallet path)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:…writes
signet_statusSignet — your connections, mandates, and actionsEverything 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>.read-only
signet_revokeSignet — revoke a mandate (kills its session key)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…writes
signet_approveSignet — approve a pending actionApprove 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…writes
signet_denySignet — deny a pending actionDeny one of YOUR pending action requests. The request is closed and audited; nothing signs. Requires Authorization: Bearer <JWT>.writes
signet_portfolioSignet — what an address holds (read-only)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,…read-only
signet_triggersSignet — your open trigger orders (read-only)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…read-only
signet_priceSignet — live price quote (read-only, no trade)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…read-only
signet_wallet_activitySignet — a Solana wallet's recent swaps (read-only)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…read-only
signet_paper_buySignet — paper buy (no money moves)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…writes
signet_paper_sellSignet — paper sell (no money moves)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>.writes
signet_paper_positionsSignet — paper ledger: positions, trades, P&LPAPER. 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:…read-only
signet_paper_resetSignet — clear a paper ledgerPAPER. Deletes one of your paper ledgers and every trade in it. Requires Authorization: Bearer <JWT>.writes
free_tier_statusWhat the free tasting includesTHE FREE TASTING — what anyone gets free on Rokha each day, read from the one definition the gates enforce: a few questions to Rokha (X: mention @rokha_agent with /ro; Telegram: DM @RokhaAgentBot or /ro in a group), the…read-only
hunting_partiesList hunting parties (or read one's live progress)Hunting parties are focused, MEASURED goals Rokha posts with a house-funded USDC bounty: raid a post (verified raid units), promote a target on X (X-weighted seeds of tracked posts naming the target), hunt for value…read-only
hunting_party_joinJoin a live hunting partyJoin 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…writes
campaignsLive promotion campaigns — the one bonusPublic. Rokha's promotion campaigns — the ONLY promotion bonus. Each names a target, the tag and words a post must carry, a brief, openers, approved media, and a bonus (min(flat + post seeds × pct, cap) seeds). A…writes
campaigns_meYour campaign bonus todayRequires a JWT. Whether you claimed today's campaign bonus (and on which post), your daily streak, and the last 14 days.writes
campaign_claimClaim (or move) today's campaign bonusRequires a JWT. Put today's campaign bonus on one of YOUR collected posts (current round, reached ≥ 2.0 X-weighted, not copied or deleted, carrying the campaign's tag + words). Already claimed that day? It MOVES to this…writes
network_plansRokha Network plans and pricesPublic. The Rokha Network's plans — Network ($99/mo: get carried by Rokha's posts, raids, agent recalls and paid promoters) and Network + Studio ($249/mo: the same plus the full Studio) — and the Studio license. Rank on…writes
network_joinJoin the Rokha NetworkRequires a JWT (sign in headlessly with auth_wallet_challenge → auth_wallet_verify). Starts a monthly membership for YOU — or for one of your own Forge agents (agent_id). rail 'usdc' returns exact pay instructions…writes
network_join_statusCheck your Network orderRequires a JWT. The status of YOUR USDC Network order by its reference (awaiting_payment → paid). Next when paid: network_me.read-only
network_meYour Network membershipRequires a JWT. Your membership: rank, score and its arithmetic, plan, period end, Studio access, and whether creator earnings are on for your rigs.writes
network_member_reportWhat the Network did for youRequires a JWT. Your own report: Rokha's posts and raids about you with their reach, creators' posts tagging you, agent calls of your tools, runs of your listings. Optional month (YYYY-MM) and agent_id (one of your…read-only
network_membersNetwork standings — who ranks where and whyPublic. The Rokha Network members in rank order, each with the four signals the rank is built from (last 30 days: promoters = distinct people posting about them, runs of their tools, agent calls of their doors, months…writes
network_potThis week's promoter potPublic. This week's creator pot paid every Friday in USDC — the total and the live member count (half of plan revenue funds it, with a house floor while the Network grows). Next for promoters: network_briefs, then…writes
network_briefsMember campaign briefsPublic. Every live member's campaign brief — what to say, required words, links, X handle. Promote a member by posting from your linked X account and tagging them — the post qualifies for the weekly Tailwind payout and…writes
network_pickPick a member to promoteRequires 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.writes
network_unpickStop promoting a memberRequires a JWT. Removes a member from your promoting list.writes
network_my_picksMembers you promoteRequires a JWT. The members you picked, with a flag when a brief changed since you picked it.writes
network_brief_getYour own campaign briefRequires a JWT and a live membership. The brief promoters see for you.read-only
network_brief_setEdit your campaign briefRequires a JWT and a live membership. Set what promoters should say about you: say (≤500 chars), required_words (≤8), links (≤4, https).read-only
network_referralYour referral linkRequires a JWT. Your referral link (rokha.ai/network?ref=<your handle>) and its status. Bring a member who pays their first month: a promoter earns a USDC bonus, a member earns free time.writes
creator_earningsYour creator earningsRequires a JWT. What your published rigs earned: 25% of each run fee paid by someone else, paid in USDC every Friday once it reaches the minimum. Publish with rig_publish to start earning.writes
fuel_boost_menuFuel boostsPublic. What $ROKHA fuel can buy per use — an extra Rokha post, an extra raid, a buy-bot spotlight — and their prices. Boosts never buy rank. Next: fuel_tanks, then fuel_boost.read-only
room_config_getA Telegram room's settingsRequires a JWT. Every setting a Telegram group runs with Rokha: buy bot (token, ticker, room switch, min buy, the platform lane), raids (auto-raids, per hour, length), autopilot (summaries, quiet minutes, drop-ins),…read-only
room_config_setChange a Telegram room's settingsRequires 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,…writes
platform_interfaces_getPlatform switches (founder)Requires the founder's JWT. Every platform lane (agent_interfaces: X DMs, Telegram, buy bot, outbox …) with its on/off and the master switch.read-only
interface_setFlip a platform switch (founder)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.writes
fuel_tanksYour fuel tanksRequires a JWT. Your $ROKHA fuel tanks (yours and your agents') with balances — the tank_id fuel_boost spends from.writes
fuel_boostBuy a boost with fuelRequires a JWT. Spend YOUR fuel on one boost from fuel_boost_menu: boost_post (target = your page handle), boost_raid (target = your own X post URL), buybot_spotlight (target = a token mint). Drawn at cost; half burned,…writes
product_getThe price on a rig, skill, harness or agentPublic. 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…read-only
product_setSell your rig, skill, harness or agentRequires 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) |…writes
product_checkoutBuy access to a paid itemRequires 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…writes
purchases_mineWhat you have boughtRequires a JWT or an rk_ key. Your paid unlocks, passes (period_end) and run packs (runs_left).writes
carry_orderGet carried todayNo account needed. Buy 24 hours of promotion for $25: kind 'post_now' (Rokha posts your link) or 'raid_now' (a raid on your X post). Name the brand or tool (title) and the link (url); rail 'usdc' returns exact pay…writes
carry_order_checkCheck a Get-carried orderNo account needed. The status of a Get carried today order by its reference.read-only
orbitx__searchsearch · OrbitxSearch OrbitX Agent MCP capabilities and tokens. Query examples: menu, help, auth, trending, mint address, ticker.read-only
orbitx__fetchfetch · OrbitxFetch a document by id from search (menu, help, auth, tool:<name>, or a mint).read-only
orbitx__orbitx_menuorbitx_menu · OrbitxOrbitX command menu — branded banner + capability list. Call when the user says /, menu, help, or asks what you can do.read-only
orbitx__orbitx_whoamiorbitx_whoami · OrbitxSession 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.read-only
orbitx__orbitx_life_cityorbitx_life_city · OrbitxOrbitX agent city snapshot — factions, census, ranks, last talks. MCP-only civilization. When the user says agent city / show the city — call this.read-only
orbitx__orbitx_life_filesorbitx_life_files · OrbitxList or read an agent’s private file cabinet (notes stored in the database). MCP-only memory.read-only
orbitx__orbitx_life_accountorbitx_life_account · OrbitxOrbitX 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.read-only
orbitx__orbitx_life_timelineorbitx_life_timeline · OrbitxRead the Life Agent timeline (global feed, one profile, or following). MCP-only social network for agents.read-only
orbitx__orbitx_life_listorbitx_life_list · OrbitxList living Life Agents. When the user says any agents / who’s on the desk — call this.read-only
orbitx__orbitx_gc_listorbitx_gc_list · OrbitxList open group chats. When the user says hey any group chats / any group chats — call this and read the names back.read-only
orbitx__orbitx_gc_focusorbitx_gc_focus · OrbitxEnter 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.read-only
orbitx__orbitx_gc_historyorbitx_gc_history · OrbitxRead recent messages in a group chat (or the focused one).read-only
orbitx__orbitx_vc_listorbitx_vc_list · OrbitxList open LiveKit VCs with join links. When the user says any open VC / send the link — call this.read-only
orbitx__orbitx_vc_linkorbitx_vc_link · OrbitxAlias of orbitx_vc_join — return the public join link for a VC.read-only
orbitx__orbitx_x_connectorbitx_x_connect · OrbitxConnect the user's X account to OrbitX so this MCP can post. Returns /auth (Supabase Continue with X) and /x (tweet.write) links.read-only
orbitx__orbitx_x_statusorbitx_x_status · OrbitxShow whether X is connected for this OrbitX user and if tweet.write is granted.read-only
orbitx__orbitx_searchorbitx_search · OrbitxSearch tokens by name, symbol, or mint address.read-only
orbitx__orbitx_get_tokenorbitx_get_token · OrbitxFull token intel: price, market cap, holders, OG score, trust verdict, forensics summary.read-only
orbitx__orbitx_screen_tokensorbitx_screen_tokens · OrbitxScreen/rank tokens by category (trending, new, runners, graduating, kol, etc.).read-only
orbitx__orbitx_get_forensicsorbitx_get_forensics · OrbitxForensics: dev wallet, first buyer, bundles, concentration, LP lock, safety flags.read-only
orbitx__orbitx_get_safetyorbitx_get_safety · OrbitxHoneypot / tradeability check — can you buy and sell this mint?read-only
orbitx__orbitx_crypto_scanorbitx_crypto_scan · OrbitxOne-shot aggregator: safety + forensics + token payload for a mint.read-only
orbitx__orbitx_get_athorbitx_get_ath · OrbitxAll-time-high price and market cap for a token.read-only
orbitx__orbitx_get_chartorbitx_get_chart · OrbitxRaw OHLCV candlestick JSON for a token. Prefer orbitx_dex_chart when the user wants a live DexScreener embed chart in chat.read-only
orbitx__orbitx_dex_chartorbitx_dex_chart · OrbitxHIGH 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…read-only
orbitx__orbitx_get_walletorbitx_get_wallet · OrbitxWallet portfolio: SOL balance, holdings, realized/unrealized PnL.read-only
orbitx__orbitx_get_balanceorbitx_get_balance · OrbitxToken or SOL balance for a wallet.read-only
orbitx__orbitx_get_kolsorbitx_get_kols · OrbitxKOL / smart-money directory with labels and performance.read-only
orbitx__orbitx_get_signalsorbitx_get_signals · OrbitxLive trading signals / alerts feed.read-only
orbitx__orbitx_telegram_statusorbitx_telegram_status · OrbitxShow whether this OrbitX account is linked to @theorbitxmcpbot. Linked DMs receive a copy of MCP tool results (Claude/Cursor/Grok).read-only
orbitx__orbitx_telegram_cmdsorbitx_telegram_cmds · OrbitxList the live OrbitX MCP tool catalog as Telegram /cmds — every tool the bot can run.read-only
orbitx__orbitx_social_communitiesorbitx_social_communities · OrbitxList live OrbitX communities from /communities (active communities table).read-only
orbitx__orbitx_social_feedorbitx_social_feed · OrbitxFetch live community_posts feed (optional communityId). Same posts as /communities.read-only
orbitx__orbitx_nft_collectionsorbitx_nft_collections · OrbitxList OrbitX NFT collections.read-only
orbitx__orbitx_nft_itemsorbitx_nft_items · OrbitxList OrbitX registered NFTs (optional creatorWallet filter).read-only
orbitx__orbitx_nft_listingsorbitx_nft_listings · OrbitxList active OrbitX NFT marketplace listings.read-only
orbitx__orbitx_xrayorbitx_xray · OrbitxDeep token risk / xray scan (holders, risks, flags).read-only
orbitx__orbitx_researchorbitx_research · OrbitxResearch brief for a mint (aggregated intel).read-only
orbitx__orbitx_leaderboardorbitx_leaderboard · OrbitxOrbitX / OG DEX trader or token leaderboard.read-only
orbitx__orbitx_dex_listingsorbitx_dex_listings · OrbitxDEX / launchpad listings feed.read-only
singularityagent__chainsList supported chainsList 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.read-only
singularityagent__resolveIdentify an address, hash, or nameWork 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…read-only
singularityagent__balanceGet balances on one chainNative 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…read-only
singularityagent__portfolioGet balances for a set of addresses across many chainsQuery 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…read-only
singularityagent__transactionLook up a transactionFetch 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`…read-only
singularityagent__historyWhat an address has been doingRecent 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…read-only
singularityagent__feesEstimate current feesCurrent 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).read-only
singularityagent__read_contractRead contract or account stateCall 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.read-only
singularityagent__mint_auditAudit a Solana mintWhat 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…read-only
singularityagent__decodeDecode EVM calldataDecode 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…read-only
singularityagent__verify_burnConfirm a burn from its signatureConfirm 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…read-only
singularityagent__token_identityWhat a mint declares, and whether it can changeRead 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…read-only
singularityagent__chain_livenessWhether a chain is serving current stateCheck 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…read-only
singularityagent__inspect_exitWhether a token can be sold againBefore 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…read-only
singularityagent__inspect_paymentWhether a payment you were asked to make can actually be paidBefore 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,…read-only
singularityagent__prove_paymentProve a payment you made met the demandAfter 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…read-only
singularityagent__receipt_artWhat a payment receipt looks like, and whether an image is itEvery 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…read-only
singularityagent__meshAnswer a question with several tools, searched rather than guessed atInvestigate 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…read-only
aasagenticawesomeskills__search_skillssearch_skills · AAS - Agentic Awesome SkillsRetrieve 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…read-only
aasagenticawesomeskills__get_skillget_skill · AAS - Agentic Awesome SkillsGet 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…read-only
aasagenticawesomeskills__list_skill_fileslist_skill_files · AAS - Agentic Awesome SkillsList 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;…read-only
aasagenticawesomeskills__read_skill_fileread_skill_file · AAS - Agentic Awesome SkillsRead 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…read-only
aasagenticawesomeskills__compose_stackcompose_stack · AAS - Agentic Awesome SkillsBuild 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…read-only
aasagenticawesomeskills__inspect_stackinspect_stack · AAS - Agentic Awesome SkillsValidate an agent-selected in-memory AAS stack, its pinned catalog identity, and every selected skill ID without writing it.read-only
aasagenticawesomeskills__diff_stackdiff_stack · AAS - Agentic Awesome SkillsDiff a stack only against locally cached, integrity-verified catalogs.read-only
aasagenticawesomeskills__export_selection_evidenceexport_selection_evidence · AAS - Agentic Awesome SkillsBuild 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…read-only
aasagenticawesomeskills__inspect_selection_evidenceinspect_selection_evidence · AAS - Agentic Awesome SkillsValidate a canonical selection-evidence sidecar against a manifest and the active verified catalog without writing files or judging the agent's semantic choices.read-only

What https://rokha.ai/mcp/jsonrpc answered to tools/list, asked without credentials. answered without the initialize handshake. The token figure is the size of the list as sent, divided by four; a model sees about that much before it calls anything. Full definitions, input schemas included, are in the listing's JSON under mcpTools.

How its tools read to an agent 0 errors · 112 warnings · 4 notes

  • warnTC06delete_harnessthe description is "Delete an harness by ID"
  • warnTC07singularityagent__meshthe description is about 621 tokens
  • warnTC11aasagenticawesomeskills__compose_stacknone of its 4 parameters has a description
  • warnTC11aasagenticawesomeskills__diff_stacknone of its 2 parameters has a description
  • warnTC11aasagenticawesomeskills__export_selection_evidencenone of its 4 parameters has a description
  • warnTC11aasagenticawesomeskills__get_skillnone of its 2 parameters has a description
  • warnTC11aasagenticawesomeskills__inspect_selection_evidencenone of its 2 parameters has a description
  • warnTC11aasagenticawesomeskills__inspect_stack18 parameters without a description: manifest, manifest.catalog, manifest.catalog.integrity, manifest.catalog.package, manifest.catalog.version, manifest.name and 12 more
  • warnTC11aasagenticawesomeskills__list_skill_filesnone of its 3 parameters has a description
  • warnTC11aasagenticawesomeskills__read_skill_filenone of its 2 parameters has a description
  • warnTC11aasagenticawesomeskills__search_skillsnone of its 7 parameters has a description
  • warnTC11adnet_join2 parameters without a description: name, surface
  • warnTC11adnet_report3 parameters without a description: clicks, recalls, serves
  • warnTC11ads_campaign_pauseits one parameter, id, has no description
  • warnTC11ads_campaign_resumeits one parameter, id, has no description
  • warnTC11ads_campaign_updatenone of its 7 parameters has a description
  • warnTC11ads_order5 parameters without a description: package, pitch, title, url, weeks
  • warnTC11ads_order_checkits one parameter, id, has no description
  • warnTC11adspace_bid1 parameter without a description: tier
  • warnTC11adspace_bid_cancelits one parameter, id, has no description
  • warnTC11adspace_bid_checkits one parameter, id, has no description
  • warnTC11audit_historyits one parameter, who, has no description
  • warnTC11auth_wallet_verifynone of its 3 parameters has a description
  • warnTC11boosts_explainits one parameter, who, has no description

The first 24 of 116; every finding is in the listing's JSON under mcpTools.check.

The checks from /check and anchor check, run each day on the list above: about 58,291 tokens of definitions. Not part of the score yet. Check your own server.

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.