TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019b3836-5d1e-73b9-b31d-9c79a7bd8f09

complete
Chain ID
1
Address
Block Number
Created
Fri, Dec 19, 2025 8:04 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
2
Validated
2
Source
Bytecode only
Review Backing
Not yet
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
9283 artifact.fetch complete 1 / 3 3 months ago
9284 tool.cast_disasm complete 1 / 3 3 months ago
83168 analysis.bundle complete 1 / 3 1 week ago
83169 capability.graph complete 1 / 3 1 week ago
83170 detector.run complete 1 / 3 1 week ago
83171 validation.fork complete 1 / 3 1 week ago
113679 report.consolidate complete 1 / 6 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
View stderr
OpenAI Codex v0.118.0 (research preview)
--------
workdir: /tmp/codex-_8h4bypj
model: gpt-5.4
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: none
session id: 019d5c9b-57dd-7a90-8780-6f83afd90326
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
warning: Codex could not find system bubblewrap on PATH. Please install bubblewrap with your package manager. Codex will use the vendored bubblewrap in the meantime.
ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM.
ERROR: You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at Apr 8th, 2026 9:11 AM.
Metadata
{
    "codex": {
        "ran_at": "2026-04-05T07:46:21.344913+00:00",
        "returncode": 1
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 2414,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": null,
    "no_findings": null,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
1
Total opcodes
667
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLDATASIZE
00000006: ISZERO
00000007: PUSH2 0x008a
0000000a: JUMPI
0000000b: PUSH1 0x00
0000000d: CALLDATALOAD
0000000e: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002c: SWAP1
0000002d: DIV
0000002e: DUP1
0000002f: PUSH4 0x1720ea55
00000034: EQ
00000035: PUSH2 0x0093
00000038: JUMPI
00000039: DUP1
0000003a: PUSH4 0x70a08231
0000003f: EQ
00000040: PUSH2 0x00c1
00000043: JUMPI
00000044: DUP1
00000045: PUSH4 0x836a1e23
0000004a: EQ
0000004b: PUSH2 0x00ed
0000004e: JUMPI
0000004f: DUP1
00000050: PUSH4 0x8da5cb5b
00000055: EQ
00000056: PUSH2 0x00fc
00000059: JUMPI
0000005a: DUP1
0000005b: PUSH4 0xb6db8973
00000060: EQ
00000061: PUSH2 0x0135
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0xc03945f7
0000006b: EQ
0000006c: PUSH2 0x0158
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xecf09417
00000076: EQ
00000077: PUSH2 0x0167
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xfcc820e2
00000081: EQ
00000082: PUSH2 0x018a
00000085: JUMPI
00000086: PUSH2 0x008a
00000089: JUMP
0000008a: JUMPDEST
0000008b: PUSH2 0x0091
0000008e: JUMPDEST
0000008f: JUMPDEST
00000090: JUMP
00000091: JUMPDEST
00000092: STOP
00000093: JUMPDEST
00000094: PUSH2 0x00a9
00000097: PUSH1 0x04
00000099: DUP1
0000009a: DUP1
0000009b: CALLDATALOAD
0000009c: SWAP1
0000009d: PUSH1 0x20
0000009f: ADD
000000a0: SWAP1
000000a1: SWAP2
000000a2: SWAP1
000000a3: POP
000000a4: POP
000000a5: PUSH2 0x01b6
000000a8: JUMP
000000a9: JUMPDEST
000000aa: PUSH1 0x40
000000ac: MLOAD
000000ad: DUP1
000000ae: DUP3
000000af: ISZERO
000000b0: ISZERO
000000b1: DUP2
000000b2: MSTORE
000000b3: PUSH1 0x20
000000b5: ADD
000000b6: SWAP2
000000b7: POP
000000b8: POP
000000b9: PUSH1 0x40
000000bb: MLOAD
000000bc: DUP1
000000bd: SWAP2
000000be: SUB
000000bf: SWAP1
000000c0: RETURN
000000c1: JUMPDEST
000000c2: PUSH2 0x00d7
000000c5: PUSH1 0x04
000000c7: DUP1
000000c8: DUP1
000000c9: CALLDATALOAD
000000ca: SWAP1
000000cb: PUSH1 0x20
000000cd: ADD
000000ce: SWAP1
000000cf: SWAP2
000000d0: SWAP1
000000d1: POP
000000d2: POP
000000d3: PUSH2 0x02de
000000d6: JUMP
000000d7: JUMPDEST
000000d8: PUSH1 0x40
000000da: MLOAD
000000db: DUP1
000000dc: DUP3
000000dd: DUP2
000000de: MSTORE
000000df: PUSH1 0x20
000000e1: ADD
000000e2: SWAP2
000000e3: POP
000000e4: POP
000000e5: PUSH1 0x40
000000e7: MLOAD
000000e8: DUP1
000000e9: SWAP2
000000ea: SUB
000000eb: SWAP1
000000ec: RETURN
000000ed: JUMPDEST
000000ee: PUSH2 0x00fa
000000f1: PUSH1 0x04
000000f3: DUP1
000000f4: POP
000000f5: POP
000000f6: PUSH2 0x02f9
000000f9: JUMP
000000fa: JUMPDEST
000000fb: STOP
000000fc: JUMPDEST
000000fd: PUSH2 0x0109
00000100: PUSH1 0x04
00000102: DUP1
00000103: POP
00000104: POP
00000105: PUSH2 0x03c4
00000108: JUMP
00000109: JUMPDEST
0000010a: PUSH1 0x40
0000010c: MLOAD
0000010d: DUP1
0000010e: DUP3
0000010f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000124: AND
00000125: DUP2
00000126: MSTORE
00000127: PUSH1 0x20
00000129: ADD
0000012a: SWAP2
0000012b: POP
0000012c: POP
0000012d: PUSH1 0x40
0000012f: MLOAD
00000130: DUP1
00000131: SWAP2
00000132: SUB
00000133: SWAP1
00000134: RETURN
00000135: JUMPDEST
00000136: PUSH2 0x0142
00000139: PUSH1 0x04
0000013b: DUP1
0000013c: POP
0000013d: POP
0000013e: PUSH2 0x03ea
00000141: JUMP
00000142: JUMPDEST
00000143: PUSH1 0x40
00000145: MLOAD
00000146: DUP1
00000147: DUP3
00000148: DUP2
00000149: MSTORE
0000014a: PUSH1 0x20
0000014c: ADD
0000014d: SWAP2
0000014e: POP
0000014f: POP
00000150: PUSH1 0x40
00000152: MLOAD
00000153: DUP1
00000154: SWAP2
00000155: SUB
00000156: SWAP1
00000157: RETURN
00000158: JUMPDEST
00000159: PUSH2 0x0165
0000015c: PUSH1 0x04
0000015e: DUP1
0000015f: POP
00000160: POP
00000161: PUSH2 0x03f3
00000164: JUMP
00000165: JUMPDEST
00000166: STOP
00000167: JUMPDEST
00000168: PUSH2 0x0174
0000016b: PUSH1 0x04
0000016d: DUP1
0000016e: POP
0000016f: POP
00000170: PUSH2 0x048d
00000173: JUMP
00000174: JUMPDEST
00000175: PUSH1 0x40
00000177: MLOAD
00000178: DUP1
00000179: DUP3
0000017a: DUP2
0000017b: MSTORE
0000017c: PUSH1 0x20
0000017e: ADD
0000017f: SWAP2
00000180: POP
00000181: POP
00000182: PUSH1 0x40
00000184: MLOAD
00000185: DUP1
00000186: SWAP2
00000187: SUB
00000188: SWAP1
00000189: RETURN
0000018a: JUMPDEST
0000018b: PUSH2 0x01a0
0000018e: PUSH1 0x04
00000190: DUP1
00000191: DUP1
00000192: CALLDATALOAD
00000193: SWAP1
00000194: PUSH1 0x20
00000196: ADD
00000197: SWAP1
00000198: SWAP2
00000199: SWAP1
0000019a: POP
0000019b: POP
0000019c: PUSH2 0x0496
0000019f: JUMP
000001a0: JUMPDEST
000001a1: PUSH1 0x40
000001a3: MLOAD
000001a4: DUP1
000001a5: DUP3
000001a6: DUP2
000001a7: MSTORE
000001a8: PUSH1 0x20
000001aa: ADD
000001ab: SWAP2
000001ac: POP
000001ad: POP
000001ae: PUSH1 0x40
000001b0: MLOAD
000001b1: DUP1
000001b2: SWAP2
000001b3: SUB
000001b4: SWAP1
000001b5: RETURN
000001b6: JUMPDEST
000001b7: PUSH1 0x00
000001b9: PUSH1 0x00
000001bb: DUP3
000001bc: PUSH1 0x01
000001be: PUSH1 0x00
000001c0: POP
000001c1: PUSH1 0x00
000001c3: CALLER
000001c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001d9: AND
000001da: DUP2
000001db: MSTORE
000001dc: PUSH1 0x20
000001de: ADD
000001df: SWAP1
000001e0: DUP2
000001e1: MSTORE
000001e2: PUSH1 0x20
000001e4: ADD
000001e5: PUSH1 0x00
000001e7: KECCAK256
000001e8: PUSH1 0x00
000001ea: POP
000001eb: SLOAD
000001ec: LT
000001ed: ISZERO
000001ee: PUSH2 0x01f6
000001f1: JUMPI
000001f2: PUSH2 0x0002
000001f5: JUMP
000001f6: JUMPDEST
000001f7: PUSH1 0x03
000001f9: PUSH1 0x00
000001fb: POP
000001fc: SLOAD
000001fd: DUP4
000001fe: DIV
000001ff: SWAP1
00000200: POP
00000201: PUSH1 0x01
00000203: ISZERO
00000204: ISZERO
00000205: CALLER
00000206: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000021b: AND
0000021c: PUSH1 0x00
0000021e: DUP6
0000021f: PUSH1 0x40
00000221: MLOAD
00000222: DUP1
00000223: SWAP1
00000224: POP
00000225: PUSH1 0x00
00000227: PUSH1 0x40
00000229: MLOAD
0000022a: DUP1
0000022b: DUP4
0000022c: SUB
0000022d: DUP2
0000022e: DUP6
0000022f: DUP9
00000230: DUP9
00000231: CALL
00000232: SWAP4
00000233: POP
00000234: POP
00000235: POP
00000236: POP
00000237: ISZERO
00000238: ISZERO
00000239: EQ
0000023a: ISZERO
0000023b: PUSH2 0x02ce
0000023e: JUMPI
0000023f: DUP3
00000240: PUSH1 0x01
00000242: PUSH1 0x00
00000244: POP
00000245: PUSH1 0x00
00000247: CALLER
00000248: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000025d: AND
0000025e: DUP2
0000025f: MSTORE
00000260: PUSH1 0x20
00000262: ADD
00000263: SWAP1
00000264: DUP2
00000265: MSTORE
00000266: PUSH1 0x20
00000268: ADD
00000269: PUSH1 0x00
0000026b: KECCAK256
0000026c: PUSH1 0x00
0000026e: DUP3
0000026f: DUP3
00000270: DUP3
00000271: POP
00000272: SLOAD
00000273: SUB
00000274: SWAP3
00000275: POP
00000276: POP
00000277: DUP2
00000278: SWAP1
00000279: SSTORE
0000027a: POP
0000027b: DUP1
0000027c: PUSH1 0x02
0000027e: PUSH1 0x00
00000280: POP
00000281: PUSH1 0x00
00000283: CALLER
00000284: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000299: AND
0000029a: DUP2
0000029b: MSTORE
0000029c: PUSH1 0x20
0000029e: ADD
0000029f: SWAP1
000002a0: DUP2
000002a1: MSTORE
000002a2: PUSH1 0x20
000002a4: ADD
000002a5: PUSH1 0x00
000002a7: KECCAK256
000002a8: PUSH1 0x00
000002aa: DUP3
000002ab: DUP3
000002ac: DUP3
000002ad: POP
000002ae: SLOAD
000002af: SUB
000002b0: SWAP3
000002b1: POP
000002b2: POP
000002b3: DUP2
000002b4: SWAP1
000002b5: SSTORE
000002b6: POP
000002b7: PUSH2 0x02c1
000002ba: PUSH1 0x01
000002bc: CALLER
000002bd: PUSH2 0x04b1
000002c0: JUMP
000002c1: JUMPDEST
000002c2: PUSH1 0x01
000002c4: SWAP2
000002c5: POP
000002c6: PUSH2 0x02d8
000002c9: JUMP
000002ca: PUSH2 0x02d7
000002cd: JUMP
000002ce: JUMPDEST
000002cf: PUSH1 0x00
000002d1: SWAP2
000002d2: POP
000002d3: PUSH2 0x02d8
000002d6: JUMP
000002d7: JUMPDEST
000002d8: JUMPDEST
000002d9: POP
000002da: SWAP2
000002db: SWAP1
000002dc: POP
000002dd: JUMP
000002de: JUMPDEST
000002df: PUSH1 0x01
000002e1: PUSH1 0x00
000002e3: POP
000002e4: PUSH1 0x20
000002e6: MSTORE
000002e7: DUP1
000002e8: PUSH1 0x00
000002ea: MSTORE
000002eb: PUSH1 0x40
000002ed: PUSH1 0x00
000002ef: KECCAK256
000002f0: PUSH1 0x00
000002f2: SWAP2
000002f3: POP
000002f4: SWAP1
000002f5: POP
000002f6: SLOAD
000002f7: DUP2
000002f8: JUMP
000002f9: JUMPDEST
000002fa: PUSH1 0x00
000002fc: PUSH1 0x00
000002fe: SWAP1
000002ff: SLOAD
00000300: SWAP1
00000301: PUSH2 0x0100
00000304: EXP
00000305: SWAP1
00000306: DIV
00000307: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000031c: AND
0000031d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000332: AND
00000333: CALLER
00000334: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000349: AND
0000034a: EQ
0000034b: ISZERO
0000034c: PUSH2 0x03c1
0000034f: JUMPI
00000350: PUSH1 0x00
00000352: PUSH1 0x00
00000354: SWAP1
00000355: SLOAD
00000356: SWAP1
00000357: PUSH2 0x0100
0000035a: EXP
0000035b: SWAP1
0000035c: DIV
0000035d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000372: AND
00000373: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000388: AND
00000389: PUSH1 0x00
0000038b: PUSH3 0x200b20
0000038f: ADDRESS
00000390: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a5: AND
000003a6: BALANCE
000003a7: SUB
000003a8: PUSH1 0x40
000003aa: MLOAD
000003ab: DUP1
000003ac: SWAP1
000003ad: POP
000003ae: PUSH1 0x00
000003b0: PUSH1 0x40
000003b2: MLOAD
000003b3: DUP1
000003b4: DUP4
000003b5: SUB
000003b6: DUP2
000003b7: DUP6
000003b8: DUP9
000003b9: DUP9
000003ba: CALL
000003bb: SWAP4
000003bc: POP
000003bd: POP
000003be: POP
000003bf: POP
000003c0: POP
000003c1: JUMPDEST
000003c2: JUMPDEST
000003c3: JUMP
000003c4: JUMPDEST
000003c5: PUSH1 0x00
000003c7: PUSH1 0x00
000003c9: SWAP1
000003ca: SLOAD
000003cb: SWAP1
000003cc: PUSH2 0x0100
000003cf: EXP
000003d0: SWAP1
000003d1: DIV
000003d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003e7: AND
000003e8: DUP2
000003e9: JUMP
000003ea: JUMPDEST
000003eb: PUSH1 0x03
000003ed: PUSH1 0x00
000003ef: POP
000003f0: SLOAD
000003f1: DUP2
000003f2: JUMP
000003f3: JUMPDEST
000003f4: PUSH1 0x03
000003f6: PUSH1 0x00
000003f8: POP
000003f9: SLOAD
000003fa: CALLVALUE
000003fb: LT
000003fc: ISZERO
000003fd: ISZERO
000003fe: PUSH2 0x0485
00000401: JUMPI
00000402: CALLVALUE
00000403: PUSH1 0x01
00000405: PUSH1 0x00
00000407: POP
00000408: PUSH1 0x00
0000040a: CALLER
0000040b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000420: AND
00000421: DUP2
00000422: MSTORE
00000423: PUSH1 0x20
00000425: ADD
00000426: SWAP1
00000427: DUP2
00000428: MSTORE
00000429: PUSH1 0x20
0000042b: ADD
0000042c: PUSH1 0x00
0000042e: KECCAK256
0000042f: PUSH1 0x00
00000431: DUP3
00000432: DUP3
00000433: DUP3
00000434: POP
00000435: SLOAD
00000436: ADD
00000437: SWAP3
00000438: POP
00000439: POP
0000043a: DUP2
0000043b: SWAP1
0000043c: SSTORE
0000043d: POP
0000043e: PUSH1 0x03
00000440: PUSH1 0x00
00000442: POP
00000443: SLOAD
00000444: CALLVALUE
00000445: DIV
00000446: PUSH1 0x02
00000448: PUSH1 0x00
0000044a: POP
0000044b: PUSH1 0x00
0000044d: CALLER
0000044e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000463: AND
00000464: DUP2
00000465: MSTORE
00000466: PUSH1 0x20
00000468: ADD
00000469: SWAP1
0000046a: DUP2
0000046b: MSTORE
0000046c: PUSH1 0x20
0000046e: ADD
0000046f: PUSH1 0x00
00000471: KECCAK256
00000472: PUSH1 0x00
00000474: DUP3
00000475: DUP3
00000476: DUP3
00000477: POP
00000478: SLOAD
00000479: ADD
0000047a: SWAP3
0000047b: POP
0000047c: POP
0000047d: DUP2
0000047e: SWAP1
0000047f: SSTORE
00000480: POP
00000481: PUSH2 0x048a
00000484: JUMP
00000485: JUMPDEST
00000486: PUSH2 0x0002
00000489: JUMP
0000048a: JUMPDEST
0000048b: JUMPDEST
0000048c: JUMP
0000048d: JUMPDEST
0000048e: PUSH1 0x04
00000490: PUSH1 0x00
00000492: POP
00000493: SLOAD
00000494: DUP2
00000495: JUMP
00000496: JUMPDEST
00000497: PUSH1 0x02
00000499: PUSH1 0x00
0000049b: POP
0000049c: PUSH1 0x20
0000049e: MSTORE
0000049f: DUP1
000004a0: PUSH1 0x00
000004a2: MSTORE
000004a3: PUSH1 0x40
000004a5: PUSH1 0x00
000004a7: KECCAK256
000004a8: PUSH1 0x00
000004aa: SWAP2
000004ab: POP
000004ac: SWAP1
000004ad: POP
000004ae: SLOAD
000004af: DUP2
000004b0: JUMP
000004b1: JUMPDEST
000004b2: JUMPDEST
000004b3: POP
000004b4: POP
000004b5: JUMP
View stderr
Warning: This is a nightly build of Foundry. It is recommended to use the latest stable version. To mute this warning set `FOUNDRY_DISABLE_NIGHTLY_WARNING` in your environment.

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other detector Untrusted CALL target/value reachable 45 yes yes
view
trace_id: 0xb90728517a7ad5a0448aeb62ca4d3a504144ffe860c41c371fbcc8f1d26792e6
call_targets: 0x0000000000000000000000000000000000000001, 0xed8e3ab11371b9597ba4693bb107b09a4f4738b5
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xb90728517a7ad5a0448aeb62ca4d3a504144ffe860c41c371fbcc8f1d26792e6",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0xed8e3ab11371b9597ba4693bb107b09a4f4738b5"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x1720ea55",
            "selector": "0x1720ea55",
            "calldata_variants": [
                "0x1720ea55",
                "0x1720ea550000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x836a1e23",
            "selector": "0x836a1e23",
            "calldata_variants": [
                "0x836a1e23",
                "0x836a1e230000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb6db8973",
            "selector": "0xb6db8973",
            "calldata_variants": [
                "0xb6db8973",
                "0xb6db89730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc03945f7",
            "selector": "0xc03945f7",
            "calldata_variants": [
                "0xc03945f7",
                "0xc03945f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xecf09417",
            "selector": "0xecf09417",
            "calldata_variants": [
                "0xecf09417",
                "0xecf094170000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfcc820e2",
            "selector": "0xfcc820e2",
            "calldata_variants": [
                "0xfcc820e2",
                "0xfcc820e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 561,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 954,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 819,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 yes yes
view
trace_id: 0xb90728517a7ad5a0448aeb62ca4d3a504144ffe860c41c371fbcc8f1d26792e6
call_targets: 0x0000000000000000000000000000000000000001, 0xed8e3ab11371b9597ba4693bb107b09a4f4738b5
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xb90728517a7ad5a0448aeb62ca4d3a504144ffe860c41c371fbcc8f1d26792e6",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x0000000000000000000000000000000000000001",
        "0xed8e3ab11371b9597ba4693bb107b09a4f4738b5"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x1720ea55",
            "selector": "0x1720ea55",
            "calldata_variants": [
                "0x1720ea55",
                "0x1720ea550000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x70a08231",
            "selector": "0x70a08231",
            "calldata_variants": [
                "0x70a08231",
                "0x70a082310000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x836a1e23",
            "selector": "0x836a1e23",
            "calldata_variants": [
                "0x836a1e23",
                "0x836a1e230000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8da5cb5b",
            "selector": "0x8da5cb5b",
            "calldata_variants": [
                "0x8da5cb5b",
                "0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb6db8973",
            "selector": "0xb6db8973",
            "calldata_variants": [
                "0xb6db8973",
                "0xb6db89730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc03945f7",
            "selector": "0xc03945f7",
            "calldata_variants": [
                "0xc03945f7",
                "0xc03945f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xecf09417",
            "selector": "0xecf09417",
            "calldata_variants": [
                "0xecf09417",
                "0xecf094170000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfcc820e2",
            "selector": "0xfcc820e2",
            "calldata_variants": [
                "0xfcc820e2",
                "0xfcc820e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 561,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 954,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 819,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}