{"format":"touchstone-contest-channel\/1","recorder":"rec_01kws66dvn3qhhb4ny0pbxtr87","contests_open":true,"server_pubkey":"V4NJxeWjO0VBPibwj4RFRWxsH+b8LWLH+TLdENZIcPE=","target":"sha256:0d08572b9b6a9dc52b9a5cd4345ad1a9b15cf2387d0347de9955c7bcc37dee4f","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."}