{"registry_hash":"0xe6af0dce26ec2d082450f89bfddba5d93c4bbe69e859dceda802e2d7711642af","hashed":[{"party_id":"treaty-house-desk","display_name":"Treaty House Desk","badge_tier":3,"wallet":"0xdea1e4de5c02","note":"Transitional. Seeds depth so early participants can transact, and retires as the market fills in. The market-maker ROLE is what the code depends on, never this party id -- an external MM can be configured into it with TREATY_DEMO_MARKET_MAKER.","role":"market_maker"},{"party_id":"meridian-basis-fund","display_name":"Meridian Basis Fund","badge_tier":2,"wallet":"0xbea51f0d0001","note":"The reference hedger persona used by the CLI pipeline and the app's agent seat.","role":"participant"},{"party_id":"helios-treasury-dao","display_name":"Helios Treasury DAO","badge_tier":2,"wallet":"0xhel10570e0003","note":"Depeg-product counterparty persona (Session E).","role":"participant"},{"party_id":"northwind-systematic","display_name":"Northwind Systematic","badge_tier":1,"wallet":"0x0e7b1a9d0004","note":"Verified individual trader. Seeded so the Board shows more than one badge tier.","role":"participant"}],"canonicalization":"sha256 of json.dumps(parties, sort_keys=True, separators=(',',':')) encoded UTF-8, rendered as 0x + lowercase hex. `parties` is the array published verbatim at GET /registry.json under the key `hashed` -- the rest of the registry file (schema note, tier prose) is NOT hashed, so editorial changes cannot move it.","recompute":{"command":"python -c \"import hashlib,json,urllib.request as u;d=json.load(u.urlopen('https://demo.treaty.foundation/registry.json'));print('0x'+hashlib.sha256(json.dumps(d['hashed'],sort_keys=True,separators=(',',':')).encode()).hexdigest())\"","any_language":"Serialize `hashed` with keys sorted at every level and no whitespace between tokens, encode UTF-8, sha256, prefix 0x."},"scope":"This proves the table has not changed since you pinned it. It does not assert that any tier is deserved: the entries are Treaty's own claims, signed by nothing. See the badge legend."}