Skip to content

Set and Earn is live until 5 Nov, 12:00 UTC: hire three agents, and build one of your own.

Your progressCheck your agent

Does hiring an agent beat doing it yourself?

Six tasks, specified and hashed on BNB Smart Chain before any of them ran. The losses are printed as large as the wins.

3 won1 lost2 mixed

Locked before it ran.

The specification for every task was hashed and the hash sent to the chain. Each task measures the 24,000 blocks ending where that transaction landed, so none could be chosen after seeing its result.

Specification hash
0xf9c33aa8c73879a1347ccb902d522c7a0a4b7038806557580531b963baf6c8a6
Sent to the chain in
0x00b0e484c69fc3f1…bbe370e4
Window measured
blocks 119,915,676 to 119,939,676

BNB Smart Chainblock 119,939,676To check it, recompute the hash from src/advantage/lock.ts and compare it with the transaction's input, which carries the hash and nothing else.

The six tasks.

Each states what doing it yourself meant, what the agent did, and what was measured. The raw measurement is one tap away.

  1. T1RebalancingThe agent lost

    Keep a PancakeSwap V3 position in range

    Loss. 0 of 9 sampled positions were past the agent's trigger, and the one that crossed it during the window recovered unaided.

    How it was measured
    Doing it yourself
    Do nothing until you happen to look. Measured on real BSC positions: of the live positions in this pool, how many sit outside their range at the anchor block, and how long they have been there.
    The agent
    src/agents/rebalance.ts, evaluated against each sampled position at the anchor block.
    What was measured
    Share of sampled live positions out of range at the anchor block, and blocks elapsed since each left its range. A position out of range earns no fees, so this is idle capital measured directly rather than modelled.
    The raw measurement
    {
      "taskId": "T1",
      "anchorBlock": 119939676,
      "anchorTick": -65699,
      "candidates": 2347,
      "sampled": 9,
      "outOfRange": 1,
      "pastTrigger": 0,
      "wouldHaveChurned": 1,
      "medianBlocksIdle": 2028,
      "driftTicks": 200,
      "positions": [
        {
          "tokenId": "6980588",
          "tickLower": -887270,
          "tickUpper": 887270,
          "liquidity": "37502062335800088925",
          "driftAtAnchor": -821571,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        },
        {
          "tokenId": "7316746",
          "tickLower": -65950,
          "tickUpper": -65350,
          "liquidity": "1964340338208725341805",
          "driftAtAnchor": -251,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        },
        {
          "tokenId": "7323664",
          "tickLower": -66410,
          "tickUpper": -65410,
          "liquidity": "180711553062275634475",
          "driftAtAnchor": -289,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        },
        {
          "tokenId": "5573243",
          "tickLower": -71700,
          "tickUpper": -59920,
          "liquidity": "41082506019310304104",
          "driftAtAnchor": -5779,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        },
        {
          "tokenId": "7328400",
          "tickLower": -65810,
          "tickUpper": -65650,
          "liquidity": "1428792065122904941484",
          "driftAtAnchor": -49,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        },
        {
          "tokenId": "7329608",
          "tickLower": -65660,
          "tickUpper": -65220,
          "liquidity": "1724423177609128078537840",
          "driftAtAnchor": 39,
          "outOfRange": true,
          "blocksIdle": 2028,
          "wouldHaveChurned": true
        },
        {
          "tokenId": "7323366",
          "tickLower": -66300,
          "tickUpper": -65660,
          "liquidity": "1706074782371819852143885",
          "driftAtAnchor": -39,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        },
        {
          "tokenId": "7328617",
          "tickLower": -67520,
          "tickUpper": -64020,
          "liquidity": "11773851613512225172726",
          "driftAtAnchor": -1679,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        },
        {
          "tokenId": "7328039",
          "tickLower": -66360,
          "tickUpper": -65360,
          "liquidity": "134603144727924698642",
          "driftAtAnchor": -339,
          "outOfRange": false,
          "blocksIdle": null,
          "wouldHaveChurned": false
        }
      ]
    }
  2. T2GridThe agent won

    Run a grid ladder through the observed price path

    Win. 0.00091656 BNB against holding over a -1.62% window, with gas and pool fees charged against the agent.

    How it was measured
    Doing it yourself
    Buy and hold. This is not a stand-in for a human, it is the benchmark MandateMarket already settles every grid mandate against, so the agent is judged here exactly as it is judged in production.
    The agent
    src/agents/grid.ts, evaluated over the same path, gas charged at the measured price.
    What was measured
    Net BNB-denominated return over the window, gas included, against holding.
    The raw measurement
    {
      "taskId": "T2",
      "cadenceBlocks": 133,
      "swaps": 4194,
      "swapGas": 150000,
      "gasPriceWei": "52000000",
      "gasSampled": 142,
      "capitalBnb": 1,
      "evaluations": 164,
      "fills": 31,
      "startPriceUsd": 724.7605439292361,
      "endPriceUsd": 712.9982354575646,
      "agentBnb": 1.0091650447740061,
      "holdBnb": 1.0082484835773282,
      "gasBnb": 0.0002418,
      "swapFeeBnb": 0.0019375000000000013,
      "netAdvantageBnb": 0.0009165611966779341,
      "trendPct": -1.6229234014179257
    }
  3. T3YieldMixed

    Move stablecoin capital to the best Venus market

    Mixed. The locked metric turned out to be unusable and is published anyway. On the 18 markets deep enough to supply into, the spread is 2.49 points and rotation repays its gas above $8.03.

    How it was measured
    Doing it yourself
    Leave capital where it is. Definitional, not estimated: the no-agent arm of a rotation strategy is the absence of rotation.
    The agent
    src/agents/yield.ts, against live Venus supply rates at the anchor block.
    What was measured
    Spread between the best and worst supply APY among listed Venus markets at the anchor block, and the capital at which one rotation's gas is repaid inside 30 days.
    The raw measurement
    {
      "taskId": "T3",
      "anchorBlock": 119939676,
      "bnbUsd": 712.9982354575646,
      "markets": [
        {
          "vToken": "0x78366446547D062f45b4C0f320cDaa6d710D87bb",
          "symbol": "vUST",
          "supplyRatePerBlock": "395019717923",
          "supplyApyPct": 2491.4683648839455,
          "cashUsd": 0
        },
        {
          "vToken": "0x689E0daB47Ab16bcae87Ec18491692BF621Dc6Ab",
          "symbol": "vlisUSD",
          "supplyRatePerBlock": "403400910",
          "supplyApyPct": 2.544330219552,
          "cashUsd": 156513.035549
        },
        {
          "vToken": "0xfD5840Cd36d94D7229439859C0112a4185BC0255",
          "symbol": "vUSDT",
          "supplyRatePerBlock": "395287811",
          "supplyApyPct": 2.4931592815392,
          "cashUsd": 60853381.070236
        },
        {
          "vToken": "0xecA88125a5ADbe82614ffC12D0DB554E2e2867C8",
          "symbol": "vUSDC",
          "supplyRatePerBlock": "356187129",
          "supplyApyPct": 2.2465434600288,
          "cashUsd": 15641472.145638
        },
        {
          "vToken": "0xC4eF4229FEc74Ccfe17B2bdeF7715fAC740BA0ba",
          "symbol": "vFDUSD",
          "supplyRatePerBlock": "318047356",
          "supplyApyPct": 2.0059882837632,
          "cashUsd": 3296826.012319
        },
        {
          "vToken": "0x74ca6930108F775CC667894EEa33843e691680d7",
          "symbol": "vUSDe",
          "supplyRatePerBlock": "277026846",
          "supplyApyPct": 1.7472637230911996,
          "cashUsd": 15380.638137
        },
        {
          "vToken": "0x334b3eCB4DCa3593BCCC3c7EBD1A1C1d1780FBF1",
          "symbol": "vDAI",
          "supplyRatePerBlock": "258937358",
          "supplyApyPct": 1.6331697043776003,
          "cashUsd": 1016924.768358
        },
        {
          "vToken": "0x3d5E269787d562b74aCC55F18Bd26C5D09Fa245E",
          "symbol": "vU",
          "supplyRatePerBlock": "231860671",
          "supplyApyPct": 1.4623916241311998,
          "cashUsd": 12401229.570707
        },
        {
          "vToken": "0x0C1DA220D301155b87318B90692Da8dc43B67340",
          "symbol": "vUSD1",
          "supplyRatePerBlock": "198726114",
          "supplyApyPct": 1.2534053462208,
          "cashUsd": 547078.254421
        },
        {
          "vToken": "0xBf515bA4D1b52FFdCeaBF20d31D705Ce789F2cEC",
          "symbol": "vSOL",
          "supplyRatePerBlock": "94903098",
          "supplyApyPct": 0.5985728197056001,
          "cashUsd": 1639720.357283
        },
        {
          "vToken": "0xf508fCD89b8bd15579dc79A6827cB4686A3592c8",
          "symbol": "vETH",
          "supplyRatePerBlock": "93155672",
          "supplyApyPct": 0.5875514544384,
          "cashUsd": 22171890.172948
        },
        {
          "vToken": "0xB248a295732e0225acd3337607cc01068e3b9c10",
          "symbol": "vXRP",
          "supplyRatePerBlock": "73801244",
          "supplyApyPct": 0.46547920615680005,
          "cashUsd": 6084059.159653
        },
        {
          "vToken": "0xC5D3466aA484B040eE977073fcF337f2c00071c1",
          "symbol": "vTRX",
          "supplyRatePerBlock": "51958112",
          "supplyApyPct": 0.32771020400640005,
          "cashUsd": 709401.701841
        },
        {
          "vToken": "0xeBD0070237a0713E8D94fEf1B728d3d993d290ef",
          "symbol": "vCAN",
          "supplyRatePerBlock": "49831816",
          "supplyApyPct": 0.3142992298752,
          "cashUsd": 0
        },
        {
          "vToken": "0x5F0388EBc2B94FA8E123F404b79cCF5f40b29176",
          "symbol": "vBCH",
          "supplyRatePerBlock": "32761644",
          "supplyApyPct": 0.20663424103679998,
          "cashUsd": 404436.721569
        },
        {
          "vToken": "0x882C173bC7Ff3b7786CA16dfeD3DFFfb9Ee7847B",
          "symbol": "vBTC",
          "supplyRatePerBlock": "25163848",
          "supplyApyPct": 0.1587134221056,
          "cashUsd": 361192657.239971
        },
        {
          "vToken": "0xA07c5b74C9B40447a954e1466938b865b6BBea36",
          "symbol": "vBNB",
          "supplyRatePerBlock": "24108183",
          "supplyApyPct": 0.1520551318176,
          "cashUsd": 294231681.044291
        },
        {
          "vToken": "0x6bCa74586218dB34cdB402295796b79663d816e9",
          "symbol": "vWBNB",
          "supplyRatePerBlock": "17771084",
          "supplyApyPct": 0.11208578100479999,
          "cashUsd": 64165216.47581
        },
        {
          "vToken": "0x57A5297F2cB2c0AaC9D554660acd6D385Ab50c6B",
          "symbol": "vLTC",
          "s
  4. T4Health FactorThe agent won

    Repair a Venus position before it is liquidated

    Win. Being early costs $0.0093. Being late costs 10.0% of seized collateral, which is 53,943 times more on the worked example.

    How it was measured
    Doing it yourself
    The liquidation that actually happened. Venus publishes its own liquidation incentive on chain, so the cost of not acting is not an estimate, it is a protocol parameter, paid by every borrower who was too slow.
    The agent
    src/agents/health.ts, which triggers on headroom falling below a share of the borrow, strictly before a shortfall exists.
    What was measured
    Venus liquidationIncentiveMantissa and closeFactorMantissa at the anchor block, against the gas cost of one pre-emptive repayBorrow. Plus a count of real liquidations in the window where the logs can be read.
    The raw measurement
    {
      "taskId": "T4",
      "anchorBlock": 119939676,
      "bnbUsd": 712.9982354575646,
      "incentiveSource": "Unitroller storage slot 6; layout confirmed by slot 5 matching closeFactorMantissa()",
      "layoutVerified": true,
      "liquidationIncentiveMantissa": "1100000000000000000",
      "closeFactorMantissa": "500000000000000000",
      "penaltyPct": 10.000000000000009,
      "closeFactorPct": 50,
      "repayGasUsd": 0.00926897706094834,
      "exampleBorrowUsd": 10000,
      "penaltyUsd": 500.00000000000045,
      "ratio": 53943.38519906142,
      "liquidations": {
        "count": 0,
        "window": 24000
      }
    }
  5. T5SecurityMixed

    Decide which of 20 registry agents are safe to hire

    Win on correctness, loss on coverage. 20 of 20 cards were contradicted by the chain, but 41 checks could not be answered at all.

    How it was measured
    Doing it yourself
    Read the agent card and believe it. This is what the directory actually offers a person: a name, a description, a declared skill set, no evidence.
    The agent
    src/lib/assay, endpoint resolution, custody separation, transaction history, protocol contact.
    What was measured
    Count of sampled agents whose card claims a capability the chain contradicts, and wall-clock seconds for the assay arm.
    The raw measurement
    {
      "taskId": "T5",
      "sampled": 20,
      "hireableByCard": 20,
      "hireableByAssay": 0,
      "contradicted": 20,
      "inconclusiveChecks": 41,
      "agentsWithInconclusive": 20,
      "totalMs": 28527,
      "msPerAgent": 1426.35,
      "outcomes": [
        {
          "tokenId": "0",
          "name": "dAi",
          "fineness": 280,
          "hallmarked": false,
          "contradictions": [
            "Identity: No endpoint of any kind. This registration points nowhere.",
            "Custody: The agent wallet is the owner's wallet, byte for byte. There is no separation of custody — the autonomy is a label, not an arrangement."
          ],
          "inconclusive": [
            "Capability",
            "Reputation",
            "Performance"
          ],
          "ms": 1669
        },
        {
          "tokenId": "1",
          "name": "ClawNews",
          "fineness": 96,
          "hallmarked": false,
          "contradictions": [
            "Identity: No endpoint of any kind. This registration points nowhere.",
            "Custody: The agent wallet is the owner's wallet, byte for byte. There is no separation of custody — the autonomy is a label, not an arrangement.",
            "Activity: Only 1 transaction in its entire history. That is a deployment, not an operating agent.",
            "Reputation: 2 feedback records, none matching a coordination signature. They come from 1 wallet, which is too few to constitute a reputation whether or not it is honest."
          ],
          "inconclusive": [
            "Capability",
            "Performance"
          ],
          "ms": 2032
        },
        {
          "tokenId": "2",
          "name": "Agent #2",
          "fineness": 308,
          "hallmarked": false,
          "contradictions": [
            "Identity: No endpoint of any kind. This registration points nowhere.",
            "Custody: The agent wallet is the owner's wallet, byte for byte. There is no separation of custody — the autonomy is a label, not an arrangement.",
            "Reputation: 1 feedback record, none matching a coordination signature. They come from 1 wallet, which is too few to constitute a reputation whether or not it is honest."
          ],
          "inconclusive": [
            "Capability",
            "Performance"
          ],
          "ms": 1034
        },
        {
          "tokenId": "3",
          "name": "Agent #3",
          "fineness": 308,
          "hallmarked": false,
          "contradictions": [
            "Identity: No endpoint of any kind. This registration points nowhere.",
            "Custody: The agent wallet is the owner's wallet, byte for byte. There is no separation of custody — the autonomy is a label, not an arrangement.",
            "Reputation: 1 feedback record, none matching a coordination signature. They come from 1 wallet, which is too few to constitute a reputation whether or not it is honest."
          ],
          "inconclusive": [
            "Capability",
            "Performance"
          ],
          "ms": 999
        },
        {
          "tokenId": "4",
          "name": "Agent King",
          "fineness": 96,
          "hallmarked": false,
          "contradictions": [
            "Identity: No endpoint of any kind. This registration points nowhere.",
            "Custody: The agent wallet is the owner's wallet, byte for byte. There is no separation of custody — the autonomy is a label, not an arrangement.",
            "Activity: Only 1 transaction in its entire history, and it holds no BNB to send another. That is a deployment, not an operating agent.",
            "Reputation: 1 feedback record, none matching a coordination signature. They come from 1 wallet, which is too few to constitute a reputation whether or not it is honest."
          ],
          "inconclusive": [
            "Capability",
            "Performance"
          ],
          "ms": 1486
        },
        {
          "tokenId": "7",
          "name": "NAMEAI",
          "fineness": 183,
          "hallmarked": false,
          "contradictions": [
            "Identity: No endpoint of any kind. This registration points nowhere.",
            "Custody: The agent wallet is the owner's wallet, byte for byte. There is no separation of custody — the autonomy is a label, not an arrangement.",
            "Reputation: 1 feedback record, n
  6. T6SecurityThe agent won

    Detect coordinated reputation on a registry agent

    Win. 3,000 feedbacks from 32 wallets, and 99.0% of them were written by the 14 wallets flagged as coordinated.

    How it was measured
    Doing it yourself
    The reputation score the official explorer displays. Not a proxy for a human, it is the number a human is shown.
    The agent
    src/lib/sybil/detect, reviewer profiling, pairwise similarity, connected components.
    What was measured
    Displayed score against the score surviving de-duplication, plus the concentration behind it.
    The raw measurement
    {
      "taskId": "T6",
      "feedbacksAnalysed": 3000,
      "pagesRequested": 30,
      "pagesReturned": 30,
      "distinctReviewers": 32,
      "flaggedReviewers": 14,
      "cleanReviewers": 18,
      "flaggedShareOfFeedback": 99.03333333333333,
      "topReviewers": [
        {
          "address": "0x397558e5d63a894934362e5c3c33ab5d0170c228",
          "feedbacks": 265,
          "agents": 254,
          "maxPerAgent": 4
        },
        {
          "address": "0x96443aec84183d799cf67ad0268459e527a1a602",
          "feedbacks": 241,
          "agents": 100,
          "maxPerAgent": 8
        },
        {
          "address": "0xff1fca025c2635a5c3f1275f8c9b21a03b84c232",
          "feedbacks": 239,
          "agents": 104,
          "maxPerAgent": 8
        },
        {
          "address": "0x13749fb015d63831e196097e07135f254bb6dc6b",
          "feedbacks": 231,
          "agents": 101,
          "maxPerAgent": 6
        },
        {
          "address": "0x01b26144bf5ca969ad9e2e06f0e48aa016accf75",
          "feedbacks": 228,
          "agents": 91,
          "maxPerAgent": 6
        }
      ],
      "sensitivity": [
        {
          "jaccard": 0.3,
          "flagged": 14,
          "clean": 18
        },
        {
          "jaccard": 0.4,
          "flagged": 14,
          "clean": 18
        },
        {
          "jaccard": 0.5,
          "flagged": 14,
          "clean": 18
        },
        {
          "jaccard": 0.6,
          "flagged": 14,
          "clean": 18
        },
        {
          "jaccard": 0.7,
          "flagged": 14,
          "clean": 18
        },
        {
          "jaccard": 0.8,
          "flagged": 14,
          "clean": 18
        },
        {
          "jaccard": 0.9,
          "flagged": 14,
          "clean": 18
        }
      ],
      "defaults": {
        "jaccard": 0.6,
        "cardinalityTolerance": 0.12,
        "cohortMin": 3
      },
      "partial": false
    }

Run it yourself, now.

Three of the questions can be asked again of the chain as it is this second. The other three measure a 24,000 block window and need an archive node, so they stay as locked above.

Three reads of the head block. Nothing is signed, nothing is sent, and you need no wallet.

The record with real money on it.

Grid-1

Grid trading, live on mainnet

Lost to holding-$0.076against simply holding, net of gas

5 real fills over 55 minutes, -$0.076 against simply holding, net of $0.056 in gas. The locked test ran the same kind of ladder on paper with 1 BNB and beat holding. Live, each fill was about 0.0002 WBNB, $0.143, and paid about $0.011 in gas, 8% of the trade. Gas was 73% of the loss.

Paused since 2026-09-23. Trading paused: over its first trading window it lost to simply holding, mostly to gas on very small trades. It trades again only when a new window beats holding, and the losing record stays public. Its grid report, which moves nobody's money, can still be hired.

  • 5fills
  • 0 of 1round trips won
  • -$0.076against holding
  • $0.056gas paid

BNB Smart Chainblock 130,514,116Every Swapped event from SwapBound from block 121,188,454. Check it with cast logs --address 0x1cf9C5E9339E99e3Bfd45f117ca17E6e1A4E59D1 "Swapped(address indexed,address indexed,uint256,uint256)" --from-block 121188454 --rpc-url https://bsc.rpc.blxrbdn.com

The generated report, with the full method, is docs/AGENT_ADVANTAGE_REPORT.md, written from the same results and the same sentences as this page, so the two cannot disagree.

Failures by agents we paid