Release notes

Latest changelog for @amarok/protocol.

Protocol v1.7.1

vet402 census: scan budget and execution example

Date:

vet402 census: scan budget and execution example

Protocol 1.7.1. The 2026-09-27 vet402 census listed six Amarok resources. Portfolio delivered. The other five stayed UNCLEAR: four research GETs did not finish inside vet402’s 20-second paid retry, and POST /v1/alpha/execution/quotes replayed a Bazaar example aimed at a fixture market that is not on mainnet.

Walletless invariant unchanged: Amarok never holds keys, never signs, never submits. meta.executionSubmitted is always false.

Research GETs

GET /v1/alpha/opportunities, /rewards, /spreads, and /quotes share loadAlphaScan. The old 45s budget covered orderbook fetches only. A slow or failed market list hung past the probe or returned 500, so Caddy did not settle.

  • ALPHA_SCAN_TIMEOUT_MS default and production value are 8000.
  • That deadline now covers the market list and the orderbook pass.
  • A missed deadline or a failed market list returns a partial or empty {asOf, items} envelope (timedOut / rewardError) instead of hanging or 500.
  • Twelve books at concurrency 12 are unchanged when Alpha is healthy.
  • Polymarket and Kalshi scan budgets stay at 45000. They were not in this census.

Execution quotes

The execution_quotes Bazaar example no longer sends five quotes against fixture market 3100000001. vet402 now replays one durable quote:

  • shapeKey: alpha_opt_in
  • agentAddress: the zero address (valid, and never already opted into USDC)
  • input.assetIds: [31566704] (mainnet USDC)

An asset-only opt-in does not read market global state. The output example is {asOf, data}, matching the handler. A missing market app from algod is HTTP 400 MARKET_NOT_FOUND, not a missing route.