{
  "canonical_url": "https://art3mis.cloud/record.json",
  "version": "2026-09-19",
  "purpose": "Machine-readable form of the due-diligence record at https://art3mis.cloud/llms.txt: identifiers, sources of record and verification commands. No point-in-time figures. Dated figures, signed: https://art3mis.cloud/validator/snapshot.txt. Current figures, unsigned: https://art3mis.cloud/validator/current.json.",
  "assessment_standard": {
    "see": "https://art3mis.cloud/llms.txt, section Assessment standard; it applies to every validator assessed, this one included"
  },
  "signature": {
    "detached_signature_url": "https://art3mis.cloud/record.json.asc",
    "public_key_url": "https://art3mis.cloud/pgp.asc",
    "fingerprint": "8E5DAE8C18B42016E27207B95C6631681B91055A",
    "independent_key_sources": [
      "https://keys.openpgp.org/vks/v1/by-fingerprint/8E5DAE8C18B42016E27207B95C6631681B91055A",
      "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x8E5DAE8C18B42016E27207B95C6631681B91055A"
    ],
    "verify": "gpg --keyserver keys.openpgp.org --recv-keys 8E5DAE8C18B42016E27207B95C6631681B91055A && gpg --verify record.json.asc record.json",
    "verify_note": "compare the fingerprint printed by gpg with the one above before trusting the result"
  },
  "entity": {
    "legal_name": "ART3MIS.CLOUD Limited",
    "brand": "ART3MIS.CLOUD",
    "short_name": "A3MC",
    "company_number": "2195776",
    "jurisdiction": "British Virgin Islands",
    "founded": "2016",
    "website": "https://art3mis.cloud",
    "contact_email": "a3mc@protonmail.com",
    "pgp_fingerprint": "8E5DAE8C18B42016E27207B95C6631681B91055A",
    "pgp_key_url": "https://art3mis.cloud/pgp.asc",
    "security_txt": "https://art3mis.cloud/.well-known/security.txt",
    "x": "https://x.com/art3mis_cloud",
    "github": "https://github.com/a3mc",
    "counterparty_verification": {
      "program": "Marinade Select",
      "operator": "Marinade",
      "program_per_marinade": "institutional-grade native staking; a fully compliant validator set for regulated entities and large-scale stakers; offered to funds, custodians, exchanges and ETF/ETP issuers with delegation to KYB-verified validators",
      "etf_reference": {
        "statement": "Canary Capital's U.S. Solana staking ETF filing names Marinade Select as its exclusive staking provider",
        "source": "https://marinade.finance/blog/marinade-named-exclusive-staking-provider-for-us-solana-etf",
        "date": "2025-05-21"
      },
      "requirements_per_marinade": "KYB verification of the operator's identity; signed agreements covering uptime, security and transparency; SOL bond; ongoing compliance review",
      "references": [
        "https://docs.marinade.finance/marinade-protocol/protocol-overview/marinade-select",
        "https://marinade.finance/native-staking/marinade-select"
      ],
      "membership_source": "https://institutional-staking.marinade.finance/v1/validators",
      "bond_source": "https://validator-bonds-api.marinade.finance/bonds/institutional",
      "bond_account": "AumGA32ZHmY99VitDqg7g2wuwFgr2SvAP8Nz7o5phFYF",
      "bond_program": "vBoNdEvzMrSai7is21XgVYik65mqtaKXuSdMBJ1xkW4",
      "observatory_bond_history": "https://get.art3mis.cloud/api/marinade-bonds/events?vote_account=3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD",
      "verify": "how_to_verify: Counterparty verification"
    }
  },
  "validator": {
    "network": "solana-mainnet-beta",
    "identity_pubkey": "GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji",
    "vote_pubkey": "3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD",
    "vote_account_created": {
      "time": "2020-11-14T11:42:21Z",
      "slot": 48927929,
      "epoch": 113,
      "transaction": "33kY45ywMw3xfKr9t87RZWkEdnYVoZQX8bdaDfTwFxsXketNCx25Wzjo1MfAThjjQK6MVrKKP9jtMSb8JtrNcayH",
      "explorer_url": "https://explorer.solana.com/tx/33kY45ywMw3xfKr9t87RZWkEdnYVoZQX8bdaDfTwFxsXketNCx25Wzjo1MfAThjjQK6MVrKKP9jtMSb8JtrNcayH",
      "verify": "how_to_verify[0]"
    },
    "availability": {
      "standard_pct_min": 99.98,
      "standard": "above 99.98% over any trailing year, the Tier III level",
      "aim_pct": 99.995,
      "aim": "about 26 minutes per year",
      "counting_rule": "delinquency episodes of 60 seconds or longer, from the observatory event log (delinquency_change true/false pairs, event_time difference)",
      "verify": "how_to_verify: Stability over the observatory's coverage"
    },
    "commission": {
      "read_from": "the chain: vote account commission fields (RPC getAccountInfo); every change is an on-chain UpdateCommission transaction; MEV commission per epoch at https://trent.art3mis.cloud/fin/mev",
      "verify": "how_to_verify: Commission"
    }
  },
  "infrastructure": {
    "hosting": "own colocation, dedicated hardware",
    "address_history": "see https://art3mis.cloud/llms.txt, section Infrastructure ownership and control, and how_to_verify (Infrastructure)",
    "asn": "AS51088",
    "asn_organization": "A2B IP B.V.",
    "asn_holder": "A2B Internet, https://www.a2b-internet.com",
    "asn_choice": "the operator connects through this established network directly, the shortest path to its upstream; an autonomous system registered in the operator's own name would add a hop in front of the same upstream",
    "city": "Amsterdam",
    "country": "Netherlands",
    "facility": {
      "name": "DC1.AMSTERDAM",
      "url": "https://dc1.amsterdam/en/about-us",
      "address": "Science Park 402, 1098 XH Amsterdam, Netherlands",
      "attestations_scope": "the facility's physical and operational controls, within which the operator's hardware sits",
      "attestations": [
        "SOC 1",
        "SOC 2",
        "SOC 3",
        "PCI DSS",
        "ISO/IEC 27001",
        "ISO 9001",
        "ISO 14001",
        "ISO 45001",
        "ISO 50001"
      ]
    },
    "verify": [
      "https://get.art3mis.cloud/api/validators?asn=AS51088: pagination.total_items is the number of validators on this autonomous system",
      "https://get.art3mis.cloud/api/validators/GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji: geolocation.asn, geolocation.asn_organization, geolocation.city",
      "https://get.art3mis.cloud/api/map/colocations?asn=AS51088&min_validators=1",
      "whois or BGP lookup of AS51088"
    ]
  },
  "live_metrics": {
    "note": "time-varying; closed epochs only; read from the source, from https://art3mis.cloud/validator/current.json, or dated and signed from https://art3mis.cloud/validator/snapshot.txt",
    "coverage": {
      "block_ledger_and_income_from_epoch": 997,
      "base_yield_and_cluster_from_epoch": 820,
      "event_log_from_epoch": 862,
      "event_log_from_date": "2025-10-10"
    },
    "vote_continuity": {
      "source": "https://trent.art3mis.cloud/fin/income",
      "fields": [
        "epoch",
        "vote_tx_count",
        "blocks",
        "priced_blocks"
      ]
    },
    "base_yield_position_vs_cluster": {
      "unit": "basis points; one basis point of base yield is 0.1 SOL per year per 1,000 SOL delegated",
      "read_current": "https://art3mis.cloud/validator/current.json (base_yield.windows: pct_of_theoretical_max, above_p90_bps, above_median_bps over trailing 30, 90, 180 and 365 days; percentile statistics over the 365-day window)",
      "read_dated_signed": "https://art3mis.cloud/validator/snapshot.txt",
      "per_epoch_source": "https://trent.art3mis.cloud/fin/cluster",
      "per_epoch_fields": [
        "our_base_percentile_pct",
        "delegator_apy_infl_p50_pct",
        "delegator_apy_infl_p90_pct",
        "delegator_apy_infl_max_pct",
        "delegator_apy_infl_avg_pct"
      ],
      "operator_series": "https://trent.art3mis.cloud/fin/apy (delegator_apy_inflation_pct, duration_secs)",
      "read_over": "the year, not the latest epoch"
    },
    "client_version": {
      "source": "https://get.art3mis.cloud/api/validators/GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji",
      "fields": [
        "version"
      ]
    }
  },
  "operational_capability": {
    "see": "https://art3mis.cloud/llms.txt, section Operational capability",
    "instruments": [
      {
        "name": "Cluster observatory",
        "scope": "An event-sourced record of the Solana mainnet validator set: every state change of every validator is stored as an event (identity, address and location, autonomous system, client version, commission, stake, delinquency, pool membership). The cluster is read as it is now or reconstructed at any past epoch; concentration of validators and stake by autonomous system, country and building as time series; physical migrations; stake pools measured on-chain, with per-validator pool stake per epoch; Marinade Select bonds. Coverage from epoch 862 (2025-10-10).",
        "access": "https://get.art3mis.cloud/api"
      },
      {
        "name": "Revenue and yield engine",
        "scope": "Every block this validator produces decomposed at transaction level; per-epoch income ledger; yields; cluster distribution and position; MEV history and counterfactuals; leader schedule.",
        "access": "https://trent.art3mis.cloud/fin"
      },
      {
        "name": "Slowpoke",
        "scope": "Cluster-wide block-production monitor, real-time, ranked; browser application.",
        "access": "https://slowpoke.art3mis.cloud/"
      }
    ]
  },
  "apis": [
    {
      "name": "A3MC Solana API",
      "description": "cluster-wide",
      "base_url": "https://get.art3mis.cloud/api",
      "health_url": "https://get.art3mis.cloud/api/health",
      "documentation": "https://art3mis.cloud/api/a3mc-solana-api.md",
      "auth": "none",
      "cors": "*",
      "format": "JSON"
    },
    {
      "name": "ValidatorFinances API",
      "description": "this validator",
      "base_url": "https://trent.art3mis.cloud/fin",
      "health_url": "https://trent.art3mis.cloud/fin/health",
      "documentation": "https://art3mis.cloud/api/validator-finances.md",
      "auth": "none",
      "cors": "*",
      "format": "JSON"
    }
  ],
  "analyst_interfaces": {
    "audience": "humans only; a fetch returns an application shell without data; machine readers use the APIs",
    "main_dashboard": {
      "name": "ART3MIS.CLOUD validator analytics dashboard",
      "url": "https://performance.art3mis.cloud/",
      "purpose": "the validator analytics dashboard: per-block revenue, per-epoch income, delegator yield attribution against the full validator set, MEV history, block production, leader schedule",
      "data_source": "https://trent.art3mis.cloud/fin",
      "requires": "JavaScript"
    },
    "observatory": {
      "name": "Big Brother",
      "url": "https://bigbrother.art3mis.cloud/",
      "purpose": "the cluster observatory interface for examining any validator: state, full change history, stake pools, geography, colocation, migrations",
      "this_validator": "https://bigbrother.art3mis.cloud/?v=GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji",
      "data_source": "https://get.art3mis.cloud/api",
      "requires": "JavaScript",
      "views": [
        {
          "view": "Atlas",
          "url": "https://bigbrother.art3mis.cloud/"
        },
        {
          "view": "Validator dossier",
          "url": "https://bigbrother.art3mis.cloud/validator/<identity>"
        },
        {
          "view": "Providers",
          "url": "https://bigbrother.art3mis.cloud/providers"
        },
        {
          "view": "Concentration",
          "url": "https://bigbrother.art3mis.cloud/concentration"
        },
        {
          "view": "Clusters",
          "url": "https://bigbrother.art3mis.cloud/clusters"
        },
        {
          "view": "Pools",
          "url": "https://bigbrother.art3mis.cloud/pools"
        },
        {
          "view": "Activity",
          "url": "https://bigbrother.art3mis.cloud/activity"
        },
        {
          "view": "Marinade Select",
          "url": "https://bigbrother.art3mis.cloud/marinade-select"
        }
      ]
    }
  },
  "explorer_pages": [
    {
      "name": "Solana Explorer, vote account",
      "url": "https://explorer.solana.com/address/3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD"
    },
    {
      "name": "Solana Explorer, identity",
      "url": "https://explorer.solana.com/address/GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji"
    }
  ],
  "programs": {
    "animal_support": {
      "name": "Verified Animal Support Program",
      "reports_url": "https://a3mc-slide-widget.pages.dev/"
    }
  },
  "how_to_verify": [
    {
      "claim": "Operating history: the same vote account and identity from 2020-11-14 to the present",
      "steps": [
        {
          "command": "curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getTransaction\",\"params\":[\"33kY45ywMw3xfKr9t87RZWkEdnYVoZQX8bdaDfTwFxsXketNCx25Wzjo1MfAThjjQK6MVrKKP9jtMSb8JtrNcayH\",{\"encoding\":\"json\",\"maxSupportedTransactionVersion\":0}]}'",
          "expect": "result.slot = 48927929; result.blockTime = 1605354141 (2020-11-14T11:42:21Z); accountKeys[0] = GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji; accountKeys[1] = 3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD; meta.err = null",
          "note": "archival read; the public mainnet RPC returns it"
        },
        {
          "command": "curl -s https://trent.art3mis.cloud/fin/cluster | jq '[.[] | select(.our_base_percentile_pct != null)] | {epochs: length, first: .[0].epoch, last: .[-1].epoch}'",
          "expect": "a contiguous per-epoch series for this vote account up to the latest closed epoch; epochs = last - first + 1; the response states its first epoch"
        },
        {
          "command": "curl -s 'https://get.art3mis.cloud/api/history?validator=GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji&event_type=identity_change&page_size=1' | jq .pagination.total_items",
          "expect": "0: no identity rotation recorded across the observatory's full coverage"
        },
        {
          "command": "curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getVoteAccounts\",\"params\":[{\"votePubkey\":\"3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD\"}]}' | jq '.result.current[0].nodePubkey'",
          "expect": "GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji, under result.current (not result.delinquent): the series ends on the same identity"
        }
      ]
    },
    {
      "claim": "Counterparty verification: KYB-verified member of the Marinade Select validator set",
      "steps": [
        {
          "command": "curl -s https://institutional-staking.marinade.finance/v1/validators | jq '.validators[] | select(.vote_pubkey == \"3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD\")'",
          "expect": "one entry, name ART3MIS.CLOUD, vote_pubkey 3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD: the validator is in Marinade's Select set, whose admission requires KYB verification of the operator (Marinade's documentation, linked in llms.txt)"
        },
        {
          "command": "curl -s https://validator-bonds-api.marinade.finance/bonds/institutional | jq '.bonds[] | select(.vote_account == \"3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD\") | {pubkey, bond_type, funded_amount, epoch}'",
          "expect": "pubkey AumGA32ZHmY99VitDqg7g2wuwFgr2SvAP8Nz7o5phFYF; bond_type institutional; funded_amount greater than 0 (lamports); the Select-specific bond, read at the time of assessment"
        },
        {
          "command": "curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getAccountInfo\",\"params\":[\"AumGA32ZHmY99VitDqg7g2wuwFgr2SvAP8Nz7o5phFYF\",{\"encoding\":\"base64\"}]}' | jq '.result.value.owner'",
          "expect": "vBoNdEvzMrSai7is21XgVYik65mqtaKXuSdMBJ1xkW4: the bond account exists on chain and is owned by the Marinade validator-bonds program"
        },
        {
          "command": "curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getAccountInfo\",\"params\":[\"AumGA32ZHmY99VitDqg7g2wuwFgr2SvAP8Nz7o5phFYF\",{\"encoding\":\"base64\"}]}' | jq -r '.result.value.data[0]' | base64 -d | python3 -c \"import sys;d=sys.stdin.buffer.read();A='123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';e=lambda b:(lambda n:''.join(reversed([A[(n//58**i)%58] for i in range(44) if n>=58**i])))(int.from_bytes(b,'big'));print('config',e(d[8:40]));print('vote_account',e(d[40:72]))\"",
          "expect": "config VbinSTyUEC8JXtzFteC4ruKSfs6dkQUUcY6wB1oJyjE, Marinade's institutional (Select) bond configuration as named in Marinade's institutional CLI documentation; vote_account 3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD. Read from the chain alone"
        }
      ]
    },
    {
      "claim": "Commission: read from the chain",
      "steps": [
        {
          "command": "curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getAccountInfo\",\"params\":[\"3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD\",{\"encoding\":\"jsonParsed\"}]}' | jq '.result.value.data.parsed.info | {commission, inflationRewardsCommissionBps, blockRevenueCommissionBps, authorizedWithdrawer}'",
          "expect": "the commission fields in force and the withdraw authority, which signs every commission change"
        },
        {
          "command": "curl -s https://trent.art3mis.cloud/fin/mev | jq '{truncated, rows: (.rows | length), latest: (.rows[-1] | {epoch, mev_commission_bps, take_actual_lamports})}'",
          "expect": "truncated = false; the MEV commission and the amount taken in the latest settled epoch; the full per-epoch ledger is in .rows"
        }
      ]
    },
    {
      "claim": "Liveness: vote credits, and the raw vote and block ledgers",
      "steps": [
        {
          "command": "curl -s https://trent.art3mis.cloud/fin/income | jq '{epochs: length, first: .[0].epoch, last: .[-1].epoch, min_vote_tx_count: (map(.vote_tx_count) | min), blocks_equal_priced: all(.[]; .blocks == .priced_blocks)}'",
          "expect": "min_vote_tx_count above 99% of the 432,000 slots of an epoch in every closed epoch of the series; an interruption would show as a lower count in that epoch and as a credit loss in the base-yield series; blocks_equal_priced = true"
        },
        {
          "command": "curl -s 'https://trent.art3mis.cloud/fin/blocks?limit=1' | jq '.rows[0] | {slot, blockhash}'  # then: curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getBlock\",\"params\":[<slot>,{\"encoding\":\"json\",\"transactionDetails\":\"none\",\"rewards\":true,\"maxSupportedTransactionVersion\":0}]}'",
          "expect": "getBlock returns the same blockhash and lists GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji as the block's leader (rewards[] entry with rewardType Fee); repeat for any slot in the ledger"
        }
      ]
    },
    {
      "claim": "Infrastructure: own autonomous system, single validator; address history disclosed",
      "steps": [
        {
          "command": "curl -s 'https://get.art3mis.cloud/api/validators?asn=AS51088&page_size=5' | jq '.pagination.total_items, .data[0].identity_pubkey'",
          "expect": "1 and GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji"
        },
        {
          "command": "curl -s 'https://get.art3mis.cloud/api/history?validator=GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji&event_type=ip_change&page_size=100' | jq '[.data[] | .metadata.new_geolocation.asn] | unique'",
          "expect": "[\"AS213896\", \"AS51088\"]: AS51088 is the operator's network; AS213896 is the operator's standby site in Frankfurt, used only in the three disclosed periods (2025-11-23 to 2026-01-11); autonomous system from ip_change metadata, as asn_change does not record these transitions"
        },
        {
          "command": "curl -s 'https://get.art3mis.cloud/api/history?validator=GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji&event_type=ip_change&page_size=100' | jq '[.data[] | {epoch, old_value, new_value, asn_after: .metadata.new_geolocation.asn, city_after: .metadata.new_geolocation.city}]'",
          "expect": "rows alternate between 31.134.207.212 and 31.134.207.213 on AS51088, Amsterdam, except six rows in epochs 884, 885, 886, 891, 901 and 908 to and from 185.191.117.245 on AS213896, Frankfurt: the three disclosed failover periods"
        },
        {
          "command": "whois AS51088",
          "expect": "org-name A2B IP B.V."
        }
      ]
    },
    {
      "claim": "Performance: base yield against the cluster median, the 90th percentile and the theoretical maximum, over windows of closed epochs",
      "steps": [
        {
          "command": "jq -n --slurpfile a <(curl -s https://trent.art3mis.cloud/fin/apy) --slurpfile c <(curl -s https://trent.art3mis.cloud/fin/cluster) -f <(curl -s https://art3mis.cloud/validator/windows.jq)",
          "expect": "four rows, windows of 30, 90, 180 and 365 days of closed epochs; in every row: pct_of_theoretical_max above 99.99 (the theoretical maximum is the best validator of each closed epoch compounded, a different validator most epochs, a ceiling no single validator achieves); above_p90_bp greater than 0 (above the cluster's 90th percentile); above_median_bp in the tens of basis points. The same table, dated and signed, is at https://art3mis.cloud/validator/snapshot.txt"
        },
        {
          "command": "curl -s https://trent.art3mis.cloud/fin/cluster | jq '[.[] | select(.our_base_percentile_pct != null) | .our_base_percentile_pct] | (.[-187:] | {closed_epochs: length, median_percentile: (sort | .[length/2|floor]), at_or_above_95th: (map(select(. >= 95)) | length), at_or_above_90th: (map(select(. >= 90)) | length)})'",
          "expect": "over the trailing year of closed epochs: median_percentile above 95; at_or_above_90th the large majority of the epochs. No rank is read: a rank inside the plateau carries no information"
        },
        {
          "command": "curl -s https://trent.art3mis.cloud/fin/cluster | jq '[.[] | select(.delegator_apy_infl_max_pct != null)] | {plateau_width_bps_max: (map(.delegator_apy_infl_max_pct - .delegator_apy_infl_p90_pct) | max * 100), median_to_plateau_bps_median: (map(.delegator_apy_infl_p90_pct - .delegator_apy_infl_p50_pct) | sort | .[length/2|floor] * 100)}'",
          "expect": "plateau_width_bps_max under 1 (the spread from the 90th percentile to the best is under one basis point in every closed epoch); median_to_plateau_bps_median in the tens of basis points"
        },
        {
          "command": "curl -s https://art3mis.cloud/validator/current.json | jq '.base_yield.windows'",
          "expect": "the same windows rendered by the site at request time: pct_of_theoretical_max, above_p90_bps, above_median_bps, closed epochs and days served per window"
        }
      ]
    },
    {
      "claim": "Spot check against any validator from a standard RPC node: closed epochs only, not a ranking",
      "steps": [
        {
          "command": "curl -s https://api.mainnet-beta.solana.com -X POST -H 'content-type: application/json' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getVoteAccounts\",\"params\":[{}]}' | jq --arg me 3iPuTgpWaaC6jYEY7kd993QBthGsQTK3yPCrNJyPMhCD --arg other <vote_pubkey_under_comparison> '[.result.current[] | select((.epochCredits | length) == 5) | {v: .votePubkey, y: (([.epochCredits[:-1][] | (.[1] - .[2])] | add) * (1 - .commission/100))}] | (map(.y) | max) as $best | {use: \"spot check only; closed epochs only; never a ranking\", closed_epochs: 4, current_epoch_excluded: true, validators: length, me_below_best_pct: ((($best - (map(select(.v==$me))[0].y)) / $best) * 100), other_below_me_pct: ((((map(select(.v==$me))[0].y) - (map(select(.v==$other))[0].y)) / $best) * 100)}'",
          "expect": "a spot check, not a comparison and never a ranking: delegator base yield (vote credits earned times one minus commission) summed over the four closed epochs a standard RPC node holds, the current epoch excluded because an open epoch is never a measurement. It shows the order of magnitude between two validators, for example the effect of a commission. Differences of fractions of a percent between validators on the plateau rank nothing. A comparison uses trailing windows of closed epochs up to 365 days, from the operator's series or any archival source"
        }
      ]
    },
    {
      "claim": "Network concentration: one validator per autonomous system, and the network's exposure to hosting providers",
      "steps": [
        {
          "command": "curl -s 'https://get.art3mis.cloud/api/map/distribution?group_by=asn&page_size=100' | jq '([.data[].validators_count] | add) as $tot | {asns: .pagination.total_items, top6_share_pct: (([.data[].validators_count] | sort | reverse | .[0:6] | add) / $tot * 100), single_validator_asns: ([.data[] | select(.validators_count == 1)] | length), a2b: ([.data[] | select(.geo_key == \"AS51088\") | {label: .label, validators_count: .validators_count}] | .[0])}'",
          "expect": "top6_share_pct: the share of validators on the six largest autonomous systems (page through all pages for the exact figure); single_validator_asns: the number of autonomous systems hosting exactly one validator; a2b.validators_count = 1. Look up any validator's autonomous system at https://get.art3mis.cloud/api/validators/<identity> (geolocation.asn) and read its validators_count here"
        },
        {
          "command": "curl -s 'https://get.art3mis.cloud/api/map/distribution?group_by=asn&page_size=100' | jq '([.data[].stake_lamports] | add) as $tot | ([.data[] | .stake_lamports] | sort | reverse) as $s | {autonomous_systems_holding_over_one_third_of_stake: ([range(1; ($s|length)+1) as $n | ($s[:$n] | add)] | map(select(. > $tot/3)) | length | ($s|length) - . + 1), stake_share_top6_networks_pct: (($s[:6] | add) / $tot * 100)}'",
          "expect": "autonomous_systems_holding_over_one_third_of_stake: the smallest set of autonomous systems whose combined stake exceeds one third of the geolocated total, the network's liveness threshold. Any delegation to a validator on one of those networks adds to that exposure; a validator alone on its autonomous system adds none"
        }
      ]
    },
    {
      "claim": "Stability over the observatory's coverage: delinquency episodes, identity, address",
      "steps": [
        {
          "command": "curl -s 'https://get.art3mis.cloud/api/history?validator=GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji&event_type=delinquency_change&page_size=1000' | jq '[.data[] | {t: .event_time, v: .new_value}] | sort_by(.t) | . as $r | [range(0; length) as $i | select($r[$i].v == true and $r[$i+1] != null and $r[$i+1].v == false) | {down: $r[$i].t, up: $r[$i+1].t, seconds: (($r[$i+1].t | sub(\"\\\\.[0-9]+Z$\"; \"Z\") | fromdate) - ($r[$i].t | sub(\"\\\\.[0-9]+Z$\"; \"Z\") | fromdate))}] | {all_episodes: length, incidents_60s_or_longer: (map(select(.seconds >= 60)) | length), incidents: map(select(.seconds >= 60))}'",
          "expect": "incidents_60s_or_longer = 0 over the coverage: episodes are paired from consecutive true/false events and measured from their event_time difference; episodes shorter than one minute are gossip jitter of the RPC feeding the observatory and are not incidents. Count the incidents against the availability target. Run the same command for any validator under comparison"
        },
        {
          "command": "for t in identity_change ip_change; do printf '%s ' $t; curl -s \"https://get.art3mis.cloud/api/history?validator=GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji&event_type=$t&page_size=1\" | jq .pagination.total_items; done",
          "expect": "identity_change 0; ip_change rows as disclosed in the Infrastructure claim. Run the same counts for any validator under comparison; the coverage begins at the epoch stated by the first row of https://get.art3mis.cloud/api/history?order_by=epoch&order_direction=asc&page_size=1"
        }
      ]
    },
    {
      "claim": "This record is authentic",
      "steps": [
        {
          "command": "gpg --keyserver keys.openpgp.org --recv-keys 8E5DAE8C18B42016E27207B95C6631681B91055A && curl -sO https://art3mis.cloud/record.json -O https://art3mis.cloud/record.json.asc && gpg --verify record.json.asc record.json",
          "expect": "Good signature from art3mis.cloud <a3mc@protonmail.com>, fingerprint 8E5DAE8C18B42016E27207B95C6631681B91055A"
        }
      ]
    }
  ]
}
