1. Compute SHA-256 of OTSCanonicalRecord value → must equal OTSHash 2. Open OTSProofURL → extract Bitcoin block number → must equal OTSBitcoinBlock 3. GET OTSBitcoinBlockVerifyURL → returns the Bitcoin block hash at height OTSBitcoinBlock; GET https://blockstream.info/api/block/{that hash} → its timestamp must match OTSTimestamp 4. Read CopyrightID inside OTSCanonicalRecord → must equal the CopyrightID above 5. GET OTSVerificationAPI → pre-computed 6-check result from server 6. If all match: this entity was registered on CopyrightChains at OTSTimestamp, independently verifiable on Bitcoin Note: an OTS proof may carry multiple Bitcoin attestations; OTSBitcoinBlock is the earliest confirmed one — a later attestation inside the proof corroborates it and is not a mismatch
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x2feee7cbba18a50cec013be49a0329e3b9c9cf78cd7e8a895cbba23906c6ec4a. Chain 2 (Bitcoin): anchored in block 953778 (2026-06-15T11:57:35Z). Bridge: the canonical record inside this Bitcoin proof contains the same CopyrightID. Verify: download https://artists.proofprofile.net/proofs/artist/c9b687ff-9e44-49d4-b63b-3c9a357989da.json and https://artists.proofprofile.net/proofs/artist/c9b687ff-9e44-49d4-b63b-3c9a357989da.ots, the client at https://opentimestamps.org runs `ots verify -f record.json proof.ots`.
1. Confirm isrcCode identifies the recording in the pre-2022 source corpus and cc-db-prod record 2. GET OTSVerificationAPI → server-side canonical-record, hash, and attestation checks must pass 3. GET OTSBitcoinBlockVerifyURL → returns the Bitcoin block hash at height OTSBitcoinBlock; GET https://blockstream.info/api/block/{that hash} → its timestamp must match OTSTimestamp 4. Confirm CopyrightID is the CopyrightChains transaction hash 5. If all match: the cc-db-prod record is independently anchored on Bitcoin at OTSTimestamp Note: an OTS proof may carry multiple Bitcoin attestations; OTSBitcoinBlock is the earliest confirmed one — a later attestation inside the proof corroborates it and is not a mismatch
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x077e7fc2ae306a7f804eb38f2c5d357bd6db882a5b771b9cbc6edaf86931354c. Chain 2 (Bitcoin): anchored in block 956639 (2026-07-04T11:19:20Z), registered by our registry partner. The server verifies the private canonical record against OTSHash without exposing internal provider keys. Confirm the public ISRC, CopyrightID, and Bitcoin evidence at https://artists.proofprofile.net/api/v1/bot/ots/verify/track/QZKDK2078523 — a six-check JSON result.
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x7a1ff6b8c35d9ed9418fffdfd4eb922266a27bcb6858008354eb1d1d2fa289d0. Chain 2 (Bitcoin): anchored in block 956634 (2026-07-04T10:04:33Z), registered by our registry partner. The server verifies the private canonical record against OTSHash without exposing internal provider keys. Confirm the public ISRC, CopyrightID, and Bitcoin evidence at https://artists.proofprofile.net/api/v1/bot/ots/verify/track/QZMHM2043902 — a six-check JSON result.
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x34207134cabf988297fd05b3f05c5b4f98a5b914423b5b6c9b417abe9745f091. Chain 2 (Bitcoin): anchored in block 958728 (2026-07-19T12:24:55Z), registered by our registry partner. The server verifies the private canonical record against OTSHash without exposing internal provider keys. Confirm the public ISRC, CopyrightID, and Bitcoin evidence at https://artists.proofprofile.net/api/v1/bot/ots/verify/track/QZNJW2271306 — a six-check JSON result.
weren't so meant to be (Slowed + Reverbed)
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xed2e5b244ff9588e2d96f6bb52627107d71036d1908607e1e0789d264dd270ce. Chain 2 (Bitcoin): anchored in block 958444 (2026-07-17T19:12:23Z), registered by our registry partner. The server verifies the private canonical record against OTSHash without exposing internal provider keys. Confirm the public ISRC, CopyrightID, and Bitcoin evidence at https://artists.proofprofile.net/api/v1/bot/ots/verify/track/QZZ772512283 — a six-check JSON result.