{"data":{"behavior":"STEP_CHANGE","claim_id":"unl_composition","data_paths":["mcp_tools_ledger.py:tool_get_unl_status","network_state.fetch_network_state_cached (10min cache; same one /network reads)","cross_check_walker.py: cross_check_pair_5 (live vl fetch vs stored unl_snapshots)"],"finalized_window":false,"label":"get_unl_status returns both canonical UNL lists (vl.ripple.com + vl.xrplf.org) with per-list validator counts, expiration, and overlap; honest_partial=True when one fetch failed.","layer2_rules":[],"needs_trace":false,"note":null,"page":{"path":"/mcp","url":"https://xrpldashboard.com/methodology#for-ai-agents"},"risk_note":"Honest-partial routing is the escape hatch \u2014 if one list fetch failed, envelope carries `honest_partial=True` + a scope_note naming which list is missing. An agent reading `honest_partial` knows to treat `overlap` as unavailable, not fabricated. Same two-source honesty the /network page publishes (network_unl_counts, line 552).","sovereignty":{"layer3_source":"vl_ripple_com_vl_xrplf_org","tier":"red"},"status":"red","status_reason":"Third-party-derived data (external chain RPC, issuer attestation, primary-legislative source, edge header). Permanently free-only under the site's rule #3 \u2014 never sold even after the paid tier ships.","uri":"xrpl.mcp.unl_composition","verification":{"manifest_repo":"https://github.com/Enkryptedx/xrpldashboard/blob/main/CLAIMS.yaml","signed_snapshot_chain":"https://xrpldashboard.com/.well-known/snapshots/chain.json","walker_health":"https://xrpldashboard.com/coverage#walker-inventory"}},"proof":{"as_of":"2026-08-05T21:14:43Z","claims_ref":"xrpl.claims.uri_scheme","freshness_contract":"recomputed from CLAIMS.yaml on file change (mtime-cached)","honest_partial":false,"methodology_url":"https://xrpldashboard.com/methodology#for-ai-agents","source":"claims_manifest"}}
