archon.audit.report
100.0
1,000,000 free RPC requestsJust a wallet, via x402.
Start buildingFor agent 97 on Mantle Mainnet · 2026-06-21
https://archonaudit.xyz/app/proofs
{
"chain": {
"name": "Mantle Mainnet",
"chainId": 5000
},
"report": {
"id": "961554a8-40e1-47ed-ade0-b8206f5a42d6",
"scope": {
"pragma": "^0.8.24",
"network": "mantle-mainnet",
"lineCount": 203,
"protocols": [
"mETH",
"cmETH",
"USDY",
"Aave V3",
"Merchant Moe",
"Agni"
],
"sourceKind": "paste",
"aiReasoning": {
"hits": 0,
"total": 3,
"misses": 3,
"batches": 2,
"reasons": {},
"skipped": 0,
"enriched": 3,
"provider": "tokenhub",
"timeoutMs": 75000,
"fallbackCount": 0,
"providersUsed": [
"Tencent Cloud TokenHub (deepseek-v4-pro)"
]
},
"reducedMode": {
"detail": "Command failed: slither packages/contracts/src/core/EscrowManager.sol --solc solc --solc-args --base-path /tmp/archon-scan-73a1b771-d348-4a2d-8e21-248b69ee143b-fYOCdJ --allow-paths /tmp/archon-scan-73a1b771-d348-4a2d-8e21-248b69ee143b-fYOCdJ --solc-remaps @ope",
"reason": "External imports could not be resolved.",
"unresolvedImports": [
"openzeppelin/4/contracts/access/Ownable2Step.sol",
"openzeppelin/4/contracts/token/ERC20/IERC20.sol",
"openzeppelin/4/contracts/token/ERC20/utils/SafeERC20.sol",
"openzeppelin/4/contracts/utils/Pausable.sol",
"openzeppelin/4/contracts/utils/ReentrancyGuard.sol",
"@openzeppelin/contracts/access/Ownable2Step.sol",
"@openzeppelin/contracts/token/ERC20/IERC20.sol",
"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
"@openzeppelin/contracts/utils/Pausable.sol",
"@openzeppelin/contracts/utils/ReentrancyGuard.sol"
]
},
"solcVersion": "0.8.24",
"gasOptimizer": {
"pricing": {
"mode": "calibrated-receipts",
"pricedAt": "2026-06-21T13:57:00.093Z",
"l2GasPriceWei": "50000100000",
"deployDataFeeMnt": "0.028611639396043532",
"deployDataFeeWei": "28611639396043532",
"calldataZeroBytes": 391,
"calibrationErrorPct": 0,
"calldataGasEstimate": 125836,
"calldataNonZeroBytes": 7767,
"creationBytecodeBytes": 8158
},
"daPricing": {
"model": {
"mode": "calibrated-receipts",
"samples": [
{
"txHash": "0x82d99588e5f1bff33d618743025d598445493032637de25844a67aa8e88088ef",
"l1FeeWei": "699231354481640",
"l1GasUsed": "2530",
"zeroBytes": 135,
"l1GasPrice": "538782662",
"totalBytes": 228,
"blobGasUsed": "63200",
"blockNumber": "96205628",
"nonZeroBytes": 93,
"l1BlobBaseFee": "330004069609410902",
"l1BaseFeeScalar": "169019",
"operatorFeeScalar": "100000000",
"calldataGasEstimate": 2028,
"l1BlobBaseFeeScalar": "0",
"operatorFeeConstant": "0",
"daFootprintGasScalar": "400"
},
{
"txHash": "0xb9ce87de86b212b91eb64012bbdab91014373da1f6d960470b340e1991a1a7c5",
"l1FeeWei": "6874261528561290",
"l1GasUsed": "22258",
"zeroBytes": 28,
"l1GasPrice": "603039864",
"totalBytes": 1945,
"blobGasUsed": "556400",
"blockNumber": "96205472",
"nonZeroBytes": 1917,
"l1BlobBaseFee": "321479049246759320",
"l1BaseFeeScalar": "169019",
"operatorFeeScalar": "100000000",
"calldataGasEstimate": 30784,
"l1BlobBaseFeeScalar": "0",
"operatorFeeConstant": "0",
"daFootprintGasScalar": "400"
}
],
"validation": [
{
"txHash": "0x82d99588e5f1bff33d618743025d598445493032637de25844a67aa8e88088ef",
"errorPct": 0,
"actualL1FeeWei": "699231354481640",
"predictedL1FeeWei": "699231354481572"
},
{
"txHash": "0xb9ce87de86b212b91eb64012bbdab91014373da1f6d960470b340e1991a1a7c5",
"errorPct": 0,
"actualL1FeeWei": "6874261528561290",
"predictedL1FeeWei": "6874261528560500"
}
],
"sampleCount": 2,
"zeroByteFeeWei": "2736708878864",
"nonZeroByteFeeWei": "3545974793924",
"maxValidationErrorPct": 0,
"meanValidationErrorPct": 0
},
"source": "receipt-calibrated",
"groundTruthField": "l1Fee"
},
"sourceHash": "0xf57bfa65c64195b3c9a5ded0db49d7b380344d748bd3efe75838a2af18d4986d",
"measurement": {
"forge": {
"ok": false,
"error": "Reduced mode: external imports unresolved.",
"command": null,
"attempted": false,
"gasReport": null
},
"source": "deterministic-estimate",
"status": "skipped",
"patches": [],
"version": "archon.gasMeasurement.v1",
"measuredAt": "2026-06-21T13:57:00.335Z",
"rulesetHash": "reduced-mode",
"contractHash": "f57bfa65c64195b3c9a5ded0db49d7b380344d748bd3efe75838a2af18d4986d"
},
"opportunities": [
{
"id": "immutable-constant",
"file": "EscrowManager.sol",
"after": "address constant owner = agentRegistry.ownerOf(escrow.agentId);",
"patch": {
"newText": " address constant owner = agentRegistry.ownerOf(escrow.agentId);",
"oldText": " address owner = agentRegistry.ownerOf(escrow.agentId);"
},
"title": "Mark never-changing value constant or immutable",
"where": "EscrowManager.sol:140",
"before": "address owner = agentRegistry.ownerOf(escrow.agentId);",
"safety": "review",
"newText": " address constant owner = agentRegistry.ownerOf(escrow.agentId);",
"oldText": " address owner = agentRegistry.ownerOf(escrow.agentId);",
"category": "storage",
"severity": "info",
"lineStart": 140,
"rationale": "Constants/immutables avoid storage reads for values that do not change after deployment.",
"confidence": 0.62,
"estL1Delta": null,
"estL2Delta": 2100,
"annualizedBasis": "Static deterministic estimate. Exact runtime deltas require queued Foundry snapshots with representative inputs.",
"estimatedGasSaved": 2100,
"estimatedDataBytesSaved": null
},
{
"id": "cache-repeated-sload",
"file": "EscrowManager.sol",
"after": "uint256 cached = _escrows[escrowId]; // reuse cached value",
"patch": {
"newText": "_escrows[escrowId]",
"oldText": "_escrows[escrowId]"
},
"title": "Cache repeated storage read",
"where": "EscrowManager.sol:69",
"before": "_escrows[escrowId] read 2 times",
"safety": "review",
"newText": "_escrows[escrowId]",
"oldText": "_escrows[escrowId]",
"category": "storage",
"severity": "info",
"lineStart": 69,
"rationale": "Repeated SLOADs should be cached in stack/memory when state cannot change between reads.",
"confidence": 0.7,
"estL1Delta": null,
"estL2Delta": 100,
"annualizedBasis": "Static deterministic estimate. Exact runtime deltas require queued Foundry snapshots with representative inputs.",
"estimatedGasSaved": 100,
"estimatedDataBytesSaved": null
}
]
}
},
"scanId": "73a1b771-d348-4a2d-8e21-248b69ee143b",
"createdAt": "2026-06-21T13:57:49.010Z",
"riskScore": 24,
"contractName": "Agora_Escrow_Manager",
"severityCounts": {
"low": 0,
"high": 0,
"info": 2,
"medium": 1,
"critical": 0
},
"executiveSummary": "Archon completed a read-only Mantle Mainnet audit of Agora_Escrow_Manager and found 3 deterministic findings. The highest-priority issue is Timestamp-sensitive settlement lacks explicit tolerance window, with risk score 24/100 based on severity-weighted findings. The deadline check uses exact `block.timestamp` comparison, which can cause transactions to revert even if they are submitted very close to the deadline due to slight block timing variations. Without a tolerance window (e.g., a few seconds), legitimate user actions near the expiry may reliably fail. Review the recommended fixes and run regression tests before deployment. External imports could not be resolved (openzeppelin/4/contracts/access/Ownable2Step.sol, openzeppelin/4/contracts/token/ERC20/IERC20.sol, openzeppelin/4/contracts/token/ERC20/utils/SafeERC20.sol, openzeppelin/4/contracts/utils/Pausable.sol, openzeppelin/4/contracts/utils/ReentrancyGuard.sol, @openzeppelin/contracts/access/Ownable2Step.sol, @openzeppelin/contracts/token/ERC20/IERC20.sol, @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol, @openzeppelin/contracts/utils/Pausable.sol, @openzeppelin/contracts/utils/ReentrancyGuard.sol); static analysis ran in reduced mode, so Slither/import-dependent checks were skipped while Archon's deterministic rules still ran."
},
"schema": "archon.proof.metadata.v1",
"erc8004": {
"verifiedConfig": true,
"agentIdentityRef": "eip155:5000:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:97",
"identityRegistry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
"reputationRegistry": "0x8004BAa17C55a88189AE136b182e5fdA19dE9b63",
"validationRegistry": null
},
"product": "Archon",
"findings": [
{
"id": "b5869396-1e65-4a38-ba58-656e3c97cc58",
"title": "Timestamp-sensitive settlement lacks explicit tolerance window",
"category": "mantle-timestamp-assumption",
"location": {
"file": "EscrowManager.sol",
"lineEnd": null,
"lineStart": 62
},
"severity": "medium"
},
{
"id": "e641486f-5d36-4275-91ee-6dd645f95d24",
"title": "Mark never-changing value constant or immutable",
"category": "mantle-gas-optimizer/storage/immutable-constant",
"location": {
"file": "EscrowManager.sol",
"lineEnd": 140,
"lineStart": 140
},
"severity": "info"
},
{
"id": "ccddd224-93de-4789-911b-a5b885bd86e5",
"title": "Cache repeated storage read",
"category": "mantle-gas-optimizer/storage/cache-repeated-sload",
"location": {
"file": "EscrowManager.sol",
"lineEnd": 69,
"lineStart": 69
},
"severity": "info"
}
]
}
ipfs://QmdY3Ycb1fB9QFmPmQT2jLqhUap6dBjpgi4exWeAb9HJuN