Releases: Prashant-thakur77/Strike
Release list
Strike v1.2.0
Strike v1.2.0 adds work built after the buildathon submission, organised around the Arbitrum Open House workshop themes.
Start here: docs/JUDGES.md, section "How Strike maps to the workshop themes" · live app
Added
Agent payments with x402 (D48). AI agents pay per call for a premium Strike risk report at /api/agent/risk-report: 0.01 USDC on Arbitrum Sepolia or 0.01 USDG on Robinhood Chain testnet. Strike verifies and settles payments itself. The MCP tool paid_risk_report pays automatically, within a per-run cap, and records each payment in the agent's decision record. Three real payments are settled on chain.
Onboarding without test ETH (D49). "Get started" gives a brand-new wallet a little gas, then 10 USDG, then points it to a vault.
- It runs on
GasDrip, deployed and verified on both testnets: 0.0001 ETH once per address, at most 20 a day. - The relayer route checks a proof of work, a rate limit and a balance floor.
- It has been checked live through the deployed site.
Governance page (D50). /app/governance shows every privileged role holder on every contract, read live from the chain, with no unknown holders. It also shows the last admin actions and the staged path to a Safe behind the 73-day timelock.
Wallet statements, per-wallet alerts and record Q&A (D51).
/api/statement(CSV or JSON) has every row linked to its transaction, with thecastcommand to check it.- The Telegram bot's
/watch <address>sends only that wallet's actionable items. explain_decisionanswers questions about a decision only from the hash-checked record, citing the fields it used.
Portfolio dashboard (D52). /app/portfolio shows, for any address:
- value, net P&L and premium earned;
- a value-over-time chart;
- "Needs your action", with one-tap claims;
- week-by-week results, with a comparison against holding for calls;
- what you can do with what you hold;
- options, agent and activity views.
History is rebuilt from the vaults' settlement events, and it matches the chain exactly.
A simpler app (D53).
- Navigation: Vaults · Portfolio · Agents · Proof · Learn, with a tab bar on phones.
- The
/apphome: three clear choices. - The vault page: a plain-English "This week's call" card, "Your amount this week", and expert details folded away.
- Filtering and network: an optional risk profile filters vaults by their on-chain limits, and a one-click network switch.
Pendle collateral yield, prototype (D47). A design and a fork-tested adapter that would put idle put-vault USDG into Pendle PT-USDG on Robinhood Chain mainnet, keeping a settlement reserve. It is not deployed.
Positioning and roadmap. RWA, the wedge, security and governance in the README and JUDGES, a workshop-themes table, a "Roadmap after the buildathon" section, and Dune queries for the Robinhood Chain stock-token market (not yet published).
Fixed
- Slither
reentrancy-balancein the Pendle prototype: it now uses the router's returned amounts, with a reentrancy guard on every state-changing function. - The faucet page makes far fewer browser RPC reads.
- The risk panel reads Chainlink rounds in chunks.
- The QA and relayer wallets are labelled as team wallets, so outside users still reads 0.
Evidence
- 1,811 tests and proofs.
- 193 of 193 cited transactions verified on chain.
- 0 open code-scanning alerts.
- CI green on every job.
Known state
The 2 October series expired unsettled. Mainnet's last TSLA print before expiry was 19:55:31 UTC on 2 October, so they settle at the first print after NYSE reopens on Monday 5 October, via the keeper on GitHub Actions.
Strike v1.1.0
Strike v1.1.0 adds the mainnet waitlist and the results of an end-to-end QA pass and a mobile pass of the live app, all made on 3 October 2026, after v1.0.0.
Start here: docs/JUDGES.md · live app · mainnet waitlist
Added
Mainnet waitlist (/waitlist, D46). The page covers:
- the staged launch plan: a capped first vault, a Safe behind the 73-day timelock, an external audit, real Chainlink feeds;
- what joining gives you;
- an FAQ on who can join, where your details go, audit status and risks;
- a disclaimer.
Sign-up is an animated, one-question-at-a-time form on the page itself. The sign-up API encrypts each entry with a per-entry AES key wrapped by the team's public key, stored in a private Vercel Blob store, and readable only with the team's private key. No plaintext email is stored; a repeat email updates its entry; spam protection and a rate limit are built in.
End-to-end QA report (log). Three fresh wallets, listed as team QA wallets so the outside-user count stays at 0, went through every flow on the live site. That produced 17 transactions, all verified by CI.
Fixed
- Vault links across networks. An Arbitrum Sepolia vault link could open a superseded v1 vault on Robinhood Chain testnet. Links now follow
?chain=, and an unknown vault offers to switch to the network it is on. - The epoch trace now lists depositors' own deposits and withdrawals.
- After a deposit or withdrawal, the panel says what happens next.
- The faucet names the time zone of the next drip.
- The activity feed says which deployment it reads.
- Telegram bot.
/vaults,/quote,/agent,/statusand the alerts now cover every deployment (v2 and v3 on Robinhood Chain testnet, v3 on Arbitrum Sepolia). Expired series read "Expired, settling" instead of "Selling".
Mobile
Every page was checked at 360, 390, 414 and 768 px:
- No page scrolls sideways.
- Wide tables become labelled cards on phones.
- Body text is at least 16 px, small labels at least 12 px.
- Tap targets are at least 44 px.
- Chart labels stay on screen.
A new test checks every route at 360 px.
Evidence
- 1,607 tests and proofs.
- 177 of 177 cited transactions verified on chain.
- The price mirror audit matches mainnet Chainlink round for round.
- 0 open code-scanning alerts.
Videos
Demo 6:04 and pitch 2:13, re-rendered against the live site (they state 1,574 tests and proofs, the count when they were recorded).
Known state
The three 2 October series expired at 20:00 UTC. Mainnet's last TSLA print before expiry was at 19:55:31 UTC, and settlement waits for the first print at or after expiry, expected after NYSE opens on Monday 5 October. The keeper on GitHub Actions settles them when it arrives.
Strike v1.0.0
Strike v1.0.0 is the buildathon submission build for the Arbitrum Open House Singapore Online Buildathon.
It contains weekly covered-call and cash-secured-put vaults on Robinhood Chain stock tokens, paid in Paxos USDG. An AI agent proposes the strike, and the contract checks the proposal against the vault's immutable mandate. When a proposal breaks the mandate, the contract rejects it and pays 10 USDG of the agent's bond to the depositors.
The project is live on Robinhood Chain testnet (46630; v2 and v3) and on Arbitrum Sepolia (421614; v3). It is unaudited.
Start here: docs/JUDGES.md · live app · demo video, 5:59 · pitch, 2:12
Since v0.9.0 (283 commits)
Specialist agent pipeline (D45): a market analyst, risk analyst, strike planner and critic (PASS / MODIFY / FAIL, rules P0 to P4) run before the contract, and every stage's inputs, verdict and sources go into the anchored record. A closed market or a vetoed plan is recorded as a no-trade. Claude's token usage is recorded when it plans.
Decision page per agent decision (/app/decision/<chain>/<record>). Each page has:
- a stage strip showing every specialist stage, including stages that did not run
- a mandate scorecard with the headroom left on every rule
- the strikes the agent did not choose and why: recomputed from anchored inputs with a self-check, or taken from the agent's own recorded dry runs
- the break-even and the model's odds of exercise
- after settlement, a hindsight grade at the settlement price
More pages: /app/lessons (9 lessons from the live run, each with evidence), /app/portfolio, "Run the agent" in the playground, and on the agents page the series health, alerts, week-by-week view and no-sale runs.
Price mirror audit. Every testnet price round is checked against Robinhood Chain mainnet Chainlink, in the app, the API and a command-line tool. It matched 84 of 84 rounds on 46630 and 32 of 32 on 421614.
Running by itself.
- The keeper and the weekly agent run on GitHub Actions. The keeper uses a keeper-only key that holds
KEEPER_ROLEon the six MirrorFeeds and no admin role. - An hourly live smoke test checks production.
- A liveness card on
/app/proofshows the state. - The vault page shows market hours, an epoch trace, and an "Expired, settling" state for series that have expired but not yet settled.
Evidence.
- 1,498 tests and proofs.
- An adversarial suite: 30 attacks; mutation checks caught 16 of 16 on v2 and 7 of 7 on v3.
- 12 timelock tests, with a 73-day admin delay planned for mainnet (D43).
- Every cited transaction is checked by CI (160 of 160).
- A numbers gate keeps the docs in line with the measured figures.
- 0 open code-scanning alerts.
Infrastructure.
- A Postgres indexer with Docker. Its figures match
/api/statson all 19 counts. - One config file,
strike.config.json. - CI runs every suite: Foundry, Stylus, differential, fork, formal, Playwright on a devnet, Postgres and Docker.
Packages. @strike-options/sdk and @strike-options/mcp 0.10.0 are on npm. The remote MCP reads every deployment.
Docs.
- technical note
- trust model
- verify it yourself (
cast,jqandcurlonly) - endpoints
- sponsor technology
- the "Not built yet" list in the README
Known state at release
The three 2 October series expired at 20:00 UTC. Settlement waits for the first mainnet Chainlink TSLA print at or after expiry, and the contract rejects any other round. Mainnet's last print before expiry came at 19:55:31 UTC, so settlement is expected after NYSE reopens on Monday. The GitHub keeper will settle the series when that print arrives.
v0.9.0
Added
-
Live risk panel from the v3 Stylus (Rust) risk engine (
0x61158d98…a4ec, deployed with v3 on Robinhood Chain testnet), reading the live v2 TSLA covered-call series. SDKseriesRisk(seriesId | series): greeks at the live spot and the epoch's sigma (and the current sigma when it differs), the depositors' exposure (−greeks × sold), the payout over the RiskLens grid (−30%…+30% in 5% steps) with the worst case against the locked collateral, and the implied volatility of the last buy solved by the engine'simpliedVol; zero greeks after expiry, the last print flagged when the feed is unsafe.IRiskEngineandRiskLensABIs andriskEnginein the 46630 map. The fixed test vector (the live series) matches an independent scipy Black-Scholes to ~5e-15 and the last buy's implied vol recovers the 60% the contract priced it with. MCP toolseries_risk(also on/api/mcp); a Risk rail on the vault page (four greeks in plain words, stress-test columns with a table view, engine footnote); a v3 card on/app/proof. -
SafeStockFeed conformance suite (
contracts/test/conformance/): an abstract Foundry test,SafeStockFeedConformance, that any oracle wrapper inherits by implementing a few hooks (deploy a token/feed pair, push rounds, pause, schedule a multiplier change, warp, read the price). 21 rules, one test each: the multiplier is never applied, staleness, both pause layers, a missingoraclePaused(), corporate-action windows, non-positive and future-dated answers, sequencer down and grace, and the settlement round (first at or after the target, phase changes, corporate-action hints). Rules a wrapper does not implement are reported as skipped.StockOraclepasses 21 of 21; theStockCollateralexample passes 14 and skips the 7 settlement rules.SafeStockFeedConformanceWithMockswires the hooks to Strike's mocks; docs/safestockfeed.md explains how another protocol runs it (@strike-test/remapping, checked in a fresh Foundry project). -
DecisionLog(contracts/src/agents/DecisionLog.sol), deployed separately on Robinhood Chain testnet at0xbF94f54fd0258ac59e2f54B70754dFAfFd245D93(verified on Blockscout): agents anchor the keccak256 hash and URL of each decision record on-chain. Only the agent's currentAgentRegistrysigner may record; a rotated signer loses access. 10 tests,script/DeployDecisionLog.s.sol,decisionLogin46630.jsonand the SDK ABIs. v2 is unchanged (decisions.md D35). -
Example agent
--anchor(with--log): hashes the JSON decision record, callsDecisionLog.recordwith its GitHub URL, and adds the transaction to the record; the weeklyagent.ymlruns with it. The first anchor is the 2026-09-29 live epoch log (tx0x934ab96b…24c4). -
docs/gas.md: "Measured on the live chain", the live
proposeByDelta(574,028 L2 gas, within 0.6% of the dev node) andbuyreceipts next to the dev-node figures, and the Stylus cache check (Robinhood Chain testnet has no CacheManager yet, so no bid and all figures are uncached). -
docs/DEPLOYMENTS.md: v1, v2 and the v3 branch with source and deploy commits, deploy blocks, every address with its Blockscout verification status (checked through the Blockscout API on 2026-09-30), the active pricer read withcast, the Styluscargo stylus verifyresult, the live transactions with blocks and times, ERC-8004 identity #114, and a reviewer's checklist of commands. -
Charts from committed data (
scripts/charts/build_charts.py, light and dark, SVG and PNG): tests by suite, coverage by contract with the CI gate, Solidity vs Stylus gas, backtest equity curves, the live epoch timeline, a competition matrix and a positioning chart. The palette is derived from the site colours and passes the dataviz validator in both modes (scripts/charts/README.md). -
Competition section with sources: Strike, Stonkhouse, Archer Markets, Ribbon / Aevo, Derive (Lyra) and Thetanuts, from each project's docs and repositories, with "not described" where the docs are silent.
-
Agents can join from a URL:
https://strike-options.vercel.app/skill.mdservesdocs/STRIKE_SKILL.md(embedded at build time) and/llms.txtan llms.txt index of Strike: what it is, the agent entry points, the app pages, the testnet contract addresses (from the SDK's deployment map) and the docs.- A read-only remote MCP server at
https://strike-options.vercel.app/api/mcp(Streamable HTTP, stateless: a fresh server per request and JSON answers, so it runs on Vercel serverless). It registers only the read tools (strike_info,list_vaults,vault_state,quote,hedge_plan,risk_check,agent_stats) plus thestrike://skillresource, holds no key and sends nothing. Identical chain reads are shared for 10 seconds per instance (a warmlist_vaultsanswers in about 20 ms instead of about 2 s). CORS is open; GET and DELETE get 405. - MCP:
createStrikeMcpServer({ readOnly: true, skillText })and@strike/mcp/http(handleReadOnlyMcpRequest), reused by the app;node mcp/scripts/remote-check.mjs [url]checks an endpoint with the official MCP client. STRIKE_SKILL.md: "Connect over HTTP" with Claude Desktop, Claude Code, URL-client and curl examples. The ERC-8004 registration file's MCP endpoint is now the remote URL.
-
App: a dismissible Season 0 banner on
/app/agents: testnet agents welcome, a four-step checklist (register, bond, run one epoch, file feedback), and links to "Run your own agent" and the feedback form. Dismissal is remembered in the browser and applied before first paint. -
CI: CodeQL for JavaScript/TypeScript (push, pull request, weekly), and a gitleaks secret scan of the whole history on every push and pull request. Its allowlist covers only public addresses and the well-known anvil and nitro devnode dev keys; on the current history it finds nothing else.
-
Tests:
app/e2e/mcp.spec.ts(initialize, the read-only tool list,list_vaultsandrisk_checkagainst Robinhood Chain testnet, CORS,/skill.md,/llms.txt) andmcp/test/http.test.ts(read-only registration, the embedded skill, the stateless handler).
Changed
- Demo and pitch videos re-cut to the pattern of 12 winning hackathon videos (
docs/research-winners.md): the product on screen from the first second, one continuous journey, a 15-second explorer shot with the slash transfer highlighted, the Rust risk engine on the vault page, one evidence card and the live app URL at the close. Narration by Chatterbox at about 120 words a minute (was 165), checked with Whisper (0.98 word match). Every number is read from README.md at render time (video/record.mjs, scenes invideo/demo.mjsandvideo/pitch.mjs). - README: "What works, what does not yet, what we cut", a table mapping each headline claim to one test and one command, "Why only here", the put vault against USDG lending, Tilt Protocol in the competition table. New docs:
docs/MILESTONES.md(grant milestones),docs/submission/qa-prep.md(20 judge questions),docs/research-winners.md. - README: screenshot gallery of every page (desktop and mobile), "Evidence in numbers" with the tests, coverage and gas charts and their tables, the live epoch timeline, a backtest section, the competition section in place of Prior art, an architecture diagram, and a "Versions and deployments" timeline.
- Screenshots in
docs/screenshots/retaken from the current app on the live testnet (landing, vaults, vault, playground, backtest, agents, monitor, proof, faucet at 1440×900 and 390×844); the superseded images were removed. - Test counts re-measured: 477 Foundry tests passing and 7 skipped (the conformance suite's settlement rules on the
StockCollateralexample), SDK 109, MCP 49, example agents 44, Telegram bot 60, subgraph 10, and Playwright lists 106 tests (212 runs over two viewports): 891 tests and proofs with fork, differential, Halmos and Rust. Coverage 99.3% of lines and 98.8% of branches (SafeStockFeednow at 100%).
Fixed
- SDK: transactions are sent with a 25% gas margin over the estimate, and a mined revert says whether it ran out of gas. The pricer's series expansions run a tenor-dependent number of terms, which is the likely cause of the intermittent CI failure where the dry run passed and the mined
proposeByDeltareverted. - Playground: the reckless and cheap presets fall back to the funded vault, so an empty put vault no longer turns them into
ZeroSize. - Charts: the gas chart reads only the dev-node tables in
docs/gas.md, not the live-chain table.
Deployments
- v3 on Robinhood Chain testnet (46630) next to v2, all contracts verified on Blockscout and the Stylus pricer and risk engine (
0x61158d98…a4ec) withcargo stylus verify: EpochManager0x256D4546…929F, AgentRegistry0x1c427401…052f, RiskLens0xFDb8Ba33…Cc6D, a v3 DecisionLog0xa98106db…03a4; the MarketCalendar and MirrorFeeds are shared with v2. Agent #1 registered with EIP-712 signer consent and linked to ERC-8004 identity #114. No vaults yet: they need a bonded agent, which waits on testnet USDG (log, D36). DecisionLogfor v2 at0xbF94f54f…5D93.- The v2 put vault's depositor withdrew the 20 USDG deposit and the 10 USDG slash.
v0.8.0: Open agent market, SafeStockFeed for builders
Added
- Self-serve agent onboarding: any third-party agent can join without permission (register, bond, run a vault).
- SDK:
registerAgent(returns the agent id fromAgentRegistered),postBond(approves USDG first),createVault(returns the vault fromVaultCreated; checks the mandate floors and that the agent exists before sending),agentRegistryParams,identityOwner,isUnderlyingAllowed,maxDepositCap, plusmandateProblems,DEFAULT_MANDATE,MIN_PREMIUM_FLOOR_BPSandMAX_TENOR_CAP. New error hints forSignerTaken,NotIdentityOwner,InvalidMandate,UnderlyingNotAllowedandDepositCapTooHigh. - MCP:
register_agent(registers the server's key and optionally bonds) andcreate_vault(a vault on an allowed stock with a mandate and your agent). Both check first (signer free, identity owned, USDG for the bond, minimum bond, allowed token, mandate floors, deposit cap), explain the rules, refuse to send while a check fails, and takedryRun. - Example agent:
--register [--bond N] [--create-vault TSLA:call|put], safe to re-run. - App: a Run your own agent section on
/app/agentswith the three steps and, behind a fold, a form with live checks (signer not taken, identity owned, USDG balance, the minimum bond) that sends approve, register and postBond from the connected wallet, then a compact vault form with mandate defaults that pass the floors. - Docs: "Join as a new agent" in
STRIKE_SKILL.md, "Run your own agent" in the README.
- SDK:
SafeStockFeedfor other builders:forge install Prashant-thakur77/Strikeplus one remapping (@strike/=lib/Strike/contracts/src/) gives any Foundry project the library from the same source as the deployed contracts (decisions.md D32).- Example consumer
contracts/examples/StockCollateral.sol: stock-token collateral valued withSafeStockFeed.latest, a per-share display price (feed ÷uiMultiplier) and comments on why the feed is never multiplied by the multiplier. 14 unit tests with the repo's mocks and 3 fork tests on Robinhood Chain mainnet (real NVDA collateral against the raw feed, all 8 stock feeds, each revert on the real token).
Changed
- docs/safestockfeed.md: new "Use it in your project" section (install, remapping, a 10-line snippet checked in a fresh Foundry project, the example, what each error means and what to do about it).
make fmt,make fmt-checkand the CI format step also covercontracts/examples.
Fixed
- App: a
Foldthat starts closed now shows its toggle on wide screens too (it was unreachable above 820px).
Full notes: CHANGELOG.md
v0.7.0: Try it without a wallet, an agent that runs itself
Added
- Re-cut 2:43 demo video on live data (playground verdicts, the real testnet epoch with Blockscout, price breakdown and payoff chart, ERC-8004 #114, Telegram alerts, mainnet monitor, proof page), with burned-in captions and an
.srtfor voice-over. - Autonomous weekly agent (
.github/workflows/agent.yml): Monday proposals and Friday settlements with published decision records indocs/agent-log/. - Agent decision log on
/app/agents: each weekly record (market inputs, target and reasoning, the contract's verdict, transactions, track record) read fromdocs/agent-log/. - On-chain: the put vault's stale epoch was closed and the slashed 10 USDG paid to its depositors (20 → 30 USDG).
- Mandate playground (
/app/playground): anyone can test a proposal against a live testnet vault's mandate without a wallet, through the read-onlyEpochManager.previewProposal. Presets: an honest 0.20-delta call (accepted), a reckless at-the-money put (DeltaOutOfBand), an oversized proposal (SizeTooLarge) and one at half of fair value (PremiumBelowFair); a rejection shows the bond a real proposal would lose. - Stock-token safety monitor (
/app/monitor): live Robinhood Chain mainnet data for the 8 stock tokens with a Chainlink feed (TSLA, NVDA, AMZN, PLTR, AMD, SPY, AAPL, QQQ): ERC-8056 multiplier, pending changes, both pause flags, feed age, NYSE session, and theSafeStockFeedverdict. - Proof page (
/app/proof): every claim with its evidence (verified contracts, the active Stylus pricer, gas, tests, coverage, invariants, formal proofs, the security review). - Live on-chain activity feed on the proof page and the landing page, read from the
EpochManagerlogs on Robinhood Chain testnet. - Telegram bot (
bots/telegram, 60 tests): alerts for epochs opened, proposals accepted and rejected (with the slash), options bought and settlements, read from contract logs;/vaults,/quote,/agent,/status; a dry run that prints the alerts without a token. - ERC-8004: agent #1 registered on the official identity registry on Robinhood Chain testnet as identity #114 and linked to
AgentRegistry, so settled PnL and rejections post to its reputation (registration file, transactions). - Formal verification with Halmos: 9 properties proven for every input in range (mandate rules, fee caps, NYSE sessions, call payout) in a
formalCI job; 16 more kept asunproven_*and marked not proven (formal-verification.md). - CI coverage job: fails below 95% line coverage (currently 99.1%).
- Vault page: a payoff chart (buyer's and depositor's result at expiry) and a buy-price breakdown (fair value at the buffered oracle spot, times the premium factor, never below intrinsic value, next to the contract's own quote).
- Repository files:
SECURITY.md(private vulnerability reporting),CONTRIBUTING.md,CODE_OF_CONDUCT.md,CODEOWNERS, bug report and feature request issue templates (next to the testnet feedback form), a pull request template, Dependabot. - Tester guide, social posts, accurate prior-art comparison (Stonkhouse, Archer Markets), HackQuest answers within the 300-character limit.
Changed
- App navigation: Vaults, Playground, Agents, Monitor, Proof, Faucet; the landing page links the playground, monitor and proof page under "Try it without a wallet".
- README rewritten: badges, how it works, safety evidence, gas, deployments with the live epoch, try it, prior art, repository map.
- Submission kit refreshed: HackQuest answers, pitch and demo scripts in the new video's scene order, deck outline with a "Try it" slide, social posts, tester guide starting with the playground.
Full notes: CHANGELOG.md
v0.6.0: Security review fixes, testnet v2
Security
- Internal adversarial review of every contract: 1 High, 3 Medium, 4 Low, 3 Info, each shown by a failing test. All fixed; the 19 audit tests now run as regression tests (review).
- H-01: a corporate action near expiry could block settlement. Settlement now moves to the first print after
effectiveAt + grace. - M-01: Chainlink phase changes. The previous phase's last round is required as proof, with no age window.
- M-02: premium is never below intrinsic value.
- M-03: buys are priced at spot moved against the buyer by the feed's deviation threshold (
setSpotBuffer). - L-01 to L-04: band-aware strike rounding, proposals judged at the epoch-open snapshot, no emergency cancel once a price is recorded, protocol mandate floors.
- I-02, I-03: no reputation feedback on transferred identities; keeper sigma changes capped at 25% per hour.
- H-01: a corporate action near expiry could block settlement. Settlement now moves to the first print after
Added
StockOracle.recordSettlementPriceWithHintsand the SDK'sfindSettlementHints; the keeper falls back to it.- 8-year weekly backtest (TSLA, NVDA, AMZN, SPY) with the protocol's own pricer, and a litepaper.
- First live epoch on Robinhood Chain testnet v2: a 0.20-delta call accepted, a reckless put rejected with 10 USDG slashed, 4 calls bought by a buyer agent (log).
- Automated 2:40 demo video; audit-readiness package and operations runbook.
Changed
- Stylus gas re-measured on v2:
proposeByDelta3.3× cheaper with the Stylus pricer, same strike. EpochManager.epochs()returnsopenSpotandopenSigma;underlyings()returnsspotBufferBpsandsigmaUpdatedAt.
Deployments
- Robinhood Chain testnet (46630) v2, block 125880607: 14 contracts verified on Blockscout; the verified Stylus pricer is reused (addresses).
- v1 (block 125866639) is superseded (addresses).
Full notes: CHANGELOG.md
v0.5.0: Live on Robinhood Chain testnet (v1)
Added
- Buyer side for agents: MCP
buy_options,redeem_options,hedge_plan; buyer mode in the example agent; a hedge planner in the app. - App: per-share prices for ERC-8056 tokens, a non-US-person acknowledgement, a testnet feedback form, a mobile network switcher, agent track records.
- Stylus in the production path, measured on a Nitro dev node; reproducible Stylus builds verified with
cargo stylus verify. SafeStockFeed/StockOracleintegration guide for other Robinhood Chain protocols.
Deployments
- Robinhood Chain testnet (46630) v1, verified on Blockscout.
Full notes: CHANGELOG.md
v0.4.0: SDK, MCP, agents, app, subgraph
Added
@strike/sdktyped client; Strike MCP server andSTRIKE_SKILL.md; example strike-picking agent.- Next.js app: landing page, vault list and detail, agent leaderboard and rejection feed, faucet, option metadata routes; Playwright checks on desktop and mobile.
- Subgraph for vaults, epochs, series, agents, rejections and reputation.
- One-command local demo on anvil, run in CI.
Full notes: CHANGELOG.md
v0.3.0: On-chain strike solving, reputation, threat model
Added
- On-chain strike solving by delta (
proposeByDelta) in Stylus and Solidity. - ERC-8004 reputation feedback for settled epochs and rejections.
- Threat model (18 threats), risk model, Slither CI job with triage, coverage report, testnet keeper.
Full notes: CHANGELOG.md