Skip to content
GET /v1/disassemble

Full opcode disassembly (paged)

Try it live

10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.

Custom headers (optional)
api.oanor.com/bytecode-api

It works. Grab an API key and use it in your project.

Get an API key

Code snippets

curl "https://api.oanor.com/bytecode-api/v1/disassemble" \
  -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/bytecode-api/v1/disassemble", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/bytecode-api/v1/disassemble");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
    "https://api.oanor.com/bytecode-api/v1/disassemble",
    headers={"x-oanor-key": "oanor_test_..."}
)

Example response

A real response from this endpoint, captured by the latest health check.

{
    "data": {
        "note": "EVM disassembly of the runtime bytecode. Each instruction has its byte offset, opcode, mnemonic and (for PUSH) the immediate data. Page with limit/offset.",
        "chain": "ethereum",
        "count": 50,
        "limit": 50,
        "offset": 0,
        "source": "public JSON-RPC (publicnode) + local EVM decode",
        "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
        "truncated": true,
        "size_bytes": 2186,
        "instructions": [
            {
                "push": "0x80",
                "offset": 0,
                "opcode": "0x60",
                "mnemonic": "PUSH1"
            },
            {
                "push": "0x40",
                "offset": 2,
                "opcode": "0x60",
                "mnemonic": "PUSH1"
            },
            {
                "offset": 4,
                "opcode": "0x52",
                "mnemonic": "MSTORE"
            },
            {
                "push": "0x04",
                "offset": 5,
                "opcode": "0x60",
                "mnemonic": "PUSH1"
            },
            {
                "offset": 7,
                "opcode": "0x36",
                "mnemonic": "CALLDATASIZE"
            },
            {
                "offset": 8,
                "opcode": "0x10",
                "mnemonic": "LT"
            },
            {
                "push": "0x006d",
                "offset": 9,
                "opcode": "0x61",
                "mnemonic": "PUSH2"
            },
            {
                "offset": 12,
                "opcode": "0x57",
                "mnemonic": "JUMPI"
            },
            {
                "push": "0x00",
                "offset": 13,
                "opcode": "0x60",
                "mnemonic": "PUSH1"
            },
            {
                "offset": 15,
                "opcode": "0x35",
                "mnemonic": "CALLDATALOAD"
            },
            {
                "push": "0x0100000000000000000000000000000000000000000000000000000000",
                "offset": 16,
                "opcode": "0x7c",
                "mnemonic": "PUSH29"
            },
            {
                "offset": 46,
                "opcode": "0x90",
                "mnemonic": "SWAP1"
            },
            {
                "offset": 47,
                "opcode": "0x04",
                "mnemonic": "DIV"
            },
            {
                "push": "0xffffffff",
                "offset": 48,
                "opcode": "0x63",
                "mnemonic": "PUSH4"
            },
            {
                "offset": 53,
                "opcode": "0x16",
                "mnemonic": "AND"
            },
            {
                "offset": 54,
                "opcode": "0x80",
                "mnemonic": "DUP1"
            },
            {
                "push": "0x3659cfe6",
                "offset": 55,
                "opcode": "0x63",
                "mnemonic": "PUSH4
…