Every change Wellknown observed on this agent, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "delete_wiki_page"; changed the definition of "save_wiki_page" (15 tools before, 16 now)
⟨83 unchanged words⟩ else changed since is refused rather than overwritten. `newSlug` moves an existing page to another slug in its tag path, with its history. Requires the Bearer token from the `login` tool, ⟨14 unchanged words⟩
⟨80 unchanged words⟩ or `blocks`.","type":"string"},"newSlug":{"description":"Moves an existing page to this slug in the same tag path. Omit to keep its slug.","type":"string"},"slug":{"description":"Page slug","type ⟨38 unchanged words⟩
Delete a DAO wiki page — Delete a page on a DAO's company-layer wiki, with its whole history and its Talk room. Holders only, the same gate as save_wiki_page. Nothing restores it, so read it first with get_page if it may be wanted. Requires the Bearer token from the `login` tool, sent as an HTTP `Authorization: Bearer <token>` header on the POST carrying this call.
Added "get_page_history" and "save_about"; changed the definition of "get_full_corpus", "get_manifest", "get_page" and 6 more (13 tools before, 15 now)
⟨6 unchanged words⟩ `document` (default 200000, max 1000000)","maximum":1000000,"minimum":1000,"type":"number"},"sizeOnly":{"description" ⟨24 unchanged words⟩ of the previous truncated call (default 0)","minimum":0,"type":"number"},"tagPath":{" ⟨13 unchanged words⟩
⟨4 unchanged words⟩ transaction manifest. Kinds: create-caper, buy, sell, swap, create-proposal, vote,trigger.
Changed the definition of "get_manifest" and "submit_tx"
⟨183 unchanged words⟩ vampire launch)","type":"string"},"proposalId":{"description":"vote / trigger: the proposal's P-… code","type":"string"},"sequence":{"description":"vote: ranked on-chain option indexes, best first — a full permutation including the trailing \"Do nothing\" index","items":{"type":"number"},"type":"array"},"title":{"description":"create-proposal: proposal title" ⟨24 unchanged words⟩
⟨36 unchanged words⟩ per kind: create-caper takes cashtag; proposal takesproposalId.proposalId; trigger takes code (the P-… code). Requires the Bearer token from the `login` tool ⟨14 unchanged words⟩
Changed the definition of "get_categories", "get_full_corpus", "get_page" and 4 more
CuratedThetaxonomycategory tree of the Caper knowledge basewith page counts – call this FIRST,whentheyoucheapestarewayorientingtoratherorientthanbefore searching. Each node
Recently observed → Live
Live → Recently observed
Recently observed → Live
Live → Recently observed
Certificate recorded, valid to 2026-12-05
Authorization not required
Changed the definition of "get_manifest"
⟨88 unchanged words⟩ option indexes incl. the trailing Do-nothing, bestfirst; proposerPaysFee answers who funds the execution feefirst) during the voting window; a supermajority pass arms 'trigger' (free, anyone can call it), which locks the trailing TWAP as the ⟨58 unchanged words⟩
Recently observed → Live
Live → Recently observed
Recently observed → Live
Live → Recently observed
Changed the definition of "save_wiki_page"
Create or edit a page on a DAO's company-layer wiki.MembersHolders only – anybuyamount of the DAO's token,makesitsyouvoteatokenmember.or its founder badge. Pass the body as one HTML string; it ⟨32 unchanged words⟩
Changed the definition of "get_manifest"
⟨130 unchanged words⟩ TWAP over that window is below the baseline.The bondless $XRD caper is the exception: it has no curve, so its window is judged against a reference basket of other capers' curves, inverted — a basket rising in $XRD terms is the veto.You sign and submit the manifest yourself with ⟨31 unchanged words⟩
Recently observed → Live
Live → Recently observed
Changed the definition of "get_manifest"
⟨130 unchanged words⟩ TWAP over that window is below the baseline. The bondless $XRD caper is the exception: it has no curve, so its window is judged against a reference basket of other capers' curves, inverted — a basket rising in $XRD terms is the veto. You sign and submit the manifest yourself with ⟨31 unchanged words⟩
Certificate recorded, valid to 2026-12-05
Authorization not required
First tool surface recorded: 13 tools (server version 2.4.0)
Showing the latest 23 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨14 unchanged words⟩ :"create-proposal: JSON for the action(s)—– either ONE object, or an ARRAY of ⟨52 unchanged words⟩ mutable metadata (metadataDescription / metadataIconUrl / metadataInfoUrl—– at least one). DEBATE is a non-executable ⟨31 unchanged words⟩ description text","type":"string"},"from":{"description":"swap: the cashtag of the caper token you sell","type":"string"},"iconUrl":{"description":"create-caper: optional icon ⟨24 unchanged words⟩ ":["create-caper","buy","sell","swap","create-proposal","vote","count","trigger","resolve","execute","activate-upgrade","exit","withdraw-founder","transfer-founder"],"type":"string"},"name":{ ⟨17 unchanged words⟩ string"},"proposalId":{"description":"vote/andtriggerevery crank after it: the proposal's P-… code","type":"string"},"recipient":{"description":"transfer-founder: the account that receives the founder badge","type":"string"},"sequence":{"description":"vote: ranked on-chain ⟨23 unchanged words⟩ proposal title","type":"string"},"to":{"description":"swap: the cashtag of the caper token you buy","type":"string"},"tokens":{"description":"sell / swap / exit: caper tokens to sell (exit: defaults to your whole balance)","type":"number"},"votes":{"description":"exit: vote tokens to burn (defaults to your whole balance)","type":"number"},"withdrawAccrued":{"description":"transfer-founder: claim the accrued founder fees to you first (default true); false leaves them to the recipient","type":"boolean"},"xrd":{"description":"buy: ⟨10 unchanged words⟩
⟨74 unchanged words⟩ page's URL with `.md` appended is its markdown. With `blocks: true`, `content` is the stored block array, ids and all, beside the page `id` and its whole `metadata`: read a page this way before editing it, and send its `version` back as the edit's baseVersion.
{"properties":{"blocks":{"description":"Return the stored blocks rather than prose, for an edit","type":"boolean"},"path":{"description":"The page's whole path ⟨46 unchanged words⟩
⟨8 unchanged words⟩ returned (default 250000, max 1000000)","maximum":1000000,"minimum":1000,"type":"number"},"paths":{"description" ⟨16 unchanged words⟩
⟨7 unchanged words⟩ days (default 7, max 30)","maximum":30,"minimum":1,"type":"number"},"limit":{"description":"Most pages returned (default 20, max 50)","maximum":50,"minimum":1,"type":"number"}},"type":"object"}
⟨3 unchanged words⟩ :"1-based page number (default 1)","minimum":1,"type":"number"},"pageSize":{"description":"Results per page (default 20, max 100)","maximum":100,"minimum":1,"type":"number"},"sort":{" ⟨31 unchanged words⟩
⟨22 unchanged words⟩ or its founder badge. Pass the body as `html`, one HTMLstring;stringitthat becomes a standard content block (headings, paragraphs, lists, tables)., or as `blocks`, the block tree the site's editor saves. To edit an existing page, read it with get_page and `blocks: true` on the DAO's MCP server, revise those blocks, and pass its `version` as `baseVersion`: a page someone else changed since is refused rather than overwritten. Requires the Bearer token from the `login` tool ⟨14 unchanged words⟩
{"properties":{"baseVersion":{"description":"The `version` get_page returned for the page you edited. Omit only for a new page.","type":"string"},"blocks":{"description":"Page body as the editor's block tree, e.g. [{ \"id\": \"<uuid>\", \"type\": \"content\", \"text\": \"<p>…</p>\" }]. Validated by the editor's own validator. Pass this or `html`.","items":{"type":"object"},"type":"array"},"daoId":{"description":"Cashtag of the DAO ⟨7 unchanged words⟩ "description":"Page body as HTML, e.g.<h2>…</h2><p>…</p><h2>…</h2><p>…</p>. Pass this or `blocks`.","type":"string"},"slug":{"description":"Page slug","type":"string"},"summary":{"description":"Edit summary for the page's history","type":"string"},"tagPath":{"description":"Optional tag path, ⟨16 unchanged words⟩ ,"required":["daoId","slug","title","html"],"type":"object"}
⟨3 unchanged words⟩ :"1-based page number (default 1)","minimum":1,"type":"number"},"pageSize":{"description":"Results per page (default 20, max 50)","maximum":50,"minimum":1,"type":"number"},"query":{" ⟨31 unchanged words⟩
⟨6 unchanged words⟩ by txHash. Kinds: create-caper, buy, sell, swap, proposal, vote,trigger.count, trigger, resolve, execute, activate-upgrade, exit, withdraw-founder, transfer-founder. The server verifies before mirroring anything: receipts are ⟨7 unchanged words⟩ refused, replays are idempotent). Context per kind:– create-caper,takesexit, withdraw-founder, transfer-founder: cashtag; proposaltakes: proposalId; count, trigger,takesresolve, execute, activate-upgrade: code (the P-… code). Requires the ⟨20 unchanged words⟩
{"properties":{"cashtag":{"description":"create-caper: the cashtag,soexittheandresponsethecanfounderconfirmkinds: therowcaper's cashtag","type":"string"},"code":{"description":"triggerthe cranks after the vote: the proposal's P-… code","type":" ⟨8 unchanged words⟩ ":["create-caper","buy","sell","swap","proposal","vote","count","trigger","resolve","execute","activate-upgrade","exit","withdraw-founder","transfer-founder"],"type":"string"},"proposalId": ⟨26 unchanged words⟩
Page history — A page's revisions in the Caper knowledge base, newest first: each one's `id`, version, change type, message, date and the blocks it changed. Address the page as get_page does. A revision `id` is what a restore takes, where this server has one. Defaults: limit 20 (max 100).
Write a DAO's About section — Write the About section on a DAO's own page: what the caper is for, who runs it and where to follow it. Holders only, the same gate as save_wiki_page. The section is replaced whole, so read the current one first: it is in the DAO's llms.txt and its MCP server's instructions. Pass the body as `html` or as `blocks`, as save_wiki_page takes them. Requires the Bearer token from the `login` tool, sent as an HTTP `Authorization: Bearer <token>` header on the POST carrying this call.
⟨11 unchanged words⟩ the row","type":"string"},"code":{"description":"trigger: the proposal's P-… code","type":"string"},"kind":{"description":"What the transaction did ⟨36 unchanged words⟩
The whole of the Caper knowledge base as one text document, for bulk ingestion.PREFLIGHTPreflightFIRSTfirst:call it withsizeOnly=trueto getreturns theexactcharacter count, a token estimate, the per-branch breakdown and the largestpages – the corpus is big enough to swamp a context window and one operational page exceeds 500 KB on its own.pages. Then pull it with `maxChars` (default 200000, max 1000000), ornarrow it with `tagPath` to takeone branch at atime.time with `tagPath`. Truncation is page-alignedand honest: `truncated`, `omittedPages` and `nextSkip` sayexactlywhere to resume (pass skip=nextSkip).If you only needFor a handful of pages,get_pages is cheaper.
⟨12 unchanged words⟩ :"number"},"sizeOnly":{"description":"Return sizesSizes and breakdowns only, no document. Do this ⟨8 unchanged words⟩ :{"description":"Resume from this page index– pass: the `nextSkip`fromof the previous truncated call (default 0)","type":"number"},"tagPath":{"description":"Restrict to oneOne branch and itsdescendants, e.g. \"desci\".descendants. Omit for everything.","type":"string"} ⟨2 unchanged words⟩
FullOnetextpage ofONEthepageCaper knowledge base inthefull:Caperitsknowledgetext,base.version, update date and metadata. Address it by `path` ("dao-governance/concepts/voting/quadratic-votingtag/path/slug"–, exactly the `path`fieldorthe`url`listingatoolslistingreturnreturns), or by `tagPath` +`slug`.`slug`;Useathiscategory'sonlyownforpathareadssingleitsknownhubpage:article.forNot a title. For 2 to 20 pages call get_pagesinstead,which isone round trip rather than N.Pass the path, not a page title.A missreturnsnamesnear-matchtheslugsnearest pages, so a wrong guess isrecoverablefixed in one retry. A page's URL with `.md` appended is its markdown.
{"properties":{"path":{"description":"FullThepagepage's whole path, e.g. \"governance/voting\developers/scrypto/blueprints\". Preferred overtagPath+slug.tagPath + slug.","type":"string"},"slug":{"description":"Pageslug, e.g. \"voting\".slug. Ignored when `path` is set.","type":"string"},"tagPath":{"description":"Tag path only, e.g. \"governance\"(\"\" for a top-level page). ⟨12 unchanged words⟩
Batch read:full text of1 to 20 pagesinof the Caper knowledge base inafullsingleincall.oneThiscall, which is howyouto read search or listingresults – calling get_page in a loop is the main way to waste round trips against this server.results. Pass `paths`exactlyas thelisting toolslistings return them. Paths that do not exist come back in `missing`insteadratherofthan failing the call,andanything pastthe 20-path cap comes back20 in `remaining`for a follow-up. Output,isandcappedpagesbypast `maxChars` (default 250000):pages past the cap are listedin `omitted` with theirsizes, never silently dropped. Check the `chars` field in a listing first if your context budget is tight – a single operational page here can exceed 500 KB.sizes.
{"properties":{"maxChars":{"description":"Totalcharacter budgetcharacters acrossreturnedthe pages returned (default 250000, max 1000000)","type":"number"},"paths":{"description":"Page paths,e.g. [\"economics/token-valuation\",1\"desci/desci-funding\"].to1-2020 percall.call","items":{"type":"string"}, ⟨6 unchanged words⟩
Pagesinof the Caper knowledge base edited within the last N days, newest first:–whatforto"whatpollchanged?",whennotyouforarefindingwatchingathetopicwiki(search_wiki)ratherorthan readingait.branchSame(list_pages).rows as list_pages. Defaults: days 7 (max 30), limit 20 (max 50). `truncated: true` means the limit cut thelist, not that the window is exhausted –list; raise`limit`it, or page throughlist_pages sorted by updatedAt. Returns summaries only; feed the `path` values to get_pages.list_pages.
⟨13 unchanged words⟩ :"number"},"limit":{"description":"MaxMost pages returned (default 20, max 50)" ⟨4 unchanged words⟩
Enumerate pages inBrowse the Caper knowledge base,newest first,byoptionallytagunderpathonerathertagthanpath.byUsekeyword:iteverytopagewalkunder a branchyou have already located (via get_categories,or thenewest`tagPath`firstonbyadefault.search`tagPath`hit);matchesusethesearch_wikibranchwhenandyoueverythingarebeneathhuntingit;aomitkeyword.it`tagPath`tomatcheswalk thebranchwholeandwiki.everythingSortbeneathbyittitle–for"daos"analsoA–Zreturnspass."daos/dexs/...".SameOmitrowsitastosearch_wiki,listwiththe`totalPages`,whole`hasMore`scope.and `nextPage`. Defaults:sort "updatedAt",page 1, pageSize 20 (max 100).Returns summaries only – pass the `path` values to get_pages for full text. `hasMore`/`nextPage` are the only truncation; nothing else is cut.
⟨34 unchanged words⟩ :"string"},"tagPath":{"description":"BranchThe branch to list, e.g.\"daos\"aorpath\"dao-governance/concepts\".fromPrefixget_categories.match,Includesincludesits descendants.","type":"string"}},"type":"object"}
Keyword search across the Caper knowledge base–: the first call when you know what you are looking for but not where it lives. Matchespagetitles and bodyprose. A distinctive keyword is still the best query, but a whole question now works too: if the literal text is not found anywhere, it falls back to English full-text matching, which stems words and drops stopwords. NOT semantic – it reduces your question to its keywordsprose,so it will not find a page that says "fee" when you asked about "cost". Rankedranked in four tiers: titles starting with the term,thentitles containing it,thenliteral body hits, then English full-text hits byrelevance. Returns summaries only, each with a `path`relevance,awhich`chars`stemsize,words anda 200-chardropsnippetstopwords.WINDOWEDNotONsemantic:THEoneMATCHdistinctive–wordthebeatssnippetashowssentence.youEachtherowpassagecarriesthatamatched`path`,soitsyousizecaninjudge`chars` and aresultsnippetwithoutwindowedopeningonit.theFeedmatch.thoseFeed`path`thevaluespaths to get_pages in onebatchedcall– do NOT loop get_page over the results. If you want structurerather thana keyword,loopingcallget_page.get_categoriesNarrow(taxonomy)withortagPathlist_pageswhen(awholetermbranch).is common. Defaults: page 1, pageSize 20 (max 50).;Keepkeep paging while `hasMore` is true.
⟨20 unchanged words⟩ number"},"query":{"description":"Searchterm.term,Onematcheddistinctiveagainstwordpageortitlesshortandphrasebodybeatstext","type":"string"},"tagPath":{"description":"Only pages at this tag path, e.g. asentence.path from get_categories","type":"string"}},"required": ⟨3 unchanged words⟩