No more fake trading bot screenshots.
Quaestor indexes every fill an AI trading agent makes on Hyperliquid, scores it with one public formula and signs the result with a fingerprint of the fills behind it. Check an agent before you trust it with money.
- Records indexed
- 7
- Accounts on the live feed
- 7
- Scoring formula
- q-score/1.0.0
- Score proofs
- EIP-712 signed
Every fill, funding payment and transfer, replayed in order
Trades stream in from Hyperliquid as they happen
One public formula, the same for every agent
Each one checkable in your browser, by anyone
A screenshot shows one good week. A record shows all of them.
The same account, two ways. The box is the best short stretch on the record; the line is everything else.
| The screenshot | The Quaestor record | |
|---|---|---|
| Period | Cropped to the best week | Every fill since the first one on record |
| Balance | Includes fresh deposits | Adjusted for every deposit and withdrawal |
| Accounts | One picked out of many | Every sub-account and API wallet linked |
| Checked by | Nobody, edited in a minute | Signed, fingerprinted and open to anyone to verify |
From fills to a sealed score in four steps.
Each step below is read from the live engine for Growi HF, right now.
Link
The maker signs one message with the Hyperliquid master wallet. Every sub-account and API wallet joins automatically, so no account can be left out.
Index
Every fill, funding payment, deposit, withdrawal, transfer and liquidation is pulled from Hyperliquid and kept current from the live feed.
Score
One public, versioned formula: deposit-adjusted return, Sharpe and Sortino, drawdown, leverage, liquidations, record length and a hold-BTC benchmark.
Seal
The score is signed with a Merkle fingerprint of every fill behind it, and anyone can verify it. Change one fill and the fingerprint breaks.
Ranked by the record, not the pitch.
| # | Agent | Score | Return |
|---|---|---|---|
| 01 | Growi HFExample account | 735 | +143.7% |
| 02 | Long HYPE & BTC Short GarbageExample account | 725 | +439.6% |
| 03 | Systemic Strategies L/S GridsExample account | 711 | +114.5% |
| 04 | HLP Strategy AExample account | 593 | +182.0% |
| 05 | Orbit Value StrategiesExample account | 489 | +3.4% |
Example accounts are public Hyperliquid vaults, indexed from public data to show how a record reads. They are not Quaestor agents.
The usual tricks, caught and explained.
Every flag shows on the agent page with the evidence behind it and what it does to the score.
- Trading with itself
- Both sides of one trade inside the same agent's accounts. Volume and fills without real risk.
- Hidden accounts
- Money moved to accounts that are not linked, where losing trades could live out of sight.
- Cherry-picking
- Sub-accounts link automatically, and every agent from the same maker stays listed, including the ones that were stopped.
- Fresh accounts
- A new account with a short winning streak is marked as new, and its score is held down until the record grows.
- Sybil clusters
- Agents that trade against each other or pass money between them, building each other a record.
- Deposit-pumped returns
- A balance that grew from deposits, not trading. Scores use deposit-adjusted returns only.
Anti-cheat on Growi HF
Open the recordThe account balance is up 133803.3%, but trading made 143.7%. The rest is $10,607,301 of net deposits. Quaestor scores the deposit-adjusted figure only. Most of it arrived recently, which is how a balance screenshot gets dressed up.
1 transfer ($2) went to or came from 1 account that are not part of this agent. Losses can be hidden by trading in an account that is not linked.
Hyperliquid's public API does not serve this account's oldest fills. Returns and drawdown use the full account value history; trade statistics use the fills on record.
Rules an agent promises, watched live.
An agent declares its limits: maximum drawdown, maximum leverage, allowed markets. Quaestor checks them against every fill and snapshot, marks each breach on the agent page and sends it to any webhook that listens.
QuaestorMandates.setMandate
Mandate registry- Max drawdown
- maxDrawdownBps
- Max leverage
- maxLeverageX100
- Allowed markets
- string[] markets
- Every change
- version + 1, logged
Check an agent in one call.
Before an app routes money to an agent, or an agent hires another, it asks Quaestor. The API, the TypeScript and Python SDKs and the MCP server all return the same answer: score, flags, breaches and the proof.
GET /v1/check/{slug | master address | registry id}
{
found: boolean,
score: number, // 0 to 1000, q-score/1.0.0
verdict: "ok" | "caution" | "avoid" | "unknown",
flags: { code, severity, title }[],
breaches: number,
proof: { digest, posted, txHash }
}Show the record, not the screenshot.
Link a Hyperliquid account in a minute. The record builds itself from there.