Reading admission reports
Disclaimer: Content created from source code using generative AI. Contact us for clarifications or if you find mistakes in this document.
An admission report is the rule-by-rule verdict of a node on one transaction. It tells you which rule failed and for which entity.
Enable it
Section titled “Enable it”Start the sidecar with --explorer.enable. Without the flag no history is recorded and every skandha_explorer_* call fails with “method not found” (-32601). The history is in memory only, bounded (10,000 events and 10,000 admission records by default), and cleared on restart.
Anyone who can reach the RPC port can read the explorer data. Enable the flag only on a node that does not hold private order flow.
Look a transaction up
Section titled “Look a transaction up”{ "jsonrpc": "2.0", "id": 1, "method": "skandha_explorer_getTransaction", "params": ["0x<txHash>"] }Or list recent rejections:
{ "jsonrpc": "2.0", "id": 3, "method": "skandha_explorer_listAdmissions", "params": [{ "outcome": "rejected", "limit": 5 }] }Each check in checks has a rule, a verdict (pass, fail or skipped), an optional detail, and for per-entity rules a frameIndex and entity (sender, payer or factory).
failmeans the rule ran and the transaction broke it.detailholds the same message the node returned to the submitter.skippedmeans an earlier rule already failed. A rejected report lists every later rule asskipped.- A whitelisted entity’s violations show as
passwith adetailthat starts withwaived (…).
Rule IDs in the sidecar
Section titled “Rule IDs in the sidecar”The sidecar’s report uses its own rule IDs, which do not match the ERC-8421 IDs (TBD). See Explorer API for the list and Spec and implementation differences.
Reading a rejection
Section titled “Reading a rejection”- The execution client reports every failure of the validation prefix as “validation prefix frame reverted”. A lack of funds, running out of gas, a revert and a loop look alike. The sidecar adds what it can tell: when the payer’s balance is below the transaction’s maximum cost, the message says so with both amounts. Otherwise it lists the gas limits given to the prefix frames.
- Throttled still admits a transaction. Only a
BANNEDentity is rejected. The rejection text of a banned entity can be the generic “unstaked payer accessed …”, so check the entity’s reputation status inskandha_explorer_listReputationto find the real cause. - A rejection that only ethrex produced has no admission record in the sidecar.
From the workshop
Section titled “From the workshop”npm run step_11_debug -- <txHash> collects the admission report, the lifecycle events, skandha_frameTransactionStatus and ethrex’s receipt for a hash.