{
    "meta": {
        "dataset": "Stratum Protocol Message Reference",
        "publisher": "D-Central Technologies",
        "url": "https://d-central.tech/data/stratum-protocol-reference/",
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "license_name": "CC BY 4.0",
        "version": "1.0",
        "dateModified": "2026-07-02",
        "description": "Catalogue of Stratum V1 JSON-RPC methods and Stratum V2 binary message types: name, protocol, direction, key parameters, purpose and governing BIP. Grounded on the Bitcoin Mining Hack Bible (STRATUM_PROTOCOL_BIBLE). Neutral protocol reference; no firmware-support claims. CC BY 4.0.",
        "column_notes": {
            "protocol": "V1 = Stratum V1 JSON-RPC method. V2 = Stratum V2 binary message.",
            "direction": "client->server | server->client | bi. For V2 Job Declaration rows, JDC (Job Declarator Client, miner side) maps to client and JDS (Job Declarator Server, pool side) maps to server.",
            "msg_type": "Stratum V2 message-type byte (hex). Empty for Stratum V1 methods (V1 is JSON-RPC by method name).",
            "governing_bip": "The BIP that governs the extension a field enables, where one applies (e.g. version rolling -> BIP 310; V2 version bits -> BIP 320; SegWit coinbase -> BIP 141). Empty means no single governing BIP — Stratum itself is a de-facto spec, not a BIP.",
            "confidence": "c = field layout itemised in the Bible source. r = message confirmed in the Bible message table but the field layout shown follows the SV2/Stratum spec convention and is not itemised in the Bible."
        },
        "citation": [
            "https://stratumprotocol.org/",
            "https://github.com/stratum-mining/sv2-spec",
            "https://en.bitcoin.it/wiki/Stratum_mining_protocol",
            "https://github.com/bitcoin/bips/blob/master/bip-0310.mediawiki"
        ],
        "disclaimer": "Reference distilled from the Bitcoin Mining Hack Bible. Verify against the canonical Stratum V2 specification and BIP text before implementation."
    },
    "rows": [
        {
            "id": "v1-mining-subscribe",
            "name": "mining.subscribe",
            "protocol": "V1",
            "direction": "client->server",
            "msg_type": "",
            "key_params": "user_agent; [prev_extranonce1] (optional, session resume)",
            "purpose": "Registers the miner with the pool and obtains its per-connection extranonce1 prefix and the extranonce2_size (byte width) the miner may roll.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.2",
            "notes": "Result = subscription pairs, extranonce1 (hex, pool-assigned, unique per connection) and extranonce2_size (int)."
        },
        {
            "id": "v1-mining-authorize",
            "name": "mining.authorize",
            "protocol": "V1",
            "direction": "client->server",
            "msg_type": "",
            "key_params": "worker_name (username.worker); password (often \"x\")",
            "purpose": "Authenticates a worker with the pool. A worker must be authorized before any share it submits is credited.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.3",
            "notes": "Result is a boolean true/false."
        },
        {
            "id": "v1-mining-notify",
            "name": "mining.notify",
            "protocol": "V1",
            "direction": "server->client",
            "msg_type": "",
            "key_params": "job_id; prev_hash; coinbase_1; coinbase_2; merkle_branches[]; version; nbits; ntime; clean_jobs",
            "purpose": "The core work-distribution message: carries everything the miner needs to assemble the block header for a job.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.4",
            "notes": "prev_hash is in the non-standard pool byte order. clean_jobs=true means discard all pending work and reset extranonce2 to 0."
        },
        {
            "id": "v1-mining-set-difficulty",
            "name": "mining.set_difficulty",
            "protocol": "V1",
            "direction": "server->client",
            "msg_type": "",
            "key_params": "difficulty (pool difficulty / pdiff)",
            "purpose": "Sets the share-difficulty target the miner must meet. Takes effect on the NEXT mining.notify.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.5",
            "notes": "A single scalar; V2 replaces this with a U256 SetTarget."
        },
        {
            "id": "v1-mining-submit",
            "name": "mining.submit",
            "protocol": "V1",
            "direction": "client->server",
            "msg_type": "",
            "key_params": "worker_name; job_id; extranonce2; ntime; nonce; [version_bits] (BIP 310)",
            "purpose": "Submits a share — a nonce that meets the current share target — to the pool for credit.",
            "governing_bip": "BIP 310 (optional version_bits param)",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.6",
            "notes": "The 6th version_bits parameter is present only when version rolling was negotiated. Rejects return a numeric error code 20-25 (see /stratum-error-codes/)."
        },
        {
            "id": "v1-mining-set-extranonce",
            "name": "mining.set_extranonce",
            "protocol": "V1",
            "direction": "server->client",
            "msg_type": "",
            "key_params": "extranonce1; extranonce2_size",
            "purpose": "Rotates the miner's extranonce1 / extranonce2_size mid-session without a reconnect.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.7",
            "notes": "Requires the subscribe-extranonce extension. New values take effect from the next mining.notify."
        },
        {
            "id": "v1-mining-configure",
            "name": "mining.configure",
            "protocol": "V1",
            "direction": "client->server",
            "msg_type": "",
            "key_params": "extensions[] (e.g. version-rolling, minimum-difficulty, subscribe-extranonce); extension params{} (e.g. version-rolling.mask, version-rolling.min-bit-count)",
            "purpose": "Negotiates optional protocol extensions before subscription — most importantly version rolling (overt ASICBoost).",
            "governing_bip": "BIP 310",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.1, section 4",
            "notes": "Both sides intersect their supported extensions; the miner uses only the agreed mask."
        },
        {
            "id": "v1-client-reconnect",
            "name": "client.reconnect",
            "protocol": "V1",
            "direction": "server->client",
            "msg_type": "",
            "key_params": "hostname (empty = same host); port (0 = same port); wait_seconds",
            "purpose": "Instructs the miner to reconnect to a (possibly different) stratum endpoint — used for pool migration or load-balancing.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.11",
            "notes": ""
        },
        {
            "id": "v1-client-get-version",
            "name": "client.get_version",
            "protocol": "V1",
            "direction": "server->client",
            "msg_type": "",
            "key_params": "(none)",
            "purpose": "Asks the miner to report its software / user-agent version string.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.12",
            "notes": "Miner responds with its version string, e.g. bitaxe/2.0."
        },
        {
            "id": "v1-client-show-message",
            "name": "client.show_message",
            "protocol": "V1",
            "direction": "server->client",
            "msg_type": "",
            "key_params": "message (string)",
            "purpose": "Displays an informational operator message on the miner (e.g. a maintenance notice). Informational only.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.13",
            "notes": "No response required."
        },
        {
            "id": "v1-mining-set-version-mask",
            "name": "mining.set_version_mask",
            "protocol": "V1",
            "direction": "server->client",
            "msg_type": "",
            "key_params": "version_mask (hex)",
            "purpose": "Dynamically updates the allowed version-rolling bit mask after version rolling has been negotiated.",
            "governing_bip": "BIP 310",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.8",
            "notes": "New mask takes effect immediately."
        },
        {
            "id": "v1-mining-suggest-difficulty",
            "name": "mining.suggest_difficulty",
            "protocol": "V1",
            "direction": "client->server",
            "msg_type": "",
            "key_params": "difficulty (hint)",
            "purpose": "Miner hints a preferred starting share difficulty to the pool.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.9",
            "notes": "A hint only; the pool MAY ignore it."
        },
        {
            "id": "v1-mining-ping",
            "name": "mining.ping / mining.pong",
            "protocol": "V1",
            "direction": "bi",
            "msg_type": "",
            "key_params": "(none)",
            "purpose": "Keepalive liveness check; the receiver replies with pong.",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 1.3.10",
            "notes": "Non-standard / implementation-specific — only some pools send keepalive pings."
        },
        {
            "id": "v2-setup-connection",
            "name": "SetupConnection",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x00",
            "key_params": "protocol (0=Mining,1=JobDeclaration,2=TemplateDistribution); min_version; max_version; flags; endpoint_host; endpoint_port; vendor; hardware_version; firmware; device_id",
            "purpose": "Opens and negotiates a Stratum V2 connection (which sub-protocol, version range, feature flags) before any channel is opened.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.1 (0x00)",
            "notes": "Mining flags include REQUIRES_STANDARD_JOBS (bit0), REQUIRES_WORK_SELECTION (bit1), REQUIRES_VERSION_ROLLING (bit2)."
        },
        {
            "id": "v2-setup-connection-success",
            "name": "SetupConnection.Success",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x01",
            "key_params": "used_version; flags (server-supported intersection)",
            "purpose": "Confirms the connection and reports the negotiated protocol version and the feature flags the server supports.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.1 (0x01)",
            "notes": ""
        },
        {
            "id": "v2-setup-connection-error",
            "name": "SetupConnection.Error",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x02",
            "key_params": "flags (unsupported flags from client); error_code (string, e.g. \"unsupported-feature-flags\")",
            "purpose": "Rejects connection setup and reports which requested flags are unsupported.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.1 (0x02)",
            "notes": ""
        },
        {
            "id": "v2-open-standard-channel",
            "name": "OpenStandardMiningChannel",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x10",
            "key_params": "request_id; user_identity; nominal_hash_rate (h/s); max_target (U256)",
            "purpose": "Opens a standard mining channel. Standard-channel miners receive complete merkle roots ready to hash.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x10)",
            "notes": ""
        },
        {
            "id": "v2-open-standard-channel-success",
            "name": "OpenStandardMiningChannel.Success",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x11",
            "key_params": "request_id; channel_id; target (U256); extranonce_prefix; group_channel_id",
            "purpose": "Confirms the standard channel and assigns its channel_id, initial share target and extranonce prefix.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x11)",
            "notes": ""
        },
        {
            "id": "v2-open-standard-channel-error",
            "name": "OpenStandardMiningChannel.Error",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x12",
            "key_params": "request_id; error_code (string)",
            "purpose": "Rejects a standard-channel open request with an error reason.",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x12 message table)",
            "notes": "Field layout (request_id + error_code) follows the SV2 .Error convention; not itemised in the Bible source."
        },
        {
            "id": "v2-open-extended-channel",
            "name": "OpenExtendedMiningChannel",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x13",
            "key_params": "request_id; user_identity; nominal_hash_rate (h/s); max_target (U256); min_extranonce_size",
            "purpose": "Opens an extended mining channel — used by proxies and for transaction selection; the miner assembles the coinbase from prefix/suffix parts.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x13)",
            "notes": ""
        },
        {
            "id": "v2-open-extended-channel-success",
            "name": "OpenExtendedMiningChannel.Success",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x14",
            "key_params": "request_id; channel_id; target (U256); extranonce_size; extranonce_prefix; group_channel_id",
            "purpose": "Confirms the extended channel and assigns its channel_id, target and the extranonce bytes the miner controls.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x14)",
            "notes": ""
        },
        {
            "id": "v2-open-extended-channel-error",
            "name": "OpenExtendedMiningChannel.Error",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x15",
            "key_params": "request_id; error_code (string)",
            "purpose": "Rejects an extended-channel open request with an error reason.",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x15 message table)",
            "notes": "Field layout (request_id + error_code) follows the SV2 .Error convention; not itemised in the Bible source."
        },
        {
            "id": "v2-new-mining-job",
            "name": "NewMiningJob",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x1e",
            "key_params": "channel_id; job_id; min_ntime (OPTION[U32], empty = future job); version; merkle_root (U256)",
            "purpose": "Distributes a job to a STANDARD channel with the complete merkle root already computed.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x1e)",
            "notes": "An empty min_ntime marks a future job that is later activated by SetNewPrevHash."
        },
        {
            "id": "v2-new-extended-mining-job",
            "name": "NewExtendedMiningJob",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x1f",
            "key_params": "channel_id; job_id; min_ntime (OPTION[U32]); version; version_rolling_allowed; merkle_path (SEQ[U256]); coinbase_tx_prefix; coinbase_tx_suffix",
            "purpose": "Distributes a job to an EXTENDED / group channel; the miner builds the coinbase from prefix/suffix and computes the merkle root itself.",
            "governing_bip": "BIP 320 (version bits); BIP 141 (SegWit-stripped coinbase)",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x1f)",
            "notes": "coinbase_tx_prefix/suffix carry the coinbase with BIP141 witness data STRIPPED (miners need the stripped txid for the merkle root). version_rolling_allowed governs BIP320 version-bit rolling."
        },
        {
            "id": "v2-set-new-prev-hash-mining",
            "name": "SetNewPrevHash (Mining)",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x20",
            "key_params": "channel_id; job_id; prev_hash (U256); min_ntime; nbits",
            "purpose": "Activates a previously-sent future job by supplying the new previous-block hash — cleanly separating the job from the prev-hash (which V1 bundled into mining.notify).",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x20)",
            "notes": "job_id references a NewMiningJob / NewExtendedMiningJob that had min_ntime = None."
        },
        {
            "id": "v2-submit-shares-standard",
            "name": "SubmitSharesStandard",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x1a",
            "key_params": "channel_id; sequence_number; job_id; nonce; ntime; version (full nVersion incl. rolled bits)",
            "purpose": "Submits a share on a standard channel.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x1a)",
            "notes": "sequence_number is a per-channel monotonic counter used to batch-acknowledge shares."
        },
        {
            "id": "v2-submit-shares-extended",
            "name": "SubmitSharesExtended",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x1b",
            "key_params": "channel_id; sequence_number; job_id; nonce; ntime; version; extranonce (miner's contribution)",
            "purpose": "Submits a share on an extended channel, including the miner's own extranonce.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x1b)",
            "notes": "Same as SubmitSharesStandard plus the extranonce field."
        },
        {
            "id": "v2-submit-shares-success",
            "name": "SubmitShares.Success",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x1c",
            "key_params": "channel_id; last_sequence_number; new_submits_accepted_count; new_shares_sum",
            "purpose": "Batch-acknowledges accepted shares up to a sequence number, rather than one reply per share.",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x1c message table)",
            "notes": "Field layout follows the SV2 spec convention; not itemised in the Bible source."
        },
        {
            "id": "v2-submit-shares-error",
            "name": "SubmitShares.Error",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x1d",
            "key_params": "channel_id; sequence_number; error_code (string, e.g. too-low-difficulty, stale-share)",
            "purpose": "Rejects a submitted share with a descriptive string reason (V2 uses strings where V1 used numeric codes 20-25).",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x1d message table)",
            "notes": "Field layout follows the SV2 spec convention; not itemised in the Bible source. See /stratum-error-codes/ for the string reasons."
        },
        {
            "id": "v2-set-target",
            "name": "SetTarget",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x21",
            "key_params": "channel_id; maximum_target (U256)",
            "purpose": "Updates the share-difficulty target for a channel, expressed as a full 256-bit target (the V2 replacement for mining.set_difficulty).",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x21)",
            "notes": ""
        },
        {
            "id": "v2-set-extranonce-prefix",
            "name": "SetExtranoncePrefix",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x19",
            "key_params": "channel_id; extranonce_prefix",
            "purpose": "Changes the upstream extranonce prefix for a channel mid-session (the V2 analogue of mining.set_extranonce).",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x19 message table)",
            "notes": "Field layout follows the SV2 spec convention; not itemised in the Bible source."
        },
        {
            "id": "v2-set-custom-mining-job",
            "name": "SetCustomMiningJob",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x22",
            "key_params": "channel_id; request_id; mining_job_token; version; prev_hash; min_ntime; nbits; coinbase_tx_version; coinbase_prefix; coinbase_tx_input_nSequence; coinbase_tx_outputs; coinbase_tx_locktime; merkle_path",
            "purpose": "On an extended channel, submits a miner-selected block template (its own transaction set) using a token obtained from a Job Declaration Server.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.2 (0x22)",
            "notes": "This is how V2 miners exercise transaction selection through the mining channel."
        },
        {
            "id": "v2-jd-allocate-token",
            "name": "AllocateMiningJobToken",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x50",
            "key_params": "user_identifier (pool auth); request_id",
            "purpose": "Job Declaration Protocol: the miner-side declarator asks the pool-side declarator to reserve a token for a future self-declared job.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.3 (0x50)",
            "notes": "Direction is JDC->JDS: the Job Declarator Client (miner side) to the Job Declarator Server (pool side)."
        },
        {
            "id": "v2-jd-allocate-token-success",
            "name": "AllocateMiningJobToken.Success",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x51",
            "key_params": "request_id; mining_job_token; coinbase_tx_outputs (pool-required outputs)",
            "purpose": "Returns a reserved token plus the coinbase outputs (e.g. pool-fee outputs) that MUST appear in any job declared with it.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.3 (0x51)",
            "notes": "Direction is JDS->JDC (pool-side declarator to miner-side declarator)."
        },
        {
            "id": "v2-jd-declare-mining-job",
            "name": "DeclareMiningJob",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x55",
            "key_params": "request_id; mining_job_token; version; coinbase_tx_prefix; coinbase_tx_suffix; wtxid_list (SEQ[U256]); excess_data",
            "purpose": "Declares a miner-selected set of transactions to the pool for validation before mining on it.",
            "governing_bip": "BIP 141 (full SegWit coinbase)",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.3 (0x55)",
            "notes": "Direction JDC->JDS. Unlike NewExtendedMiningJob, the coinbase prefix/suffix here include the FULL SegWit witness data; transactions are identified by wtxid."
        },
        {
            "id": "v2-jd-declare-mining-job-success",
            "name": "DeclareMiningJob.Success",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x57",
            "key_params": "request_id; new_mining_job_token",
            "purpose": "Confirms the pool accepted the declared transaction set and issues the token to mine it.",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.3 (0x57 message table)",
            "notes": "Direction JDS->JDC. Field layout follows the SV2 spec convention; not itemised in the Bible source."
        },
        {
            "id": "v2-jd-declare-mining-job-error",
            "name": "DeclareMiningJob.Error",
            "protocol": "V2",
            "direction": "server->client",
            "msg_type": "0x58",
            "key_params": "request_id; error_code (string); error_details",
            "purpose": "Rejects a declared job (e.g. the pool is missing some of the referenced transactions).",
            "governing_bip": "",
            "confidence": "r",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.3 (0x58 message table)",
            "notes": "Direction JDS->JDC. Field layout follows the SV2 spec convention; not itemised in the Bible source. May be followed by ProvideMissingTransactions."
        },
        {
            "id": "v2-jd-push-solution",
            "name": "PushSolution",
            "protocol": "V2",
            "direction": "client->server",
            "msg_type": "0x60",
            "key_params": "extranonce; prev_hash (U256); nonce; ntime; nbits; version",
            "purpose": "Sends a found block solution for a self-declared job back to the pool-side declarator for propagation.",
            "governing_bip": "",
            "confidence": "c",
            "source": "STRATUM_PROTOCOL_BIBLE 5.6.3 (0x60)",
            "notes": "Direction JDC->JDS."
        }
    ]
}