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

Analysis Run

019ba90a-917d-7138-a0cc-9509617b6e56

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 10, 2026 5:53 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
0
Validated
0
Source
Bytecode only
Review Backing
Not yet
Best current signal
SELFDESTRUCT present
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
34449 artifact.fetch complete 1 / 3 3 months ago
34450 proxy.resolve complete 1 / 3 3 months ago
34451 tool.cast_disasm complete 1 / 3 3 months ago
34452 analysis.bundle complete 1 / 3 3 months ago
34453 capability.graph complete 1 / 3 3 months ago
34454 detector.run complete 1 / 3 3 months ago
34455 validation.fork complete 1 / 3 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: no
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate

No codex job recorded yet.

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
0
EXT*/BALANCE
1
Total opcodes
212
Flags
delegatecall_present selfdestruct_present create_opcodes_present
View cast disassembly output
00000000: PUSH1 0x03
00000002: CALLDATASIZE
00000003: GT
00000004: PUSH2 0x000c
00000007: JUMPI
00000008: PUSH2 0x009f
0000000b: JUMP
0000000c: JUMPDEST
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: PUSH4 0x83197ef0
00000018: DUP2
00000019: XOR
0000001a: PUSH2 0x009d
0000001d: JUMPI
0000001e: PUSH1 0x04
00000020: CALLDATASIZE
00000021: XOR
00000022: PUSH2 0x0108
00000025: JUMPI
00000026: CALLVALUE
00000027: PUSH2 0x0108
0000002a: JUMPI
0000002b: PUSH1 0x20
0000002d: PUSH2 0x013a
00000030: PUSH1 0x00
00000032: CODECOPY
00000033: PUSH1 0x00
00000035: MLOAD
00000036: CALLER
00000037: XOR
00000038: ISZERO
00000039: PUSH2 0x0099
0000003c: JUMPI
0000003d: PUSH1 0x04
0000003f: PUSH1 0x40
00000041: MSTORE
00000042: PUSH32 0x5541204600000000000000000000000000000000000000000000000000000000
00000063: PUSH1 0x60
00000065: MSTORE
00000066: PUSH1 0x40
00000068: POP
00000069: PUSH1 0x40
0000006b: MLOAD
0000006c: DUP1
0000006d: PUSH1 0x60
0000006f: ADD
00000070: PUSH1 0x1f
00000072: DUP3
00000073: PUSH1 0x00
00000075: SUB
00000076: AND
00000077: CALLDATASIZE
00000078: DUP3
00000079: CALLDATACOPY
0000007a: POP
0000007b: POP
0000007c: PUSH4 0x08c379a0
00000081: PUSH1 0x00
00000083: MSTORE
00000084: PUSH1 0x20
00000086: PUSH1 0x20
00000088: MSTORE
00000089: PUSH1 0x1f
0000008b: NOT
0000008c: PUSH1 0x1f
0000008e: PUSH1 0x40
00000090: MLOAD
00000091: ADD
00000092: AND
00000093: PUSH1 0x44
00000095: ADD
00000096: PUSH1 0x1c
00000098: REVERT
00000099: JUMPDEST
0000009a: CALLER
0000009b: SELFDESTRUCT
0000009c: STOP
0000009d: JUMPDEST
0000009e: POP
0000009f: JUMPDEST
000000a0: CALLDATASIZE
000000a1: PUSH2 0x00a9
000000a4: JUMPI
000000a5: PUSH2 0x0106
000000a8: JUMP
000000a9: JUMPDEST
000000aa: PUSH1 0x00
000000ac: PUSH1 0x40
000000ae: MSTORE
000000af: PUSH1 0x00
000000b1: PUSH1 0xa0
000000b3: MSTORE
000000b4: PUSH1 0xa0
000000b6: DUP1
000000b7: MLOAD
000000b8: DUP1
000000b9: PUSH1 0x60
000000bb: MSTORE
000000bc: POP
000000bd: POP
000000be: MSIZE
000000bf: PUSH1 0x01
000000c1: PUSH1 0xc0
000000c3: CALLDATASIZE
000000c4: CALLDATASIZE
000000c5: PUSH1 0x00
000000c7: DUP6
000000c8: CALLDATACOPY
000000c9: DUP4
000000ca: PUSH1 0x20
000000cc: PUSH2 0x011a
000000cf: PUSH1 0x00
000000d1: CODECOPY
000000d2: PUSH1 0x00
000000d4: MLOAD
000000d5: GAS
000000d6: DELEGATECALL
000000d7: SWAP1
000000d8: POP
000000d9: PUSH1 0x40
000000db: MSTORE
000000dc: RETURNDATASIZE
000000dd: PUSH1 0x01
000000df: DUP2
000000e0: XOR
000000e1: RETURNDATASIZE
000000e2: PUSH1 0x01
000000e4: LT
000000e5: MUL
000000e6: XOR
000000e7: PUSH1 0xa0
000000e9: MSTORE
000000ea: PUSH1 0xa0
000000ec: DUP1
000000ed: MLOAD
000000ee: DUP1
000000ef: PUSH1 0x60
000000f1: MSTORE
000000f2: PUSH1 0x20
000000f4: DUP3
000000f5: ADD
000000f6: DUP1
000000f7: MLOAD
000000f8: PUSH1 0x80
000000fa: MSTORE
000000fb: POP
000000fc: POP
000000fd: POP
000000fe: PUSH1 0x40
00000100: MLOAD
00000101: ISZERO
00000102: PUSH2 0x0108
00000105: JUMPI
00000106: JUMPDEST
00000107: STOP
00000108: JUMPDEST
00000109: PUSH1 0x00
0000010b: DUP1
0000010c: REVERT
0000010d: LOG1
0000010e: PUSH6 0x767970657283
00000115: STOP
00000116: SUB
00000117: MOD
00000118: STOP
00000119: SIGNEXTEND
0000011a: STOP
0000011b: STOP
0000011c: STOP
0000011d: STOP
0000011e: STOP
0000011f: STOP
00000120: STOP
00000121: STOP
00000122: STOP
00000123: STOP
00000124: STOP
00000125: STOP
00000126: CREATE
00000127: UNKNOWN(0xB4)
00000128: DUP6
00000129: DIFFICULTY
0000012a: UNKNOWN(0xE1)
0000012b: MSTORE
0000012c: UNKNOWN(0xB4)
0000012d: UNKNOWN(0xE4)
0000012e: AND
0000012f: CALLDATASIZE
00000130: UNKNOWN(0xBF)
00000131: UNKNOWN(0xA6)
00000132: SHL
00000133: PUSH5 0x4c5458c25b
00000139: DIFFICULTY
0000013a: STOP
0000013b: STOP
0000013c: STOP
0000013d: STOP
0000013e: STOP
0000013f: STOP
00000140: STOP
00000141: STOP
00000142: STOP
00000143: STOP
00000144: STOP
00000145: STOP
00000146: STOP
00000147: BALANCE
00000148: DUP7
00000149: PUSH28

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
high other detector SELFDESTRUCT reachable 65 no no
view
trace_id: 0x8f8506b38fc8f4ef65bca570e62b616a83cca8e85f6218388582a1c8fe42c0e4
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 1,
    "trace_id": "0x8f8506b38fc8f4ef65bca570e62b616a83cca8e85f6218388582a1c8fe42c0e4",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x",
            "selector": "fallback",
            "calldata_variants": [
                "0x"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [],
    "selfdestruct_count": 1
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x8f8506b38fc8f4ef65bca570e62b616a83cca8e85f6218388582a1c8fe42c0e4
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 1,
    "trace_id": "0x8f8506b38fc8f4ef65bca570e62b616a83cca8e85f6218388582a1c8fe42c0e4",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x",
            "selector": "fallback",
            "calldata_variants": [
                "0x"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}