{"format":"touchstone-contest-channel\/1","recorder":"rec_01kws66dvn3qhhb4ny0pbxtr87","contests_open":true,"server_pubkey":"V4NJxeWjO0VBPibwj4RFRWxsH+b8LWLH+TLdENZIcPE=","target":"sha256:c67a586919b908c4a33cb398548f5f3827c88aa11c8b3e03eabab47134411fc0","head_seq":37,"latest_checkpoint":{"id":97,"seq_end":37,"merkle_root":"b96bac5e893ebe1ac2aca0f24b20ae5b429d90af587b54a2c7d8548566a7fd0a","ots":"\/.well-known\/touchstone\/checkpoints\/rec_01kws66dvn3qhhb4ny0pbxtr87\/97.ots"},"count":0,"contests":[],"how":"actor_sig covers the JCS of {v,recorder_id,event_type:\u0022touchstone.contest\u0022,actor_sub:contestant,counterparty_sub:null,payload_hash,client_ts:null}; the cleartext body hashes to payload_hash. Two attestation grades: contestant-signed (contestant_pubkey present \u2192 verify actor_sig against it; grade verified iff that key is bound to the contestant sub at \/pubkeys, else claimed) or server-attested (verify against server_pubkey \u2014 \u0022Touchstone recorded that C contested T\u0022). Either way, verify inclusion_proof \u2192 checkpoint.merkle_root \u2192 Bitcoin like any entry. \u0022No contest\u0022 is trustworthy up to latest_checkpoint.seq_end; a contestant-signed contest also stays self-verifiable off-channel, so a refused\/dropped one is detectable. standing-verify.py does the whole check."}