Release 010
CurrentRelease 010 · VEX 0.2.7
The agent learns to show its work.
Eighteen market tools that read what the DexScreener site reads, a Board that puts the analysis on screen, and a first look at Vex Studio. Around them: two themes for the app, Solana balances read straight from the chain, and a validation fix that makes every refusal say why.
This page summarizes the work merged since 0.2.6: 164 commits across three arcs and a full redesign of the desktop shell.
Protocol release · DexScreener, read-only
18
Market tools that read the same channels the DexScreener website itself renders. Every one was probed live before a line of adapter code was written, and none of them can quote, sign or execute anything.

01 · Market data
Eighteen tools that read what the site reads.
The agent no longer talks to the public DexScreener API. Its eighteen read-only tools read the channels the website itself renders, including fields the public API never carried, and every answer says where it came from and when.
The tools read the site, not the public API. The twelve public-API tools are gone without aliases. Eighteen read-only tools now read the screener, pair, search, spotlight, narrative, bar and trade channels the DexScreener website itself renders, so VEX sees what a person on the site sees: buyers, sellers and makers per window, the buy and sell volume split, holder and audit blocks, and the trade tape.
Seven screening boards share one filter family. Trending, top, gainers, losers, new pairs, token-level screening and launchpad curves all run server-side over the whole indexed population, and every one accepts the same filters: chain, DEX, pool label, narrative, launchpad, liquidity, volume, market cap, FDV, transactions, price change, pair age, boost count. Every answer echoes the filters that actually went on the wire, because the provider silently drops the ones it does not know.
Provenance travels with every answer. Each read states which transport served it, when it was fetched, and whether it came from a cache. Issuer-written names, symbols and profile text are treated as untrusted: invisible and bidirectional characters are stripped with the affected fields named, and nothing readable is shortened without saying so.
Price history at eighteen resolutions. OHLCV from one second to one month, up to 999 bars per call, over any historical window resolved through a block anchor rather than a page walk, as a price or market-cap series. Every price is a decimal string, and an empty first page names both readings: wrong identifier, or no bars.
The tape walks to any depth. Trades newest first with an exact cursor of block, transaction index and event index, because a block-only cursor was measured omitting a real buy. An aggregate mode returns net flow, unique buyers and sellers, new-wallet share, a size histogram and the largest trades, with the covered range stated.
Found by intent, verified live. Carrying all eighteen schemas in every request measured about 66,000 tokens, so the agent finds these tools through ToolSearch instead. Three rounds of independent verification, the last with every tool in play under ten trading personas, re-probed every parameter against live bytes and closed a 61-item ledger.
02 · Boards
Analysis you can look at.
Whenever a reply presents tokens, pools, a comparison or a watchlist, the agent composes a Board and attaches it to that reply. In the chat it arrives as a compact card with a View board button that is never pressed for you.
A reply that presents tokens arrives with a Board. The agent supplies only its analysis: a title in its own words, up to eight pools, a one-line takeaway per pool, a full written assessment per token, up to twelve notes of risks and caveats, and optionally one chart with marks it drew itself. Every price, liquidity figure, volume, trade count, name, photo and candle on the board is read by the runtime at the moment of composition and stamped with that time.
Spotlight is the deep view of one token. The provider's description rendered whole with an honest freshness line, five stat rows including holders and liquidity locks, factual safety rows, the agent's whole assessment as the primary section, then Smart money, Tape, Momentum, Promotion and Other pools.
Safety is a table of facts, not an opinion. Each row names the check, its source and a pass, fail or unverified verdict, read from two audit sources by the runtime itself. No pool is marked clean on partial evidence, unknown pools stay counted rather than disappearing, and the chip distinguishes Unverified, Partial checks, Sources disagree and Checks out of date from High risk. The agent's prose can never color the chip.
LIVE is off on every open, and never remembered. When on, the app re-reads the same pools every five seconds and publishes a tick only when every pool resolves exactly. A partial answer keeps the last good figures and shows the board as degraded, never as a mixed snapshot presented as connected. After six consecutive failures the stream is dropped.
The tape never hides a hole. Trades stream every five seconds with side, size, price and wallet; if a poll cannot reach the block it already published, the oldest row carries an explicit gap marker. Smart money is the venue-local 30-day cash-flow leaderboard, labeled as exactly that and never as profit.
Observations, never advice. A board never tells you to buy, sell, hold or size a position. One too large to store is refused whole with its measured size and the heaviest pool named, so the agent knows which assessment to shorten. Nothing is ever trimmed.
03 · Balances and pricing
A price with a rule behind it.
Solana balances come from the chain. VEX reads native SOL and every token account under both the classic SPL Token program and Token-2022 directly over RPC. A wallet holding real positions no longer shows $0 because a provider scan reported the chain as empty. Amounts stay exact integer strings end to end, decimals come from the account itself, and a bad read never overwrites a good one.
One pricing rule everywhere. Only a pool quoted in a recognized USD stablecoin or in the chain's wrapped native, with at least $1,000 of liquidity, may price a token, and the deepest of those wins. Depth in a token nobody can value is not evidence: a JUP pool reporting $176M of depth implied $1,136 per JUP while JUP/USDC and JUP/SOL agreed on $0.217, and the rule takes the latter.
A price fallback on sixteen EVM chains. When the balance provider stops populating prices, as it did for Base and Arbitrum on August 26, those rows fall through to the same tiered rule on sixteen chains, each confirmed live. A price the provider does supply is never overwritten, the fallback never touches a balance, and every stablecoin address was read out of a live pair row and shown to trade at a dollar before it was trusted.
Unpriced is a state, not a deletion. A holding without a trusted price keeps its row with a null USD value, is counted as unpriced, and stays visible, because no price is not the same claim as zero value. The sync logs which pool, which quote class and how much liquidity produced each fallback price.
04 · Vex Studio
A first look, on tested ground.
Vex Studio will let the coding agent you already use work with VEX's wallet and protocol tools from inside your own projects, while VEX stays the one place where the keys live and every approval happens. Your coding agent, VEX's tools, your rules.
What ships in 0.2.7 is the foundation only, so the Studio screen can land on tested ground in a coming release. There is no Studio screen in this build, the Agent and Studio toggle on the welcome screen is a placeholder, and nothing here connects an external agent to your wallet. The details arrive with the screen.
05 · The desktop shell
Two themes, one token set.
Two themes. VEX ships chronos, the dark ink shell, and celeris, a light day shell. A fresh install follows your operating system's scheme and switches live when it changes; pick either under Settings, or type /theme. The theme is applied before the first paint, so opening the app on a light desktop never flashes dark and then flips.
One token set, rooted at the brand blue. The whole color system was rebuilt on the vx mark's own blue, with a measured contrast pair for the primary keys: 6.5:1 in chronos, 14.7:1 in celeris. The setup and unlock screens follow the theme too, and boot opens with the Chronos Gate, a four-act sequence bound to the real startup stages that becomes a static frame under reduced motion.
An owned icon vocabulary. Eighty-six inline SVG components replace the last icon-library dependency, and a build gate keeps it out. Chain marks render flat through one renderer whether the source is a numeric chain id or a market provider's slug, and the vx mark follows one ink rule wherever it stands alone: white in chronos, brand blue in celeris.
The transcript reads like a ledger. Tool rows are one line with a duration chip shown only when a duration was measured, expanding to input and output under labeled, capped sections. Streaming Markdown is lexed incrementally so long replies render as they arrive, code is highlighted by an owned highlighter for five grammars, and every in-flow disclosure opens through one 220ms expand primitive that is instant under reduced motion.
The composer is a capsule. Each session keeps its own draft across switches, slash commands open a menu without stealing focus, and Enter behavior is a preference. Sending while the agent is busy either steers the running turn, delivered at the next step boundary and never inside a tool call, or lands in a visible queue you can edit, reorder or send now.
Context occupancy moved into the composer. The RUNTIME & COST card is gone; a small ring tinted by the engine's own pressure bands opens a panel with the occupancy sentence and the compaction control, while turn cost sits on the transcript's stats line and now totals the whole turn across every model round.
06 · Honesty and validation
Every refusal says why.
Every refusal says why. A packaging quirk had been dropping the validation library's English messages from every process, so any rejected input read only "Invalid input". In production, 32 stored tool outputs carried that blank message and not one carried a specific one. The locale is now registered at the main, preload and renderer entry points, each process runs a real failing parse at boot, and the build fails if any bundle ships without it.
Tool arguments are whole or absent. Every structural cut in the transcript's argument path is gone: per-string, per-array, per-object, depth and whole-serialization limits alike. The only bound left is a corruption guard set far above the largest legitimate call, and a row that exceeds it shows no arguments instead of misleading partial ones. Secret redaction is unchanged.
Engine failures name the cause and the fix. Each error event carries the sanitized real cause and a remedy drawn from the real failure code. Failures with no user-side fix say so rather than inventing one, and the cause is scrubbed of URLs, bearer tokens, provider keys and long hex at the moment it is emitted and again at the process boundary.
Budgets refuse, they never trim. A tool that drops rows says so with the way to recover them, a paged tool says whether more exists and how to continue, and a trimmed balance snapshot says it is smaller than the full scan. A call carrying two spellings of a renamed parameter is refused by name rather than guessed at.
Ceilings are measured. The static prompt prefix fell from roughly 102 to 110 KB down to roughly 57 to 63 KB depending on mode, and byte-exact snapshots of every prompt mode pin the size so no change goes unmeasured.
07 · Everything else
Attestations, fees, and the signing lane.
The VEX badge on pools.fun. Right after a launch confirms, the wallet that launched the token signs a short attestation naming that exact token, versioned and bound to pools.fun so it can never be replayed against Trench Express on the same chain. A badge can never fail a launch: the identity record, the signature, the confirmation and the Vex fee settle first, and the badge request goes last. Only launches performed by VEX are attested.
A 25 bps fee on the generic EVM signing lane. VEX charges 0.25% of the native value a transaction sends through the generic EVM transaction tools, collected as a separate transfer only after your transaction has confirmed. Zero-value transactions pay nothing, Solana carries no fee on this lane, and the fee is skipped when it would not exceed its own collection cost. Every fee decision is printed on the approval card before you sign, and the fee is not a parameter: no tool can set, redirect or waive it.
Wallet-grade signing. Intent, activity and execution records settle together in one locked database transaction. Wallet authority is re-checked when the intent is claimed, immediately before the key is loaded, and again after staging immediately before broadcast. Each wallet owns its nonce per chain, reserved durably before signing, and addresses are shown whole in every approval headline so a lookalike cannot hide in an ellipsis.
Transfers in your activity history. A send opens its durable record before anything is signed, stages its hash and nonce before the bytes are submitted, and submits exactly once. A transfer whose broadcast could not be confirmed is recorded as broadcast-unconfirmed, never as failed, and an ERC-20 transfer records its executed amount only when the receipt's own Transfer log proves it.
One grammar for every tool. Protocol tools are named namespace__resource_action and core tools plain PascalCase. The catalog counts 177 tools: 37 core and 140 protocol across eleven namespaces, with old names resolving through typed aliases at every boundary, including an approval queued before the rename. Retrieval is measured against per-namespace datasets, 505 queries across thirteen sets.
Three reported defects, closed. Docker Desktop installed after VEX was already running is now detected on Windows without a restart; a mission session no longer dead-ends behind a notice, with the missing contract fields listed by name; and a model that returns neither text nor a tool call stops the turn after three empty rounds instead of re-sending the identical prompt fifty times and billing every one.
08 · Before you update
Upgrade notes.
Eleven new database migrations (084-094) run automatically on first start; the first launch after updating may take a moment longer. Three changes you will feel: the app follows your operating system's light or dark scheme by default, agent replies that present tokens now arrive with a Board card, and the generic EVM transaction tools charge a 25 bps fee on native value that is printed on every approval card. Tokens you launch on pools.fun through VEX are attested to the partner by default, and a single setting turns that off. No manual action is required.