Agent Advantage Report
Three real tasks, each run twice: once by hiring the agent through Muster, once by hand against the same chain. Time, cost and whether the two answers agree, with both outputs attached in full.
Method, stated before the numbers
Operator ran both arms. The agent arm is the identical code the paid endpoint runs, on the identical inputs, timed round trip from a client. The control arm is one cast call at a time in the order a person would make them, timed wall clock, on the same machine. No independent grader and no first-time visitor were available before the close, so output quality is measured as numerical agreement between the two arms rather than by a blind rating.
generated 2026-09-08T14:05:52.424Z against https://muster.zkasuran.dev
| Task | Category | Hired through Muster | By hand | Do the answers agree |
|---|---|---|---|---|
| T1 Is this Venus borrower close to liquidation? | security (liquidation risk) | 5.01 s 1 call · 0.02 USD1 per call, quoted in the 402 | 18.78 s 21 RPC calls · operator time only, no payment | agent 1.7671 vs manual 1.7671, 0.00% apart |
| T2 Where does USD earn the most on Venus right now? | yield | 28.58 s 1 call · 0.02 USD1 per call, quoted in the 402 | 7.01 s 6 RPC calls · operator time only, no payment | agent top USDT 2.84% vs manual top vUSDT 2.84%. The manual arm assumes 0.45s blocks; the agent measures block time from the chain |
| T3 Plan an 8-level grid on WBNB/USDT around the live price | trading | 0.66 s 1 call · 0.05 USD1 per call, quoted in the 402 | 0.84 s 1 RPC calls · operator time only, no payment | agent mark 746.65 vs manual 746.65; agent L0 671.99 vs manual 671.9843 |
T1 Is this Venus borrower close to liquidation?
health factor of 0xed87331DcAe2ed002c42EdD102fEf91bd2BdB0bE
{
"account": "0xed87331DcAe2ed002c42EdD102fEf91bd2BdB0bE",
"healthFactor": 1.7670838359216596,
"verdict": "comfortable",
"totalCollateralUsd": 2833.1165333644626,
"totalBorrowUsd": 1603.2722815818138,
"liquidityUsd": 1229.8442517826486,
"shortfallUsd": 0,
"priceDropToLiquidationPct": 43.409589309132635,
"markets": [
{
"symbol": "vXRP",
"suppliedUsd": 4358.640820560711,
"liquidationThreshold": 0.65,
"weightedCollateralUsd": 2833.1165333644626,
"borrowedUsd": 567.1333455042083,
"collateralFactor": 0.5
},
{
"symbol": "vUSDT",
"suppliedUsd": 0,
"liquidationThreshold": 0.8,
"weightedCollateralUsd": 0,
"borrowedUsd": 510.93021790833524,
"collateralFactor": 0.8
},
{
"symbol": "vUSDC",
"suppliedUsd": 0,
"liquidationThreshold": 0.825,
"weightedCollateralUsd": 0,
"borrowedUsd": 525.2087181692702,
"collateralFactor": 0.825
}
],
"formula": "HF = sumCollateral(liquidationThreshold) / sumBorrowPlusEffects. Venus publishes liquidity and shortfall, never a health factor, so this is derived. Per entered market, collateral = liquidationThreshold * exchangeRateStored / 1e18 * oraclePrice / 1e18 * vTokenBalance / 1e18 and debt = oraclePrice * borrowBalance / 1e18, both USD scaled 1e18, all integer truncating. VAIController.getVAIRepayAmount is added to the debt side. Venus liquidates when shortfall is non-zero, which is exactly HF < 1.",
"atBlock": 120699254,
"readAt": 1788876334014
}{
"account": "0xed87331DcAe2ed002c42EdD102fEf91bd2BdB0bE",
"healthFactor": 1.7670838297908695,
"weightedCollateralUsd": 2833.12,
"borrowUsd": 1603.27,
"rows": [
{
"market": "vXRP",
"suppliedUsd": 4358.64,
"borrowedUsd": 567.13,
"liquidationThreshold": 0.65
},
{
"market": "vUSDT",
"suppliedUsd": 0,
"borrowedUsd": 510.93,
"liquidationThreshold": 0.8
},
{
"market": "vUSDC",
"suppliedUsd": 0,
"borrowedUsd": 525.21,
"liquidationThreshold": 0.825
}
],
"comptrollerLiquidity": "0\n1229844248510615991862 [1.229e21]\n0"
}T2 Where does USD earn the most on Venus right now?
rank Venus supply APYs
{
"rows": [
{
"venue": "Venus",
"asset": "USDT",
"assetAddress": "0x55d398326f99059fF775485246999027B3197955",
"kind": "supply",
"apy": 2.8404863884296416,
"tvlUsd": 194711330.70815915,
"source": "Venus core 0xfD5840Cd36d94D7229439859C0112a4185BC0255.supplyRatePerBlock()=399819311 at block 120698681, compounded daily over 191936.0 blocks/day measured at 0.45015 s/block. TVL from getCash()+totalBorrows()-totalReserves() priced by ResilientOracle 0x6592b5DE802159F3E74B2486b091D11a8256ab8A",
"readAt": 1788876072682,
"atBlock": 120698681
},
{
"venue": "Venus",
"asset": "U",
"assetAddress": "0xcE24439F2D9C6a2289F741120FE202248B666666",
"kind": "supply",
"apy": 2.3326794290732478,
"tvlUsd": 28259549.046097502,
"source": "Venus core 0x3d5E269787d562b74aCC55F18Bd26C5D09Fa245E.supplyRatePerBlock()=329156648 at block 120698681, compounded daily over 191936.0 blocks/day measured at 0.45015 s/block. TVL from getCash()+totalBorrows()-totalReserves() priced by ResilientOracle 0x6592b5DE802159F3E74B2486b091D11a8256ab8A",
"readAt": 1788876072682,
"atBlock": 120698681
},
{
"venue": "Venus",
"asset": "USDC",
"assetAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
"kind": "supply",
"apy": 2.1385182308190753,
"tvlUsd": 49902671.56041749,
"source": "Venus core 0xecA88125a5ADbe82614ffC12D0DB554E2e2867C8.supplyRatePerBlock()=302046157 at block 120698681, compounded daily over 191936.0 blocks/day measured at 0.45015 s/block. TVL from getCash()+totalBorrows()-totalReserves() priced by ResilientOracle 0x6592b5DE802159F3E74B2486b091D11a8256ab8A",
"readAt": 1788876072682,
"atBlock": 120698681
},
{
"venue": "Venus",
"asset": "ETH",
"assetAddress": "0x2170Ed0880ac9A755fd29B2688956BD959F933F8",
"kind": "supply",
"apy": 0.4448675397549007,
"tvlUsd": 46587653.48220113,
"source": "Venus core 0xf508fCD89b8bd15579dc79A6827cB4686A3592c8.supplyRatePerBlock()=63360672 at block 120698681, compounded daily over 191936.0 blocks/day measured at 0.45015 s/block. TVL from getCash()+totalBorrows()-totalReserves() priced by ResilientOracle 0x6592b5DE802159F3E74B2486b091D11a8256ab8A",
"readAt": 1788876072682,
"atBlock": 120698681
},
{
"venue": "Venus",
"asset": "BTCB",
"assetAddress": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c",
"kind": "supply",
"apy": 0.18829914566738104,
"tvlUsd": 463530668.0233607,
"source": "Venus core 0x882C173bC7Ff3b7786CA16dfeD3DFFfb9Ee7847B.supplyRatePerBlock()=26852922 at block 120698681, compounded daily over 191936.0 blocks/day measured at 0.45015 s/block. TVL from getCash()+totalBorrows()-totalReserves() priced by ResilientOracle 0x6592b5DE802159F3E74B2486b091D11a8256ab8A",
"readAt": 1788876072682,
"atBlock": 120698681
},
{
"venue": "Venus",
"asset": "WBNB",
"assetAddress": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
"kind": "supply",
"apy": 0.12668573749330392,
"tvlUsd": 76107919.8850136,
"source": "Venus core 0x6bCa74586218dB34cdB402295796b79663d816e9.supplyRatePerBlock()=18071915 at block 120698681, compounded daily over 191936.0 blocks/day measured at 0.45015 s/block. TVL from getCash()+totalBorrows()-totalReserves() priced by ResilientOracle 0x6592b5DE802159F3E74B2486b091D11a8256ab8A",
"readAt": 1788876072682,
"atBlock": 120698681
},
{
"venue": "Venus",
"asset": "Cake",
"assetAddress": "0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82",
"kind": "supply",
"apy": 0.015125782474512128,
"tvlUsd": 28950025.109455343,
"source": "Venus core 0x86aC3974e2BD0d60825230fa6F355fF11409df5c.supplyRatePerBlock()=2158916 at block 120698681, compounded daily over 191936.0 blocks/day measured at 0.45015 s/block. TVL from getCash()+totalBorrows()-totalReserves() priced by ResilientOracle 0x6592b5DE802159F3E74B2486b091D11a8256ab8A",
"readAt": 1788876072682,
"atBlock": 120698681
}
],
"note": "APY is derived from the per-block supply rate compounded at the measured BSC block time. It is the rate at the block shown and not a forecast.",
"count": 7,
"readAt": 1788876099876
}{
"assumedBlockTimeSeconds": 0.45,
"ranked": [
{
"market": "vUSDT",
"apy": 2.8414
},
{
"market": "vUSDC",
"apy": 2.1392
},
{
"market": "vETH",
"apy": 0.445
},
{
"market": "vBTC",
"apy": 0.1884
},
{
"market": "vBNB",
"apy": 0.076
}
]
}T3 Plan an 8-level grid on WBNB/USDT around the live price
grid ladder, 10% each side, 1000 USDT
{
"plan": {
"pair": "WBNB/USDT",
"markPrice": 746.6514112979634,
"lower": 671.986270168167,
"upper": 821.3165524277598,
"levelCount": 8,
"spacingPct": 2.9082102407559596,
"levels": [
{
"index": 0,
"price": 671.986270168167,
"side": "buy",
"sizeBase": 0.18601570530409542,
"notionalQuote": 125
},
{
"index": 1,
"price": 691.5290436936717,
"side": "buy",
"sizeBase": 0.1807588576935773,
"notionalQuote": 125
},
{
"index": 2,
"price": 711.6401621601727,
"side": "buy",
"sizeBase": 0.17565056983372668,
"notionalQuote": 125
},
{
"index": 3,
"price": 732.3361542334472,
"side": "buy",
"sizeBase": 0.17068664339102624,
"notionalQuote": 125
},
{
"index": 4,
"price": 753.6340292676226,
"side": "sell",
"sizeBase": 0.16586299867785204,
"notionalQuote": 125
},
{
"index": 5,
"price": 775.5512912846054,
"side": "sell",
"sizeBase": 0.16117567129951244,
"notionalQuote": 125
},
{
"index": 6,
"price": 798.1059533600595,
"side": "sell",
"sizeBase": 0.15662080889604288,
"notionalQuote": 125
},
{
"index": 7,
"price": 821.3165524277598,
"side": "sell",
"sizeBase": 0.15219466797607806,
"notionalQuote": 125
}
],
"capitalRequiredQuote": 500,
"capitalRequiredBase": 0.6358541468494854,
"breakoutRule": "Above 821.317 USDT every sell has filled, the plan holds only USDT and nothing fills again until price comes back inside the band. Below 671.986 USDT every buy has filled while no sell did, so the plan holds 1.34897 WBNB in all: the 0.635854 the sell side started with plus 0.713112 bought at an average of 701.152 USDT, down on paper for as long as price stays under the band. It never buys above 821.317 or sells below 671.986, so a breakout stops the earning rather than forcing a loss. Recentre the grid on the new mark or hold the inventory until price comes back.",
"expectedFillsPerCycle": 14,
"warnings": [],
"readAt": 1788876107449,
"atBlock": 120698760
},
"readAt": 1788876107547
}{
"pool": "0x172fcD41E0913e95784454622d1c3724f546f849",
"markPrice": 746.6493,
"lower": 671.9843,
"upper": 821.3142,
"levels": [
671.9843,
691.527,
711.6381,
732.334,
753.6319,
775.5491,
798.1036,
821.3142
],
"capitalPerBuyLevel": 250
}What this does and does not show
On T1 and T3 the agent arm is faster because one call replaces a chain of reads a person has to sequence and price by hand, and its outputs carry the block they were read at. On T2 the hired arm was slower than the control. That is a real result and it is kept: the agent walks every Venus market, 55 of them, then ranks, while the control read five markets the operator already knew to pick. The agent also measures the block time it compounds with, where the control assumed 0.45 seconds. A cold process paid the full walk. A second call within the freshness window answers from the cache in under a second, which the status page shows. Coverage cost time here. The report says so rather than picking the faster framing. The manual arm is what a competent operator with cast can do in the time shown, and it needs the operator to already know the contract addresses and the formula. Cost on the agent side is the quoted price in the 402. Settlement through Binance B402 is pending a merchant developer account, so the hired arm in this run was the identical code path minus the on-chain settle, and the report says that rather than implying a payment cleared. No independent grader and no first-time visitor rated the outputs, so quality is reported as agreement between the two arms.