Every change Wellknown observed on this MCP server, 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.
Changed the definition of "tradeSearch" and "watchCreate"
⟨23 unchanged words⟩ x402. - **Inputs:** `query` (required),and`limit` (1-25, default 10)., and the optional filters `launchpad` and `launchpadKind`. A filter narrows `results` only: `resolution`, ranks and flags are the unfiltered search's. - **Returns:** the matches, most relevant first. Each has its verification status, safety verdictsand, USDC and hubpools.pools, and `launch`, where the token was launched. Check verification and safety before you trade. A ⟨86 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"launchpad":{"description":"Only tokens whose launch.launchpad (launchpadKind: launch.kind) is one of these. A token not attributed yet (null) matches none. The filters narrow `results` only: `resolution`, ranks and flags are decided over every token the query matched.","items":{"enum":["argus","tolly","minara","o1","foci","feel-cash","doppler","wonk-fun","bulllaunch","ubi-fun","bonker","long-supply","lift","aka-fun","memespad","archemist","ramppad","arklis","bozo-fun","based-bid","ripples","basestonk","peach","spawn","radardex","dyor-fun","load-fun","ark-launch","pools-fun","moonarc","pools-xyz","bigshort","virtuals","ctrl-finance","tsukipad","arcstockpad","arcade","packed","coocoo","enso-pool","arcfun","frenlaunch","lunya","openlaunch","arch","arcpad","flipt","faze","noxa-fun","mercurifi","arclaunch","bullcheese","tokenlaunchpad-0xa790","curvehook-0x9270","solonpad","parabolarc","synthra-launchpad","bot-0x43d8","direct","unknown"],"type":"string"},"minItems":1,"type":"array"},"launchpadKind":{"description":"Only tokens whose launch.kind is one of these. A token not attributed yet (null) matches none. The filters narrow `results` only: `resolution`, ranks and flags are decided over every token the query matched.","items":{"enum":["launchpad","bot","protocol","direct","unknown"],"type":"string"},"minItems":1,"type":"array"},"limit":{"default":10,"maximum":25, ⟨15 unchanged words⟩
before
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"The box to add a watch to and the condition to watch. The payer must be this address.","properties":{"address":{"description":"The box's address: the agent's own address (an EOA or an EIP-7702 account), any letter case. The box is keyed by it, and a signed request must be signed by it.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"condition":{"anyOf":[{"additionalProperties":false,"description":"A token watch: a screen of one token. It names one `token` and fires once when that token comes to meet all of its `where` clauses, from the changes of the index that name it.","properties":{"kind":{"const":"token","description":"Fires when the named token comes to meet every clause.","type":"string"},"token":{"description":"The token's address. A lookalikes clause needs a verified token whose ticker group has a verification at trust 3 or better (circle_docs, project_site, manual or launchpad_official); any other token is refused.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"where":{"description":"One to eight clauses, all of which must hold (AND only), the same clauses a screen takes.","items":{"anyOf":[{"additionalProperties":false,"description":"A clause on the token's 24 hour volume in USD.","properties":{"field":{"const":"volume_24h","description":"The token's 24 hour volume in USD. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: 24 hour volume in USD.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"volume_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct traders in the last 24 hours.","properties":{"field":{"const":"traders_24h","description":"The token's number of distinct traders in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct traders in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"traders_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of trades in the last 24 hours.","properties":{"field":{"const":"trades_24h","description":"The token's number of trades in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of trades in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"trades_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of sells in the last 24 hours.","properties":{"field":{"const":"sells_24h","description":"The token's number of sells in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of sells in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sells_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct sellers in the last 24 hours.","properties":{"field":{"const":"sellers_24h","description":"The token's number of distinct sellers in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct sellers in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sellers_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's share of the 24 hour volume held by the top trader, from 0 to 1.","properties":{"field":{"const":"top_trader_share_24h","description":"The token's share of the 24 hour volume held by the top trader, from 0 to 1. Follows the index stream. A token with no trades in the window has no share, and a clause on an unknown share never holds.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: share of the 24 hour volume held by the top trader, from 0 to 1.","maximum":1,"minimum":0,"type":"number"}},"required":["field","op","value"],"title":"top_trader_share_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's USD depth within 2% of the price.","properties":{"field":{"const":"depth_2pct_usd","description":"The token's USD depth within 2% of the price. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and an unknown depth never matches. A lower-bound reading never satisfies lt or lte.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: USD depth within 2% of the price.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"depth_2pct_usd","type":"object"},{"additionalProperties":false,"description":"A clause on the token's age of the token in hours.","properties":{"field":{"const":"age_hours","description":"The token's age of the token in hours. Read only when a change names the token: passing time alone never re-evaluates a screen, so a token that crosses an age line while quiet is seen at its next change. For a token no indexed launchpad created, age counts from the earlier of its earliest pool creation, counted only once every pool it has has a creation time, and the first trade the index saw when that trade first brought the token into the index; a token with neither known has no age, which never matches.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: age of the token in hours.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"age_hours","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one value.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and with the safety queue disabled an unknown verdict never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"}},"required":["field","op","value"],"title":"safety_verdict eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one of several values.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and with the safety queue disabled an unknown verdict never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","items":{"enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"},"maxItems":8,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"safety_verdict in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one value.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of curve, graduated, pool_only, unsupported.","enum":["curve","graduated","pool_only","unsupported"],"type":"string"}},"required":["field","op","value"],"title":"launch_state eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one of several values.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of curve, graduated, pool_only, unsupported.","items":{"enum":["curve","graduated","pool_only","unsupported"],"type":"string"},"maxItems":4,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launch_state in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one value.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A token no launchpad created reads direct.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of argus, o1, minara, tolly, foci, direct.","enum":["argus","o1","minara","tolly","foci","direct"],"type":"string"}},"required":["field","op","value"],"title":"launchpad eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one of several values.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A token no launchpad created reads direct.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of argus, o1, minara, tolly, foci, direct.","items":{"enum":["argus","o1","minara","tolly","foci","direct"],"type":"string"},"maxItems":6,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launchpad in","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's pool count moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. A pinned asset (USDC, EURC, ...) never changes: its pools are not reported as changes.","properties":{"field":{"const":"pools","description":"The token's pool count. Follows the index stream: the number of pools the token trades in.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["field","op"],"title":"pools changes","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's count of lookalikes of its ticker group moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. Token watch only, and the only clause of its watch. The token must be one whose ticker group has a verification at trust 3 or better (circle_docs, project_site, manual or launchpad_official), the only groups lookalikes are found for: a token that is not verified, or whose group has no such verification, is refused.","properties":{"field":{"const":"lookalikes","description":"The token's count of lookalikes of its ticker group. Follows the index stream: the number of tokens that imitate the token's verified ticker group.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["field","op"],"title":"lookalikes changes","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's primary-route sell-check verdict moved from its baseline (the verdict differs). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and with the safety queue disabled an unknown verdict never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the verdict differs). It takes no value.","type":"string"}},"required":["field","op"],"title":"safety_verdict changes","type":"object"}],"description":"One typed clause on a token field."},"maxItems":8,"minItems":1,"type":"array"}},"required":["kind","token","where"],"type":"object"},{"additionalProperties":false,"description":"A screen: names no token. It watches every token the index reports and fires for each token that comes to meet all of its `where` clauses, found from the index's change stream.","properties":{"kind":{"const":"screen","description":"Fires for any token the index reports that comes to meet every clause, not for one named token.","type":"string"},"where":{"description":"One to eight clauses, all of which must hold (AND only). Only tokens a change of the index names are evaluated, from the moment the watch is created: a token already matching fires the next time the index reports it.","items":{"anyOf":[{"additionalProperties":false,"description":"A clause on the token's 24 hour volume in USD.","properties":{"field":{"const":"volume_24h","description":"The token's 24 hour volume in USD. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: 24 hour volume in USD.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"volume_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct traders in the last 24 hours.","properties":{"field":{"const":"traders_24h","description":"The token's number of distinct traders in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct traders in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"traders_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of trades in the last 24 hours.","properties":{"field":{"const":"trades_24h","description":"The token's number of trades in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of trades in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"trades_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of sells in the last 24 hours.","properties":{"field":{"const":"sells_24h","description":"The token's number of sells in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of sells in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sells_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct sellers in the last 24 hours.","properties":{"field":{"const":"sellers_24h","description":"The token's number of distinct sellers in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct sellers in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sellers_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's share of the 24 hour volume held by the top trader, from 0 to 1.","properties":{"field":{"const":"top_trader_share_24h","description":"The token's share of the 24 hour volume held by the top trader, from 0 to 1. Follows the index stream. A token with no trades in the window has no share, and a clause on an unknown share never holds.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: share of the 24 hour volume held by the top trader, from 0 to 1.","maximum":1,"minimum":0,"type":"number"}},"required":["field","op","value"],"title":"top_trader_share_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's USD depth within 2% of the price.","properties":{"field":{"const":"depth_2pct_usd","description":"The token's USD depth within 2% of the price. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and an unknown depth never matches. A lower-bound reading never satisfies lt or lte.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: USD depth within 2% of the price.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"depth_2pct_usd","type":"object"},{"additionalProperties":false,"description":"A clause on the token's age of the token in hours.","properties":{"field":{"const":"age_hours","description":"The token's age of the token in hours. Read only when a change names the token: passing time alone never re-evaluates a screen, so a token that crosses an age line while quiet is seen at its next change. For a token no indexed launchpad created, age counts from the earlier of its earliest pool creation, counted only once every pool it has has a creation time, and the first trade the index saw when that trade first brought the token into the index; a token with neither known has no age, which never matches.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: age of the token in hours.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"age_hours","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one value.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and with the safety queue disabled an unknown verdict never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"}},"required":["field","op","value"],"title":"safety_verdict eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one of several values.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and with the safety queue disabled an unknown verdict never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","items":{"enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"},"maxItems":8,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"safety_verdict in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one value.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of curve, graduated, pool_only, unsupported.","enum":["curve","graduated","pool_only","unsupported"],"type":"string"}},"required":["field","op","value"],"title":"launch_state eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one of several values.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of curve, graduated, pool_only, unsupported.","items":{"enum":["curve","graduated","pool_only","unsupported"],"type":"string"},"maxItems":4,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launch_state in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one value.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A token no launchpad created reads direct.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of argus, o1, minara, tolly, foci, direct.","enum":["argus","o1","minara","tolly","foci","direct"],"type":"string"}},"required":["field","op","value"],"title":"launchpad eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one of several values.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A token no launchpad created reads direct.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of argus, o1, minara, tolly, foci, direct.","items":{"enum":["argus","o1","minara","tolly","foci","direct"],"type":"string"},"maxItems":6,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launchpad in","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's pool count moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. A pinned asset (USDC, EURC, ...) never changes: its pools are not reported as changes.","properties":{"field":{"const":"pools","description":"The token's pool count. Follows the index stream: the number of pools the token trades in.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["field","op"],"title":"pools changes","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's count of lookalikes of its ticker group moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. Token watch only, and the only clause of its watch. The token must be one whose ticker group has a verification at trust 3 or better (circle_docs, project_site, manual or launchpad_official), the only groups lookalikes are found for: a token that is not verified, or whose group has no such verification, is refused.","properties":{"field":{"const":"lookalikes","description":"The token's count of lookalikes of its ticker group. Follows the index stream: the number of tokens that imitate the token's verified ticker group.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["field","op"],"title":"lookalikes changes","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's primary-route sell-check verdict moved from its baseline (the verdict differs). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Known only for tokens arcgate has checked: a watch requests a check for a token that meets its other clauses, and with the safety queue disabled an unknown verdict never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the verdict differs). It takes no value.","type":"string"}},"required":["field","op"],"title":"safety_verdict changes","type":"object"}],"description":"One typed clause on a token field."},"maxItems":8,"minItems":1,"type":"array"}},"required":["kind","where"],"type":"object"},{"additionalProperties":false,"description":"An agent screen: names no agent. It watches every agent of the chain's directory and fires for each one that is registered after the watch was made, or changes, and meets every `where` clause.","properties":{"chainId":{"description":"The chain whose directory to watch: the one chain this deployment serves (5042, Arc mainnet). Any other is refused.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"kind":{"const":"agents","description":"Fires for any agent of the chain's directory that is registered or changes, not for one named agent.","type":"string"},"on":{"description":"What fires the watch, one or more of registered (an agent registered after this watch was made) and updated (an agent's data changed). Omitted: both.","items":{"enum":["registered","updated"],"type":"string"},"minItems":1,"type":"array"},"where":{"description":"Up to eight clauses, all of which must hold (AND only), the directory search's own filters. At most one query clause and one fetchStatus clause. Omitted or empty: every agent.","items":{"anyOf":[{"additionalProperties":false,"description":"A clause that the agent declares one capability. Several of them all must hold.","properties":{"field":{"const":"capabilities","description":"The agent's declared capabilities, from its last good registration file.","type":"string"},"op":{"const":"has","description":"has: the agent declares this capability.","type":"string"},"value":{"additionalProperties":false,"description":"The capability the agent must declare: its kind and its name, matched case-insensitively and exactly, as the directory search takes it.","properties":{"kind":{"description":"What the registration file declares: an MCP tool, an A2A skill, an OASF skill or an OASF domain.","enum":["mcp_tool","a2a_skill","oasf_skill","oasf_domain"],"type":"string"},"value":{"description":"The tool, skill or domain name, matched case-insensitively and exactly.","maxLength":200,"minLength":1,"type":"string"}},"required":["kind","value"],"type":"object"}},"required":["field","op","value"],"title":"capabilities has","type":"object"},{"additionalProperties":false,"description":"A clause that the agent declares one protocol. Several of them all must hold. x402 support is `protocols has x402`.","properties":{"field":{"const":"protocols","description":"The protocols the agent declares: MCP or A2A as a service of its registration file, x402 as its x402Support flag.","type":"string"},"op":{"const":"has","description":"has: the agent declares this protocol.","type":"string"},"value":{"description":"The protocol the agent must declare. One of MCP, A2A, x402.","enum":["MCP","A2A","x402"],"type":"string"}},"required":["field","op","value"],"title":"protocols has","type":"object"},{"additionalProperties":false,"description":"A clause that the registration file's fetch state is one value. At most one per screen.","properties":{"field":{"const":"fetchStatus","description":"The state of the agent's registration file fetch.","type":"string"},"op":{"const":"eq","description":"eq: the fetch state is exactly the value.","type":"string"},"value":{"description":"The fetch state the agent must be in. One of fetched, failed, never_fetched.","enum":["fetched","failed","never_fetched"],"type":"string"}},"required":["field","op","value"],"title":"fetchStatus eq","type":"object"},{"additionalProperties":false,"description":"A clause that the agent's name or description contains some text. At most one per screen.","properties":{"field":{"const":"query","description":"The name and description of the agent's last good registration file.","type":"string"},"op":{"const":"contains","description":"contains: the text is a case-insensitive substring of the name or the description, no wildcards.","type":"string"},"value":{"description":"The text to look for.","maxLength":200,"minLength":1,"type":"string"}},"required":["field","op","value"],"title":"query contains","type":"object"}],"description":"One typed clause on an agent, the same filters the directory search takes."},"maxItems":8,"type":"array"}},"required":["kind","chainId"],"type":"object"},{"additionalProperties":false,"description":"An agent watch: it names one agent and fires when one of the `on` kinds happens to it: its data changes, its owner or payment wallet changes, its registration file URI changes, it receives feedback, or its registration file is fetched or fails to be.","properties":{"agentId":{"description":"The agent's token id in the chain's IdentityRegistry. An agent the directory does not hold is refused as agent_not_found.","maximum":9007199254740991,"minimum":0,"type":"integer"},"chainId":{"description":"The chain the agent is registered on: the one chain this deployment serves (5042, Arc mainnet). Any other is refused.","exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"kind":{"const":"agent","description":"Fires when the named agent changes.","type":"string"},"on":{"description":"What fires the watch, one or more of updated, owner_changed, wallet_changed, uri_changed, feedback, fetch_failed, fetch_ok. Omitted: every kind.","items":{"enum":["updated","owner_changed","wallet_changed","uri_changed","feedback","fetch_failed","fetch_ok"],"type":"string"},"minItems":1,"type":"array"}},"required":["kind","chainId","agentId"],"type":"object"}],"description":"What a watch waits for, one of four types. A token watch (TokenWatchCondition) is a screen of one named token, and a screen (ScreenWatchCondition) is over every token: both take the same token `where` clauses and fire once when the condition becomes true. An agent screen (AgentsWatchCondition) is over every agent of the directory and an agent watch (AgentWatchCondition) is over one named agent: both fire on a change to an agent."}},"required":["address","condition"],"type":"object"}Recently observed → Live
First tool surface recorded: 32 tools (server version 0.1.0)
https://api.arcgate.dev/mcp (mcp_streamable_http) — from mcp_registry
Live → Recently observed
Certificate recorded, valid to 2026-12-25
Authorization not required
Unknown → Live
First tool surface recorded: 7 tools (server version 0.1.0)
https://api.arcgate.dev/trade/v1/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 10 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
after
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"The box to add a watch to and the condition to watch. The payer must be this address.","properties":{"address":{"description":"The box's address: the agent's own address (an EOA or an EIP-7702 account), any letter case. The box is keyed by it, and a signed request must be signed by it.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"condition":{"anyOf":[{"additionalProperties":false,"description":"A token watch: a screen of one token. It names one `token` and fires once when that token comes to meet all of its `where` clauses, from the changes of the index that name it.","properties":{"kind":{"const":"token","description":"Fires when the named token comes to meet every clause.","type":"string"},"token":{"description":"The token's address. A lookalikes clause needs a verified token whose ticker group has a verification at trust 3 or better (circle_docs, project_site, manual or launchpad_official); any other token is refused.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string"},"where":{"description":"One to eight clauses, all of which must hold (AND only), the same clauses a screen takes.","items":{"anyOf":[{"additionalProperties":false,"description":"A clause on the token's 24 hour volume in USD.","properties":{"field":{"const":"volume_24h","description":"The token's 24 hour volume in USD. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: 24 hour volume in USD.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"volume_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct traders in the last 24 hours.","properties":{"field":{"const":"traders_24h","description":"The token's number of distinct traders in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct traders in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"traders_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of trades in the last 24 hours.","properties":{"field":{"const":"trades_24h","description":"The token's number of trades in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of trades in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"trades_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of sells in the last 24 hours.","properties":{"field":{"const":"sells_24h","description":"The token's number of sells in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of sells in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sells_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct sellers in the last 24 hours.","properties":{"field":{"const":"sellers_24h","description":"The token's number of distinct sellers in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct sellers in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sellers_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's share of the 24 hour volume held by the top trader, from 0 to 1.","properties":{"field":{"const":"top_trader_share_24h","description":"The token's share of the 24 hour volume held by the top trader, from 0 to 1. Follows the index stream. A token with no trades in the window has no share, and a clause on an unknown share never holds.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: share of the 24 hour volume held by the top trader, from 0 to 1.","maximum":1,"minimum":0,"type":"number"}},"required":["field","op","value"],"title":"top_trader_share_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's USD depth within 2% of the price.","properties":{"field":{"const":"depth_2pct_usd","description":"The token's USD depth within 2% of the price. Measured before a watch sees a new token that has a USDC pool, and again when a search or quote measures the token. A token with no USDC pool, or whose check did not answer within its window, reads null, which never matches. A lower-bound reading never satisfies lt or lte.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: USD depth within 2% of the price.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"depth_2pct_usd","type":"object"},{"additionalProperties":false,"description":"A clause on the token's age of the token in hours.","properties":{"field":{"const":"age_hours","description":"The token's age of the token in hours. Read only when a change names the token: passing time alone never re-evaluates a screen, so a token that crosses an age line while quiet is seen at its next change. Age counts from the token's creation time, Etherscan's when a launchpad did not create it. Only when no creation record arrived does it count from the earlier of its earliest pool creation, counted only once every pool it has has a creation time, and the first trade the index saw when that trade first brought the token into the index; a token with neither known has no age, which never matches.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: age of the token in hours.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"age_hours","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one value.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Measured before a watch sees a new token that has a USDC pool, and again when a search or quote measures the token. A token with no USDC pool, or whose check did not answer within its window, reads null, which never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"}},"required":["field","op","value"],"title":"safety_verdict eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one of several values.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Measured before a watch sees a new token that has a USDC pool, and again when a search or quote measures the token. A token with no USDC pool, or whose check did not answer within its window, reads null, which never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","items":{"enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"},"maxItems":8,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"safety_verdict in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one value.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of curve, graduated, pool_only, unsupported.","enum":["curve","graduated","pool_only","unsupported"],"type":"string"}},"required":["field","op","value"],"title":"launch_state eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one of several values.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of curve, graduated, pool_only, unsupported.","items":{"enum":["curve","graduated","pool_only","unsupported"],"type":"string"},"maxItems":4,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launch_state in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one value.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A registry id, direct (deployed without a launchpad, either because Etherscan's creation record shows an externally owned account deployed the token itself, or because arcgate recorded it so before attribution, as it did USDC and the other pinned assets) or unknown (a contract no registry entry names deployed it, or no creation record arrived in time). A token arcgate has not attributed yet reads null, which never matches: a new token reaches watches once it is attributed, and an older token attributed later by a correction is evaluated at its next trade or verdict change.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of argus, tolly, minara, o1, foci, feel-cash, doppler, wonk-fun, bulllaunch, ubi-fun, bonker, long-supply, lift, aka-fun, memespad, archemist, ramppad, arklis, bozo-fun, based-bid, ripples, basestonk, peach, spawn, radardex, dyor-fun, load-fun, ark-launch, pools-fun, moonarc, pools-xyz, bigshort, virtuals, ctrl-finance, tsukipad, arcstockpad, arcade, packed, coocoo, enso-pool, arcfun, frenlaunch, lunya, openlaunch, arch, arcpad, flipt, faze, noxa-fun, mercurifi, arclaunch, bullcheese, tokenlaunchpad-0xa790, curvehook-0x9270, solonpad, parabolarc, synthra-launchpad, bot-0x43d8, direct, unknown.","enum":["argus","tolly","minara","o1","foci","feel-cash","doppler","wonk-fun","bulllaunch","ubi-fun","bonker","long-supply","lift","aka-fun","memespad","archemist","ramppad","arklis","bozo-fun","based-bid","ripples","basestonk","peach","spawn","radardex","dyor-fun","load-fun","ark-launch","pools-fun","moonarc","pools-xyz","bigshort","virtuals","ctrl-finance","tsukipad","arcstockpad","arcade","packed","coocoo","enso-pool","arcfun","frenlaunch","lunya","openlaunch","arch","arcpad","flipt","faze","noxa-fun","mercurifi","arclaunch","bullcheese","tokenlaunchpad-0xa790","curvehook-0x9270","solonpad","parabolarc","synthra-launchpad","bot-0x43d8","direct","unknown"],"type":"string"}},"required":["field","op","value"],"title":"launchpad eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one of several values.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A registry id, direct (deployed without a launchpad, either because Etherscan's creation record shows an externally owned account deployed the token itself, or because arcgate recorded it so before attribution, as it did USDC and the other pinned assets) or unknown (a contract no registry entry names deployed it, or no creation record arrived in time). A token arcgate has not attributed yet reads null, which never matches: a new token reaches watches once it is attributed, and an older token attributed later by a correction is evaluated at its next trade or verdict change.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of argus, tolly, minara, o1, foci, feel-cash, doppler, wonk-fun, bulllaunch, ubi-fun, bonker, long-supply, lift, aka-fun, memespad, archemist, ramppad, arklis, bozo-fun, based-bid, ripples, basestonk, peach, spawn, radardex, dyor-fun, load-fun, ark-launch, pools-fun, moonarc, pools-xyz, bigshort, virtuals, ctrl-finance, tsukipad, arcstockpad, arcade, packed, coocoo, enso-pool, arcfun, frenlaunch, lunya, openlaunch, arch, arcpad, flipt, faze, noxa-fun, mercurifi, arclaunch, bullcheese, tokenlaunchpad-0xa790, curvehook-0x9270, solonpad, parabolarc, synthra-launchpad, bot-0x43d8, direct, unknown.","items":{"enum":["argus","tolly","minara","o1","foci","feel-cash","doppler","wonk-fun","bulllaunch","ubi-fun","bonker","long-supply","lift","aka-fun","memespad","archemist","ramppad","arklis","bozo-fun","based-bid","ripples","basestonk","peach","spawn","radardex","dyor-fun","load-fun","ark-launch","pools-fun","moonarc","pools-xyz","bigshort","virtuals","ctrl-finance","tsukipad","arcstockpad","arcade","packed","coocoo","enso-pool","arcfun","frenlaunch","lunya","openlaunch","arch","arcpad","flipt","faze","noxa-fun","mercurifi","arclaunch","bullcheese","tokenlaunchpad-0xa790","curvehook-0x9270","solonpad","parabolarc","synthra-launchpad","bot-0x43d8","direct","unknown"],"type":"string"},"maxItems":60,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launchpad in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad kind is one value.","properties":{"field":{"const":"launchpad_kind","description":"The token's launchpad kind. Follows the index stream. The kind of the token's launchpad: launchpad, bot (a deployer of copies) or protocol, or direct or unknown as its launchpad is. A token not attributed yet reads null, which never matches.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of launchpad, bot, protocol, direct, unknown.","enum":["launchpad","bot","protocol","direct","unknown"],"type":"string"}},"required":["field","op","value"],"title":"launchpad_kind eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad kind is one of several values.","properties":{"field":{"const":"launchpad_kind","description":"The token's launchpad kind. Follows the index stream. The kind of the token's launchpad: launchpad, bot (a deployer of copies) or protocol, or direct or unknown as its launchpad is. A token not attributed yet reads null, which never matches.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of launchpad, bot, protocol, direct, unknown.","items":{"enum":["launchpad","bot","protocol","direct","unknown"],"type":"string"},"maxItems":5,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launchpad_kind in","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's pool count moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. A pinned asset (USDC, EURC, ...) never changes: its pools are not reported as changes.","properties":{"field":{"const":"pools","description":"The token's pool count. Follows the index stream: the number of pools the token trades in.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["field","op"],"title":"pools changes","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's count of lookalikes of its ticker group moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. Token watch only, and the only clause of its watch. The token must be one whose ticker group has a verification at trust 3 or better (circle_docs, project_site, manual or launchpad_official), the only groups lookalikes are found for: a token that is not verified, or whose group has no such verification, is refused.","properties":{"field":{"const":"lookalikes","description":"The token's count of lookalikes of its ticker group. Follows the index stream: the number of tokens that imitate the token's verified ticker group.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["field","op"],"title":"lookalikes changes","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's primary-route sell-check verdict moved from its baseline (the verdict differs). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Measured before a watch sees a new token that has a USDC pool, and again when a search or quote measures the token. A token with no USDC pool, or whose check did not answer within its window, reads null, which never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the verdict differs). It takes no value.","type":"string"}},"required":["field","op"],"title":"safety_verdict changes","type":"object"}],"description":"One typed clause on a token field."},"maxItems":8,"minItems":1,"type":"array"}},"required":["kind","token","where"],"type":"object"},{"additionalProperties":false,"description":"A screen: names no token. It watches every token the index reports and fires for each token that comes to meet all of its `where` clauses, found from the index's change stream.","properties":{"kind":{"const":"screen","description":"Fires for any token the index reports that comes to meet every clause, not for one named token.","type":"string"},"where":{"description":"One to eight clauses, all of which must hold (AND only). Only tokens a change of the index names are evaluated, from the moment the watch is created: a token already matching fires the next time the index reports it.","items":{"anyOf":[{"additionalProperties":false,"description":"A clause on the token's 24 hour volume in USD.","properties":{"field":{"const":"volume_24h","description":"The token's 24 hour volume in USD. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: 24 hour volume in USD.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"volume_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct traders in the last 24 hours.","properties":{"field":{"const":"traders_24h","description":"The token's number of distinct traders in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct traders in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"traders_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of trades in the last 24 hours.","properties":{"field":{"const":"trades_24h","description":"The token's number of trades in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of trades in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"trades_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of sells in the last 24 hours.","properties":{"field":{"const":"sells_24h","description":"The token's number of sells in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of sells in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sells_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's number of distinct sellers in the last 24 hours.","properties":{"field":{"const":"sellers_24h","description":"The token's number of distinct sellers in the last 24 hours. Follows the index stream: a token with no stats row reads 0.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: number of distinct sellers in the last 24 hours.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["field","op","value"],"title":"sellers_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's share of the 24 hour volume held by the top trader, from 0 to 1.","properties":{"field":{"const":"top_trader_share_24h","description":"The token's share of the 24 hour volume held by the top trader, from 0 to 1. Follows the index stream. A token with no trades in the window has no share, and a clause on an unknown share never holds.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: share of the 24 hour volume held by the top trader, from 0 to 1.","maximum":1,"minimum":0,"type":"number"}},"required":["field","op","value"],"title":"top_trader_share_24h","type":"object"},{"additionalProperties":false,"description":"A clause on the token's USD depth within 2% of the price.","properties":{"field":{"const":"depth_2pct_usd","description":"The token's USD depth within 2% of the price. Measured before a watch sees a new token that has a USDC pool, and again when a search or quote measures the token. A token with no USDC pool, or whose check did not answer within its window, reads null, which never matches. A lower-bound reading never satisfies lt or lte.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: USD depth within 2% of the price.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"depth_2pct_usd","type":"object"},{"additionalProperties":false,"description":"A clause on the token's age of the token in hours.","properties":{"field":{"const":"age_hours","description":"The token's age of the token in hours. Read only when a change names the token: passing time alone never re-evaluates a screen, so a token that crosses an age line while quiet is seen at its next change. Age counts from the token's creation time, Etherscan's when a launchpad did not create it. Only when no creation record arrived does it count from the earlier of its earliest pool creation, counted only once every pool it has has a creation time, and the first trade the index saw when that trade first brought the token into the index; a token with neither known has no age, which never matches.","type":"string"},"op":{"description":"gt: greater than, gte: at least, lt: less than, lte: at most. A token whose figure is unknown never satisfies it.","enum":["gt","gte","lt","lte"],"type":"string"},"value":{"description":"The line, in the figure's own unit: age of the token in hours.","minimum":0,"type":"number"}},"required":["field","op","value"],"title":"age_hours","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one value.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Measured before a watch sees a new token that has a USDC pool, and again when a search or quote measures the token. A token with no USDC pool, or whose check did not answer within its window, reads null, which never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"}},"required":["field","op","value"],"title":"safety_verdict eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's primary-route sell-check verdict is one of several values.","properties":{"field":{"const":"safety_verdict","description":"The token's primary-route sell-check verdict. Measured before a watch sees a new token that has a USDC pool, and again when a search or quote measures the token. A token with no USDC pool, or whose check did not answer within its window, reads null, which never matches. Launchpad meme coins usually carry a fixed buy and sell tax, so a sellable one is most often taxed, not ok: use in [ok, taxed] to keep them, and eq ok only to leave every taxed token out.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of ok, taxed, illiquid, size_limited, insufficient_liquidity, inconclusive, cannot_sell, buy_reverts.","items":{"enum":["ok","taxed","illiquid","size_limited","insufficient_liquidity","inconclusive","cannot_sell","buy_reverts"],"type":"string"},"maxItems":8,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"safety_verdict in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one value.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of curve, graduated, pool_only, unsupported.","enum":["curve","graduated","pool_only","unsupported"],"type":"string"}},"required":["field","op","value"],"title":"launch_state eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launch state is one of several values.","properties":{"field":{"const":"launch_state","description":"The token's launch state. Follows the index stream.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of curve, graduated, pool_only, unsupported.","items":{"enum":["curve","graduated","pool_only","unsupported"],"type":"string"},"maxItems":4,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launch_state in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one value.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A registry id, direct (deployed without a launchpad, either because Etherscan's creation record shows an externally owned account deployed the token itself, or because arcgate recorded it so before attribution, as it did USDC and the other pinned assets) or unknown (a contract no registry entry names deployed it, or no creation record arrived in time). A token arcgate has not attributed yet reads null, which never matches: a new token reaches watches once it is attributed, and an older token attributed later by a correction is evaluated at its next trade or verdict change.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of argus, tolly, minara, o1, foci, feel-cash, doppler, wonk-fun, bulllaunch, ubi-fun, bonker, long-supply, lift, aka-fun, memespad, archemist, ramppad, arklis, bozo-fun, based-bid, ripples, basestonk, peach, spawn, radardex, dyor-fun, load-fun, ark-launch, pools-fun, moonarc, pools-xyz, bigshort, virtuals, ctrl-finance, tsukipad, arcstockpad, arcade, packed, coocoo, enso-pool, arcfun, frenlaunch, lunya, openlaunch, arch, arcpad, flipt, faze, noxa-fun, mercurifi, arclaunch, bullcheese, tokenlaunchpad-0xa790, curvehook-0x9270, solonpad, parabolarc, synthra-launchpad, bot-0x43d8, direct, unknown.","enum":["argus","tolly","minara","o1","foci","feel-cash","doppler","wonk-fun","bulllaunch","ubi-fun","bonker","long-supply","lift","aka-fun","memespad","archemist","ramppad","arklis","bozo-fun","based-bid","ripples","basestonk","peach","spawn","radardex","dyor-fun","load-fun","ark-launch","pools-fun","moonarc","pools-xyz","bigshort","virtuals","ctrl-finance","tsukipad","arcstockpad","arcade","packed","coocoo","enso-pool","arcfun","frenlaunch","lunya","openlaunch","arch","arcpad","flipt","faze","noxa-fun","mercurifi","arclaunch","bullcheese","tokenlaunchpad-0xa790","curvehook-0x9270","solonpad","parabolarc","synthra-launchpad","bot-0x43d8","direct","unknown"],"type":"string"}},"required":["field","op","value"],"title":"launchpad eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad is one of several values.","properties":{"field":{"const":"launchpad","description":"The token's launchpad. Follows the index stream. A registry id, direct (deployed without a launchpad, either because Etherscan's creation record shows an externally owned account deployed the token itself, or because arcgate recorded it so before attribution, as it did USDC and the other pinned assets) or unknown (a contract no registry entry names deployed it, or no creation record arrived in time). A token arcgate has not attributed yet reads null, which never matches: a new token reaches watches once it is attributed, and an older token attributed later by a correction is evaluated at its next trade or verdict change.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of argus, tolly, minara, o1, foci, feel-cash, doppler, wonk-fun, bulllaunch, ubi-fun, bonker, long-supply, lift, aka-fun, memespad, archemist, ramppad, arklis, bozo-fun, based-bid, ripples, basestonk, peach, spawn, radardex, dyor-fun, load-fun, ark-launch, pools-fun, moonarc, pools-xyz, bigshort, virtuals, ctrl-finance, tsukipad, arcstockpad, arcade, packed, coocoo, enso-pool, arcfun, frenlaunch, lunya, openlaunch, arch, arcpad, flipt, faze, noxa-fun, mercurifi, arclaunch, bullcheese, tokenlaunchpad-0xa790, curvehook-0x9270, solonpad, parabolarc, synthra-launchpad, bot-0x43d8, direct, unknown.","items":{"enum":["argus","tolly","minara","o1","foci","feel-cash","doppler","wonk-fun","bulllaunch","ubi-fun","bonker","long-supply","lift","aka-fun","memespad","archemist","ramppad","arklis","bozo-fun","based-bid","ripples","basestonk","peach","spawn","radardex","dyor-fun","load-fun","ark-launch","pools-fun","moonarc","pools-xyz","bigshort","virtuals","ctrl-finance","tsukipad","arcstockpad","arcade","packed","coocoo","enso-pool","arcfun","frenlaunch","lunya","openlaunch","arch","arcpad","flipt","faze","noxa-fun","mercurifi","arclaunch","bullcheese","tokenlaunchpad-0xa790","curvehook-0x9270","solonpad","parabolarc","synthra-launchpad","bot-0x43d8","direct","unknown"],"type":"string"},"maxItems":60,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launchpad in","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad kind is one value.","properties":{"field":{"const":"launchpad_kind","description":"The token's launchpad kind. Follows the index stream. The kind of the token's launchpad: launchpad, bot (a deployer of copies) or protocol, or direct or unknown as its launchpad is. A token not attributed yet reads null, which never matches.","type":"string"},"op":{"const":"eq","description":"eq: the field is exactly the value.","type":"string"},"value":{"description":"The value the field must be. One of launchpad, bot, protocol, direct, unknown.","enum":["launchpad","bot","protocol","direct","unknown"],"type":"string"}},"required":["field","op","value"],"title":"launchpad_kind eq","type":"object"},{"additionalProperties":false,"description":"A clause that the token's launchpad kind is one of several values.","properties":{"field":{"const":"launchpad_kind","description":"The token's launchpad kind. Follows the index stream. The kind of the token's launchpad: launchpad, bot (a deployer of copies) or protocol, or direct or unknown as its launchpad is. A token not attributed yet reads null, which never matches.","type":"string"},"op":{"const":"in","description":"in: the field is one of the values.","type":"string"},"value":{"description":"The values the field may be. One or more of launchpad, bot, protocol, direct, unknown.","items":{"enum":["launchpad","bot","protocol","direct","unknown"],"type":"string"},"maxItems":5,"minItems":1,"type":"array"}},"required":["field","op","value"],"title":"launchpad_kind in","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's pool count moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. A pinned asset (USDC, EURC, ...) never changes: its pools are not reported as changes.","properties":{"field":{"const":"pools","description":"The token's pool count. Follows the index stream: the number of pools the token trades in.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["field","op"],"title":"pools changes","type":"object"},{"additionalProperties":false,"description":"A clause that holds on the evaluation where the token's count of lookalikes of its ticker group moved from its baseline (the count went up). The first reading records the baseline and does not fire, and a null reading is no observation. On a screen it needs a state clause beside it, a baseline is kept only for a token meeting the state clauses, and a token that enters them and changes in the same batch is seen at its next change. Token watch only, and the only clause of its watch. The token must be one whose ticker group has a verification at trust 3 or better (circle_docs, project_site, manual or launchpad_official), the only groups lookalikes are found for: a token that is not verified, or whose group has no such verification, is refused.","properties":{"field":{"const":"lookalikes","description":"The token's count of lookalikes of its ticker group. Follows the index stream: the number of tokens that imitate the token's verified ticker group.","type":"string"},"op":{"const":"changes","description":"changes: the field moved from its baseline (the count went up). It takes no value.","type":"string"}},"required":["f…