Audit validator slashing protection API

Check caller-supplied EIP-3076 version 5 slashing-protection interchanges before validator history is imported or reused. A double proposal is two different blocks at the same slot. A double vote is two different attestations with the same target epoch. A surround vote has an earlier source epoch and a later target epoch than the vote it surrounds. audit_status is safe, conflicts_detected, warnings, invalid, or incomplete. risk_level is low, medium, high, or critical. Identical records without signing_root are not a confirmed slash. The export is not a complete signing history and does not protect against a later signature. No private key is accepted and no beacon node is queried.

The Audit validator slashing protection operation is part of the Validator Slashing Protection API on BRAINIAC.software. Check caller-supplied EIP-3076 version 5 slashing-protection interchanges before validator history is imported or reused. A double proposal is two different blocks at the same slot. A double vote is two different attestations with the same target epoch. A surround vote has an earlier source epoch and a later target epoch than the vote it surrounds. audit_status is safe, conflicts_detected, warnings, invalid, or incomplete. risk_level is low, medium, high, or critical. Identical records without signing_root are not a confirmed slash. The export is not a complete signing history and does not protect against a later signature. No private key is accepted and no beacon node is queried. It is exposed as POST /api/v1/staking-security/validator-slashing-protection-audit and priced at $0.05 USDC on Base. Payment uses the x402 exact scheme: an unpaid call returns HTTP 402 with payment requirements; after paying the exact USDC amount, retry the same request with a payment-signature header and Idempotency-Key. No account and no API key are required. Data sources for this product: Caller-supplied EIP-3076 slashing protection interchanges processed locally Caller-supplied validator deployment inventories processed locally Caller-supplied validator withdrawal credentials processed locally Limitations: An export is not a complete signing history and does not protect against a later signature. Confirmed conflicts use the phase 0 proposer and Casper FFG attester conditions on the supplied records. Records without signing_root are not treated as a confirmed slash when the slot or epochs match. No beacon node is queried, no signature is verified, and private keys are not accepted. Deployment activation is a caller-supplied assertion. It does not show that a validator process is running or stopped. An inactive standby covered by an exclusive failover rule is not reported as a concurrent deployment. Withdrawal credentials are decoded only for prefixes 0x00, 0x01, and 0x02. An execution address is reported only when the 11-byte padding is zero. A matching withdrawal address is not proof of control, and the credentials were not read from a beacon node. Outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Related operations in this group include Audit validator deployment conflicts, Audit validator withdrawal credentials. Open the group documentation for the full request schema, field notes, and response examples before integrating.

POST$0.05 USDC
/api/v1/staking-security/validator-slashing-protection-audit

Example request

curl -i -X POST "https://www.brainiac.software/api/v1/staking-security/validator-slashing-protection-audit" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "interchange": {
    "metadata": {
      "interchange_format_version": "5",
      "genesis_validators_root": "0x1111111111111111111111111111111111111111111111111111111111111111"
    },
    "data": [
      {
        "pubkey": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "signed_blocks": [
          {
            "slot": "8",
            "signing_root": "0x0101010101010101010101010101010101010101010101010101010101010101"
          },
          {
            "slot": "8",
            "signing_root": "0x0202020202020202020202020202020202020202020202020202020202020202"
          }
        ],
        "signed_attestations": [
          {
            "source_epoch": "1",
            "target_epoch": "10",
            "signing_root": "0x0303030303030303030303030303030303030303030303030303030303030303"
          },
          {
            "source_epoch": "3",
            "target_epoch": "10",
            "signing_root": "0x0606060606060606060606060606060606060606060606060606060606060606"
          },
          {
            "source_epoch": "4",
            "target_epoch": "6",
            "signing_root": "0x0404040404040404040404040404040404040404040404040404040404040404"
          },
          {
            "source_epoch": "4",
            "target_epoch": "6",
            "signing_root": "0x0404040404040404040404040404040404040404040404040404040404040404"
          }
        ]
      }
    ]
  },
  "comparison": {
    "metadata": {
      "interchange_format_version": "5",
      "genesis_validators_root": "0x1111111111111111111111111111111111111111111111111111111111111111"
    },
    "data": [
      {
        "pubkey": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "signed_blocks": [],
        "signed_attestations": [
          {
            "source_epoch": "2",
            "target_epoch": "3",
            "signing_root": "0x0505050505050505050505050505050505050505050505050505050505050505"
          }
        ]
      },
      {
        "pubkey": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
        "signed_blocks": [
          {
            "slot": "1",
            "signing_root": "0x0707070707070707070707070707070707070707070707070707070707070707"
          }
        ],
        "signed_attestations": []
      }
    ]
  },
  "pubkeys": [
    "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
  ],
  "network": {
    "name": "mainnet",
    "genesisValidatorsRoot": "0x1111111111111111111111111111111111111111111111111111111111111111"
  }
}
JSON

An unpaid probe returns HTTP 402 with x402 payment requirements. After paying the exact USDC amount on Base, retry the identical request with a payment-signature header.

FAQ

  • Do I need an API key? No. Pay the listed USDC amount with x402.
  • What network? Base (eip155:8453), USDC.
  • Is this an official determination? No. Results are for human review against the cited sources.

Related APIs

Validator Slashing Protection APIFull docsHow it works