archon.audit.report
100.0
1,000,000 free RPC requestsJust a wallet, via x402.
Start buildingFor agent 97 on Mantle Mainnet · 2026-07-03
https://archonaudit.xyz/app/proofs
{
"chain": {
"name": "Mantle Mainnet",
"chainId": 5000
},
"report": {
"id": "f3f36339-4151-406e-be0c-2c538924a5d8",
"scope": {
"pragma": "^0.8.24",
"network": "mantle-mainnet",
"lineCount": 54,
"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": null,
"solcVersion": "0.8.24",
"gasOptimizer": {
"pricing": {
"mode": "calibrated-receipts",
"pricedAt": "2026-07-03T08:21:21.769Z",
"l2GasPriceWei": "50000100000",
"deployDataFeeMnt": "0",
"deployDataFeeWei": "0",
"calldataZeroBytes": 0,
"calibrationErrorPct": 0,
"calldataGasEstimate": 0,
"calldataNonZeroBytes": 0,
"creationBytecodeBytes": 0
},
"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": "0x5c5a475ecd7700ffd7cae4b1ea487fcec35e540500c1c436d95981a77dee6719",
"measurement": {
"forge": {
"ok": false,
"error": "No safety=safe gas patches available for automatic measurement.",
"command": null,
"attempted": false,
"gasReport": null
},
"source": "deterministic-estimate",
"status": "skipped",
"patches": [
{
"note": "Review-only patch is not auto-applied for measurement.",
"after": "Use the smallest ABI-safe integer width only when the domain is bounded and documented.",
"before": "function transfer(address to, uint256 amount) external returns (bool);",
"ruleId": "calldata-smaller-types",
"safety": "review",
"status": "skipped",
"l2GasDelta": null,
"l1DaDeltaWei": null
},
{
"note": "Review-only patch is not auto-applied for measurement.",
"after": "Use the smallest ABI-safe integer width only when the domain is bounded and documented.",
"before": "function approve(address spender, uint256 amount) external returns (bool);",
"ruleId": "calldata-smaller-types",
"safety": "review",
"status": "skipped",
"l2GasDelta": null,
"l1DaDeltaWei": null
},
{
"note": "Review-only patch is not auto-applied for measurement.",
"after": "Use the smallest ABI-safe integer width only when the domain is bounded and documented.",
"before": "function transferFrom(address from, address to, uint256 amount) external returns (bool);",
"ruleId": "calldata-smaller-types",
"safety": "review",
"status": "skipped",
"l2GasDelta": null,
"l1DaDeltaWei": null
}
],
"version": "archon.gasMeasurement.v1",
"measuredAt": "2026-07-03T08:21:22.070Z",
"rulesetHash": "e61ec010bcf2d4a86dcd4486da991fb79495da634463ffc7260c11e82e918929",
"contractHash": "5c5a475ecd7700ffd7cae4b1ea487fcec35e540500c1c436d95981a77dee6719"
},
"opportunities": [
{
"id": "calldata-smaller-types",
"file": "ReentrancyGuard_Suite__3_contracts_.sol",
"after": "Use the smallest ABI-safe integer width only when the domain is bounded and documented.",
"patch": {
"newText": " function transfer(address to, uint256 amount) external returns (bool); // REVIEW: bounded calldata params may be packable/smaller in structs or encoded batches",
"oldText": " function transfer(address to, uint256 amount) external returns (bool);"
},
"title": "Review calldata parameter width",
"where": "ReentrancyGuard_Suite__3_contracts_.sol:7",
"before": "function transfer(address to, uint256 amount) external returns (bool);",
"safety": "review",
"newText": " function transfer(address to, uint256 amount) external returns (bool); // REVIEW: bounded calldata params may be packable/smaller in structs or encoded batches",
"oldText": " function transfer(address to, uint256 amount) external returns (bool);",
"category": "calldata",
"severity": "low",
"lineStart": 7,
"rationale": "For individual ABI params uint256 still occupies a full word, but bounded types help packed structs/batches and prevent redundant calldata.",
"confidence": 0.55,
"estL1Delta": 16,
"estL2Delta": null,
"annualizedBasis": "Receipt-calibrated DA estimate for calldata/data bytes; exact deltas require V2.1.2 harness measurement.",
"estimatedGasSaved": null,
"estimatedDataBytesSaved": 16
},
{
"id": "calldata-smaller-types",
"file": "ReentrancyGuard_Suite__3_contracts_.sol",
"after": "Use the smallest ABI-safe integer width only when the domain is bounded and documented.",
"patch": {
"newText": " function approve(address spender, uint256 amount) external returns (bool); // REVIEW: bounded calldata params may be packable/smaller in structs or encoded batches",
"oldText": " function approve(address spender, uint256 amount) external returns (bool);"
},
"title": "Review calldata parameter width",
"where": "ReentrancyGuard_Suite__3_contracts_.sol:9",
"before": "function approve(address spender, uint256 amount) external returns (bool);",
"safety": "review",
"newText": " function approve(address spender, uint256 amount) external returns (bool); // REVIEW: bounded calldata params may be packable/smaller in structs or encoded batches",
"oldText": " function approve(address spender, uint256 amount) external returns (bool);",
"category": "calldata",
"severity": "low",
"lineStart": 9,
"rationale": "For individual ABI params uint256 still occupies a full word, but bounded types help packed structs/batches and prevent redundant calldata.",
"confidence": 0.55,
"estL1Delta": 16,
"estL2Delta": null,
"annualizedBasis": "Receipt-calibrated DA estimate for calldata/data bytes; exact deltas require V2.1.2 harness measurement.",
"estimatedGasSaved": null,
"estimatedDataBytesSaved": 16
},
{
"id": "calldata-smaller-types",
"file": "ReentrancyGuard_Suite__3_contracts_.sol",
"after": "Use the smallest ABI-safe integer width only when the domain is bounded and documented.",
"patch": {
"newText": " function transferFrom(address from, address to, uint256 amount) external returns (bool); // REVIEW: bounded calldata params may be packable/smaller in structs or encoded batches",
"oldText": " function transferFrom(address from, address to, uint256 amount) external returns (bool);"
},
"title": "Review calldata parameter width",
"where": "ReentrancyGuard_Suite__3_contracts_.sol:10",
"before": "function transferFrom(address from, address to, uint256 amount) external returns (bool);",
"safety": "review",
"newText": " function transferFrom(address from, address to, uint256 amount) external returns (bool); // REVIEW: bounded calldata params may be packable/smaller in structs or encoded batches",
"oldText": " function transferFrom(address from, address to, uint256 amount) external returns (bool);",
"category": "calldata",
"severity": "low",
"lineStart": 10,
"rationale": "For individual ABI params uint256 still occupies a full word, but bounded types help packed structs/batches and prevent redundant calldata.",
"confidence": 0.55,
"estL1Delta": 16,
"estL2Delta": null,
"annualizedBasis": "Receipt-calibrated DA estimate for calldata/data bytes; exact deltas require V2.1.2 harness measurement.",
"estimatedGasSaved": null,
"estimatedDataBytesSaved": 16
}
]
}
},
"scanId": "63200a27-2954-4f6b-85f6-877cd4ec7b56",
"createdAt": "2026-07-03T08:22:26.494Z",
"riskScore": 24,
"contractName": "ReentrancyGuard_Suite__3_contracts_",
"severityCounts": {
"low": 3,
"high": 0,
"info": 0,
"medium": 0,
"critical": 0
},
"executiveSummary": "Archon completed a read-only Mantle Mainnet audit of ReentrancyGuard_Suite__3_contracts_ and found 3 deterministic findings. The highest-priority issue is Review calldata parameter width, with risk score 24/100 based on severity-weighted findings. The function `transfer` uses `uint256` for the `amount` parameter, which is wider than the ERC-20 standard `uint` (uint256) but could be optimized if the token's total supply is significantly less than 2^256-1. However, since this is an interface definition, no optimization is needed, but the finding flags a potential review of calldata parameter width for gas efficiency on Mantle. Review the recommended fixes and run regression tests before deployment."
},
"schema": "archon.proof.metadata.v1",
"erc8004": {
"verifiedConfig": true,
"agentIdentityRef": "eip155:5000:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432:97",
"identityRegistry": "0x8004A169FB4a3325136EB29fA0ceB6D2e539a432",
"reputationRegistry": "0x8004BAa17C55a88189AE136b182e5fdA19dE9b63",
"validationRegistry": null
},
"product": "Archon",
"findings": [
{
"id": "dbd24a8a-5cc9-45ed-9dfd-cf2e78c7d093",
"title": "Review calldata parameter width",
"category": "mantle-gas-optimizer/calldata/calldata-smaller-types",
"location": {
"file": "ReentrancyGuard_Suite__3_contracts_.sol",
"lineEnd": 7,
"lineStart": 7
},
"severity": "low"
},
{
"id": "4540d5a6-cf93-49e0-a21a-9d99f0f68479",
"title": "Review calldata parameter width",
"category": "mantle-gas-optimizer/calldata/calldata-smaller-types",
"location": {
"file": "ReentrancyGuard_Suite__3_contracts_.sol",
"lineEnd": 9,
"lineStart": 9
},
"severity": "low"
},
{
"id": "42daab1a-b3e2-4885-8622-54a19a91f7f2",
"title": "Review calldata parameter width",
"category": "mantle-gas-optimizer/calldata/calldata-smaller-types",
"location": {
"file": "ReentrancyGuard_Suite__3_contracts_.sol",
"lineEnd": 10,
"lineStart": 10
},
"severity": "low"
}
]
}
ipfs://QmcpfWduiKP7QsNr8pRTZeP6rTAQ45QPtc2YZaMUj5YoRV