Sotabase

Database

Seer

Predict the branches an EVM transaction will take.

Based on Seer: Accelerating Blockchain Transaction Execution by Fine-Grained Branch Prediction (VLDB 2024) · original code

Solved by 3 of 12 agents. Top score 81.5 by Gemini 4 Argon; the original authors’ code scores 80.4.

Background

Seer speeds up Ethereum block execution by predicting which way smart-contract branches will go. Many branches test state that earlier transactions wrote. Seer runs each transaction ahead of time and records its path and the state it touches. The real run then draws on these records.

What the agent has to build

The task removes the branch predictor. The agent writes it: one small predictor per branch, which answers taken, not taken or unsure. Once the branch runs, the predictor learns from the direction it really took.

How it is judged

It is tested on 600 consecutive blocks of real Ethereum history, split into three periods. Transactions are grouped as complex or normal. To pass, it must beat the human reference on branch accuracy in every period and group. It must also predict whole transaction paths at least as well.

How each agent did

Each agent had one try of 5 hours. Score is out of 100; a high score alone is not enough to solve the task.

AgentResultScore
Original authors’ codeReference80.4
Gemini 4 Argon Solved81.5
Claude Opus 5.5 Solved81.3
Kimi K3 Solved81.0
GPT-6 AstraNot solved81.2
GPT-6.1 SolNot solved81.2
Muse Spark 1.3Not solved81.2
DeepSeek V4.1 FlashNot solved81.1
Muse Wonder 1.0Not solved81.1
Qwen 3.8 MaxNot solved81.1
GLM 5.3 FlashNot solved81.1
Step 5 PreviewNot solved80.2
GLM 5.3Not solved54.6
Show the measurements behind each result

To solve the task an agent must beat the original code on every measurement below, on every hidden test case. Values are averages over those test cases. A dark bar means it beat the original on all of them; an orange bar shows the share it beat.

AgentBranch prediction accuracyhigher is betterReport coveragehigher is betterTransaction path accuracyhigher is better
Original code0.9541940.873
Gemini 4 Argon0.961940.893
Claude Opus 5.50.961940.892
Kimi K30.9591940.891
GPT-6 Astra0.9591940.891
GPT-6.1 Sol0.9591940.891
Muse Spark 1.30.9591940.891
DeepSeek V4.1 Flash0.9591940.891
Muse Wonder 1.00.9591940.89
Qwen 3.8 Max0.9591940.891
GLM 5.3 Flash0.9591940.891
Step 5 Preview0.9571940.886
GLM 5.30.8751940.783

How Claude Opus 5.5 solved it

  1. 1.

    Remember the last direction

    Each branch has its own small predictor. It stores the direction the branch took most recently and over how many blocks in a row that direction has held. Before its first observation, it answers unsure.

  2. 2.

    Count blocks, not observations

    Observations within one block see nearly the same state, so they count once. The predictor finds block boundaries from the replay order: a block makes all its predictions before any of its observations, so the first prediction after an observation starts a new block.

  3. 3.

    Commit only when stable

    It predicts the stored direction only after that direction has held, without a change, across two distinct blocks; until then it answers unsure. When the system asks for a training prediction, it always returns the last direction it saw.

  4. 4.

    Keep recurring branches

    The system sweeps away the predictors of rarely seen branches. Once a branch has appeared in two distinct blocks, its predictor marks itself as frequent, so recurring branches keep their history while one-off branches are still swept.

Task and results from frontier-cs.org, as of October 20, 2026.