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
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xdc44739da6002378f2ae845717ecfe7856e0d7d321fe701da4d9f735a53b0752. Chain 2 (Bitcoin): anchored in block 954066 (2026-06-17T08:11:48Z). Bridge: the canonical record inside this Bitcoin proof contains the same CopyrightID. Verify: download https://artists.proofprofile.net/proofs/artist/6b0e27d0-b12c-4c4a-862c-d8b517d660dd.json and https://artists.proofprofile.net/proofs/artist/6b0e27d0-b12c-4c4a-862c-d8b517d660dd.ots, run `ots verify -f record.json proof.ots` (https://opentimestamps.org).
Bach, J.S.: Ich hatte viel Bekümmernis, Cantata BWV 21; Herz und Mund und Tat und Leben, Cantata BWV 147
Ich hatte viel Bekümmernis, Cantata BWV 21 / Pt. 1: 2. "Ich hatte viel Bekümmernis"
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
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xad63a6c4e3167acf91f83a2dbb8bc78b77dd813a7a6e1500c1c9f6e63ecd7aa0. Chain 2 (Bitcoin): anchored in block 957124 (2026-07-08T03:53:27Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DEB112005102.
Ich hatte viel Bekümmernis, Cantata BWV 21 / Pt. 1: 3. "Seufzer, Tränen, Kummer, Not"
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x4288f9c72cc5a825ec02c923b1293e337572aa0a2bf161cbbf6b8307614252a0. Chain 2 (Bitcoin): anchored in block 957124 (2026-07-08T03:53:27Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DEB112005103.
Ich hatte viel Bekümmernis, Cantata BWV 21 / Pt. 1: 5. "Bäche von gesalznen Zähren"
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x5eb5fb8f6f1677c04a2cb4357e557257103dfe7683d559bd27716eff83217a89. Chain 2 (Bitcoin): anchored in block 957120 (2026-07-08T03:22:41Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DEB112005105.
Herz und Mund und Tat und Leben, Cantata BWV 147 / Pt. 1: 1. "Herz und Mund und Tat und Leben"
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xdeb7616c421e5cd9bb9b46ade5d1276c87bdc32990f3b08e7201b215def37993. Chain 2 (Bitcoin): anchored in block 957124 (2026-07-08T03:53:27Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DEB112005112.
Herz und Mund und Tat und Leben, Cantata BWV 147 / Pt. 1: 6. "Wohl mir, dass ich Jesum habe"
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xf8e9182490a782cb76262ba8b98c8e72e5be64da7001d6f1cdb1ed0a9c16cfb8. Chain 2 (Bitcoin): anchored in block 957124 (2026-07-08T03:53:27Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DEB112005117.
Der Freischütz, Op. 77, Act 1 Scene 4: Romanze "Herr Ottokar jagte durch Heis und durch Wald" (Kuno) & Dialog
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x391990c86cb9e04dd96fd5bed90ca0b5b7bf17c3015e3b44539f11546d5d02f4. Chain 2 (Bitcoin): anchored in block 957120 (2026-07-08T03:22:41Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/FR7JM2157080.
Der Freischütz, Op. 77, Act 1 Scene 4 & 5: Nr. 2, Terzetto con Cori "Oh diese Sonne" (Max, Kuno, Kaspar, Chor) & Dialog
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xc94e90ff9974e5a85fc34d418695ec6739bc8a4ffc4eb64cf77adfa3ddedb588. Chain 2 (Bitcoin): anchored in block 957124 (2026-07-08T03:53:27Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/FR7JM2157090.
Der Freischütz, Op. 77, Act 3 Scene 7: Wer legt auf ihn so strengen Bann? (Der Eremit, Ottokar, Chor, Max, Kuno, Ännchen)
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xce5bf452c7d93b25026d6f17a02f9b9f3751e10aef18cc6a041331d21497e06d. Chain 2 (Bitcoin): anchored in block 957120 (2026-07-08T03:22:41Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/FR7JM2158170.
Der Freischütz, Op. 77, Act 3 Scene 7: Doch jetzt erhebt noch eure Blicke (Der Eremit, Chor, Alle)
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xc38f7d929fff4d09f2d94633702737e8b48c3aa0c30072412719747cb122ecee. Chain 2 (Bitcoin): anchored in block 957124 (2026-07-08T03:53:27Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/FR7JM2158180.
Der Freischütz, Op. 77, Act 1 Scene 4: Dialog "Was ist hier los?" (Kuno, Kilian, Max, Samiels Stimme, Kaspar)
Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x37eee50520064ae21e6b84faf711473308c36e3e75dca636452eccf68de5b104. Chain 2 (Bitcoin): anchored in block 960370 (2026-07-31T08:38:45Z), 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/FR7JM2157070.
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