francis
type: MusicGroup
genre: german pop
description: Francis may refer to: People and characters Pope Francis (1936–2025), head of the Catholic Church from 2013 to 2025 Francis (given name), including a list of people and fictional characters Francis (
popularity: 14
followers: 2089
additional property: CopyrightID
additional property: CopyrightChainExplorerURL
  type: PropertyValue
  value: https://explorer.copyrightchains.com/tx/0x7c71a2d8016dd8e225c262bb60ac7a0d6fb4a3fc1a697b57ac18c98050bc8c3f
additional property: OTSHash
additional property: OTSBitcoinBlock
  type: PropertyValue
  value: 953695
additional property: OTSBitcoinBlockVerifyURL
  type: PropertyValue
  value: https://blockstream.info/api/block-height/953695
additional property: OTSProofURL
  type: PropertyValue
  value: https://artists.proofprofile.net/proofs/artist/710aea69-e4ee-4e60-a2dc-af9bdd184f7f.ots
additional property: OTSRecordURL
  type: PropertyValue
  value: https://artists.proofprofile.net/proofs/artist/710aea69-e4ee-4e60-a2dc-af9bdd184f7f.json
additional property: OTSVerificationAPI
  type: PropertyValue
  value: https://artists.proofprofile.net/api/v1/bot/ots/verify/artist/710aea69-e4ee-4e60-a2dc-af9bdd184f7f
additional property: OTSTimestamp
  type: PropertyValue
  value: 2026-06-14T21:42:01Z
additional property: OTSCanonicalRecord
additional property: OTSVerifyInstructions
  type: PropertyValue
  value: 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
subject of: OpenTimestamps Proof of Existence
  type: DigitalDocument
  encoding format: application/vnd.opentimestamps.ots
  description: Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x7c71a2d8016dd8e225c262bb60ac7a0d6fb4a3fc1a697b57ac18c98050bc8c3f. Chain 2 (Bitcoin): anchored in block 953695 (2026-06-14T21:42:01Z). Bridge: the canonical record inside this Bitcoin proof contains the same CopyrightID. Verify: download https://artists.proofprofile.net/proofs/artist/710aea69-e4ee-4e60-a2dc-af9bdd184f7f.json and https://artists.proofprofile.net/proofs/artist/710aea69-e4ee-4e60-a2dc-af9bdd184f7f.ots, run `ots verify -f record.json proof.ots` (https://opentimestamps.org).
  date published: 2026-06-14T21:42:01Z
album: James Dean
  type: MusicAlbum
  date published: 2018-06-26
album: James Dean
  type: MusicAlbum
  date published: 2018-06-26
album: Lauf davon
  type: MusicAlbum
  date published: 2018-11-09
album: Strange Love
  type: MusicAlbum
  date published: 2019-02-22
album: Strange Love
  type: MusicAlbum
  date published: 2019-02-22
album: Zurück zu mir
  type: MusicAlbum
  date published: 2019-05-17
album: Zurück zu mir
  type: MusicAlbum
  date published: 2019-05-17
album: Zurück zu mir
  type: MusicAlbum
  date published: 2019-05-17
album: vergangenheit
  type: MusicAlbum
  date published: 2019-07-19
album: Wellen pt. 2
  type: MusicAlbum
  date published: 2019-12-06
album: Ganze Nacht wach
  type: MusicAlbum
  date published: 2019-12-20
album: Ganze Nacht wach
  type: MusicAlbum
  date published: 2019-12-20
album: Call Me
  type: MusicAlbum
  date published: 2020-02-14
album: Call Me
  type: MusicAlbum
  date published: 2020-02-14
album: Call Me
  type: MusicAlbum
  date published: 2020-02-14
album: Happy Hour
  type: MusicAlbum
  date published: 2020-04-10
album: Happy Hour
  type: MusicAlbum
  date published: 2020-04-10
album: Monolog
  type: MusicAlbum
  date published: 2020-12-04
album: Monolog
  type: MusicAlbum
  date published: 2020-12-04
album: Monolog
  type: MusicAlbum
  date published: 2020-12-04
album: Zu viel
  type: MusicAlbum
  date published: 2021-03-26
album: Zu viel
  type: MusicAlbum
  date published: 2021-03-26
album: sonne auf
  type: MusicAlbum
  date published: 2023-10-27
  track: sonne auf
    type: MusicRecording
    duration: PT2M44S
    duration ms: 164427
    explicit: false
    by artist: francis
    in album: sonne auf
      type: MusicAlbum
      date published: 2023-10-27
    genre: german pop
    isrc code: DGA0M2359893
    additional property: CopyrightID
    additional property: CopyrightStatus
      type: PropertyValue
      value: registered
    additional property: CopyrightRegisteredAt
      type: PropertyValue
      value: 2026-07-20T16:37:32+00:00
    additional property: CopyrightChainExplorerURL
      type: PropertyValue
      value: https://explorer.copyrightchains.com/tx/0xcf88406f0da560f8c6e8207b77cf803b4a126ee6f9e90342b96b327a0def8926
    additional property: OTSHash
    additional property: OTSBitcoinBlock
      type: PropertyValue
      value: 958913
    additional property: OTSBitcoinBlockVerifyURL
      type: PropertyValue
      value: https://blockstream.info/api/block-height/958913
    additional property: OTSVerificationAPI
      type: PropertyValue
      value: https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DGA0M2359893
    additional property: OTSTimestamp
      type: PropertyValue
      value: 2026-07-20T16:58:47Z
    additional property: OTSVerifyInstructions
      type: PropertyValue
      value: 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
    subject of: OpenTimestamps Proof of Existence
      type: DigitalDocument
      encoding format: application/vnd.opentimestamps.ots
      description: Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xcf88406f0da560f8c6e8207b77cf803b4a126ee6f9e90342b96b327a0def8926. Chain 2 (Bitcoin): anchored in block 958913 (2026-07-20T16:58:47Z), 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/DGA0M2359893.
      date published: 2026-07-20T16:58:47Z
    audio: sonne auf
      type: AudioObject
      additional property: Tempo (BPM)
        type: PropertyValue
        value: 89.89
      additional property: Musical Key
        type: PropertyValue
        value: 7
      additional property: Mode (Major/Minor)
        type: PropertyValue
        value: 0
      additional property: Time Signature
        type: PropertyValue
        value: 4
      additional property: Danceability
        type: PropertyValue
        value: 0.465
      additional property: Energy
        type: PropertyValue
        value: 0.516
      additional property: Speechiness
        type: PropertyValue
        value: 0.047
      additional property: Acousticness
        type: PropertyValue
        value: 0.007
      additional property: Instrumentalness
        type: PropertyValue
        value: 0
      additional property: Liveness
        type: PropertyValue
        value: 0.201
      additional property: Valence (Positivity)
        type: PropertyValue
        value: 0.202
      additional property: Loudness (dB)
        type: PropertyValue
        value: -7.924
      additional property: Key Name
        type: PropertyValue
        value: G
      additional property: Mode Name
        type: PropertyValue
        value: Minor
album: taxilicht
  type: MusicAlbum
  date published: 2023-11-17
  track: taxilicht
    type: MusicRecording
    duration: PT3M6S
    duration ms: 186008
    explicit: false
    by artist: francis
    in album: taxilicht
      type: MusicAlbum
      date published: 2023-11-17
    genre: german pop
    isrc code: DGA0M2359892
    additional property: CopyrightID
    additional property: CopyrightStatus
    additional property: CopyrightRegisteredAt
    additional property: CopyrightChainExplorerURL
    additional property: OTSHash
    additional property: OTSBitcoinBlock
    additional property: OTSBitcoinBlockVerifyURL
    additional property: OTSVerificationAPI
    additional property: OTSTimestamp
    additional property: OTSVerifyInstructions
    subject of: OpenTimestamps Proof of Existence
    audio: taxilicht
album: durch die nacht
album: rosen im meer
album: welt unter
album: granit
album: menschengedränge

CopyrightID
type: PropertyValue

CopyrightStatus
type: PropertyValue
value: registered

CopyrightRegisteredAt
type: PropertyValue
value: 2026-07-04T19:32:09+00:00

CopyrightChainExplorerURL
type: PropertyValue
value: https://explorer.copyrightchains.com/tx/0x26405645b5ff5e073812fa937856b17d85e06f1d4c96519d9492345c0c5b3701

OTSHash
type: PropertyValue

OTSBitcoinBlock
type: PropertyValue
value: 956725

OTSBitcoinBlockVerifyURL
type: PropertyValue
value: https://blockstream.info/api/block-height/956725

OTSVerificationAPI
type: PropertyValue
value: https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DGA0M2359892

OTSTimestamp
type: PropertyValue
value: 2026-07-05T01:12:41Z

OTSVerifyInstructions
type: PropertyValue
value: 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

OpenTimestamps Proof of Existence
type: DigitalDocument
encoding format: application/vnd.opentimestamps.ots
description: Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x26405645b5ff5e073812fa937856b17d85e06f1d4c96519d9492345c0c5b3701. Chain 2 (Bitcoin): anchored in block 956725 (2026-07-05T01:12: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/DGA0M2359892.
date published: 2026-07-05T01:12:41Z

taxilicht
type: AudioObject
additional property: Tempo (BPM)
  type: PropertyValue
  value: 102.028
additional property: Musical Key
  type: PropertyValue
  value: 3
additional property: Mode (Major/Minor)
  type: PropertyValue
  value: 0
additional property: Time Signature
  type: PropertyValue
  value: 4
additional property: Danceability
  type: PropertyValue
  value: 0.756
additional property: Energy
  type: PropertyValue
  value: 0.441
additional property: Speechiness
  type: PropertyValue
  value: 0.064
additional property: Acousticness
  type: PropertyValue
  value: 0.259
additional property: Instrumentalness
  type: PropertyValue
  value: 0.001
additional property: Liveness
  type: PropertyValue
  value: 0.095
additional property: Valence (Positivity)
  type: PropertyValue
  value: 0.253
additional property: Loudness (dB)
  type: PropertyValue
  value: -7.61
additional property: Key Name
  type: PropertyValue
  value: Eb
additional property: Mode Name
  type: PropertyValue
  value: Minor

durch die nacht
type: MusicAlbum
date published: 2023-12-15

sonne auf
type: MusicAlbum
date published: 2024-01-19

rosen im meer
type: MusicAlbum
date published: 2024-08-16
track: rosen im meer
  type: MusicRecording
  duration: PT2M45S
  duration ms: 165000
  explicit: false
  by artist: francis
  in album: rosen im meer
    type: MusicAlbum
    date published: 2024-08-16
  genre: german pop
  isrc code: DGA082432504
  additional property: CopyrightID
  additional property: CopyrightStatus
    type: PropertyValue
    value: registered
  additional property: CopyrightRegisteredAt
    type: PropertyValue
    value: 2026-07-18T10:05:10+00:00
  additional property: CopyrightChainExplorerURL
    type: PropertyValue
    value: https://explorer.copyrightchains.com/tx/0xa78eb6777c70870172e3115204a0b0ecb96da2e4cc12c2477fb4176a639bba5a
  additional property: OTSHash
  additional property: OTSBitcoinBlock
    type: PropertyValue
    value: 958538
  additional property: OTSBitcoinBlockVerifyURL
    type: PropertyValue
    value: https://blockstream.info/api/block-height/958538
  additional property: OTSVerificationAPI
    type: PropertyValue
    value: https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DGA082432504
  additional property: OTSTimestamp
    type: PropertyValue
    value: 2026-07-18T10:30:13Z
  additional property: OTSVerifyInstructions
    type: PropertyValue
    value: 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
  subject of: OpenTimestamps Proof of Existence
    type: DigitalDocument
    encoding format: application/vnd.opentimestamps.ots
    description: Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xa78eb6777c70870172e3115204a0b0ecb96da2e4cc12c2477fb4176a639bba5a. Chain 2 (Bitcoin): anchored in block 958538 (2026-07-18T10:30:13Z), 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/DGA082432504.
    date published: 2026-07-18T10:30:13Z
  audio: rosen im meer
    type: AudioObject
    additional property: Tempo (BPM)
      type: PropertyValue
      value: 77.324
    additional property: Musical Key
      type: PropertyValue
      value: 11
    additional property: Mode (Major/Minor)
      type: PropertyValue
      value: 0
    additional property: Time Signature
      type: PropertyValue
      value: 4
    additional property: Danceability
      type: PropertyValue
      value: 0.468
    additional property: Energy
      type: PropertyValue
      value: 0.306
    additional property: Speechiness
      type: PropertyValue
      value: 0.21
    additional property: Acousticness
      type: PropertyValue
      value: 0.83
    additional property: Instrumentalness
      type: PropertyValue
      value: 0
    additional property: Liveness
      type: PropertyValue
      value: 0.191
    additional property: Valence (Positivity)
      type: PropertyValue
      value: 0.373
    additional property: Loudness (dB)
      type: PropertyValue
      value: -12.457
    additional property: Key Name
      type: PropertyValue
      value: B
    additional property: Mode Name
      type: PropertyValue
      value: Minor

welt unter
type: MusicAlbum
date published: 2024-10-18
track: welt unter
  type: MusicRecording
  duration: PT2M24S
  duration ms: 144335
  explicit: false
  by artist: francis
  in album: welt unter
    type: MusicAlbum
    date published: 2024-10-18
  genre: german pop
  isrc code: DGA0L2454694
  additional property: CopyrightID
  additional property: CopyrightStatus
    type: PropertyValue
    value: registered
  additional property: CopyrightRegisteredAt
    type: PropertyValue
    value: 2026-07-17T18:17:26+00:00
  additional property: CopyrightChainExplorerURL
    type: PropertyValue
    value: https://explorer.copyrightchains.com/tx/0xc3d23fa224ddce91ccf662ecc6ef65b25214ccf57ce128fc391b2aae37bd306b
  additional property: OTSHash
  additional property: OTSBitcoinBlock
    type: PropertyValue
    value: 958444
  additional property: OTSBitcoinBlockVerifyURL
    type: PropertyValue
    value: https://blockstream.info/api/block-height/958444
  additional property: OTSVerificationAPI
    type: PropertyValue
    value: https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DGA0L2454694
  additional property: OTSTimestamp
    type: PropertyValue
    value: 2026-07-17T19:12:23Z
  additional property: OTSVerifyInstructions
    type: PropertyValue
    value: 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
  subject of: OpenTimestamps Proof of Existence
    type: DigitalDocument
    encoding format: application/vnd.opentimestamps.ots
    description: Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0xc3d23fa224ddce91ccf662ecc6ef65b25214ccf57ce128fc391b2aae37bd306b. 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 via https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DGA0L2454694.
    date published: 2026-07-17T19:12:23Z
  audio: welt unter
    type: AudioObject
    additional property: Tempo (BPM)
      type: PropertyValue
      value: 71.523
    additional property: Musical Key
      type: PropertyValue
      value: 7
    additional property: Mode (Major/Minor)
      type: PropertyValue
      value: 0
    additional property: Time Signature
      type: PropertyValue
      value: 4
    additional property: Danceability
      type: PropertyValue
      value: 0.585
    additional property: Energy
      type: PropertyValue
      value: 0.455
    additional property: Speechiness
      type: PropertyValue
      value: 0.083
    additional property: Acousticness
      type: PropertyValue
      value: 0.218
    additional property: Instrumentalness
      type: PropertyValue
      value: 0.001
    additional property: Liveness
      type: PropertyValue
      value: 0.105
    additional property: Valence (Positivity)
      type: PropertyValue
      value: 0.353
    additional property: Loudness (dB)
      type: PropertyValue
      value: -10.911
    additional property: Key Name
      type: PropertyValue
      value: G
    additional property: Mode Name
      type: PropertyValue
      value: Minor

granit
type: MusicAlbum
date published: 2024-11-08

menschengedränge
type: MusicAlbum
date published: 2024-11-29
track: menschengedränge
  type: MusicRecording
  duration: PT2M28S
  duration ms: 148235
  explicit: false
  by artist: francis
  in album: menschengedränge
    type: MusicAlbum
    date published: 2024-11-29
  genre: german pop
  isrc code: DGA0L2454698
  additional property: CopyrightID
  additional property: CopyrightStatus
    type: PropertyValue
    value: registered
  additional property: CopyrightRegisteredAt
    type: PropertyValue
    value: 2026-07-18T10:25:21+00:00
  additional property: CopyrightChainExplorerURL
    type: PropertyValue
    value: https://explorer.copyrightchains.com/tx/0x0da652b9c1895e04f955bbc929e56ec76caa36a78ea586f885408d65df9e3677
  additional property: OTSHash
  additional property: OTSBitcoinBlock
    type: PropertyValue
    value: 958541
  additional property: OTSBitcoinBlockVerifyURL
    type: PropertyValue
    value: https://blockstream.info/api/block-height/958541
  additional property: OTSVerificationAPI
    type: PropertyValue
    value: https://artists.proofprofile.net/api/v1/bot/ots/verify/track/DGA0L2454698
  additional property: OTSTimestamp
    type: PropertyValue
    value: 2026-07-18T11:37:54Z
  additional property: OTSVerifyInstructions
    type: PropertyValue
    value: 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
  subject of: OpenTimestamps Proof of Existence
    type: DigitalDocument
    encoding format: application/vnd.opentimestamps.ots
    description: Dual-chain trust anchor. Chain 1 (CopyrightChains): CopyrightID 0x0da652b9c1895e04f955bbc929e56ec76caa36a78ea586f885408d65df9e3677. Chain 2 (Bitcoin): anchored in block 958541 (2026-07-18T11:37:54Z), 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/DGA0L2454698.
    date published: 2026-07-18T11:37:54Z
  audio: menschengedränge
    type: AudioObject
    additional property: Tempo (BPM)
      type: PropertyValue
      value: 170.317
    additional property: Musical Key
      type: PropertyValue
      value: 10
    additional property: Mode (Major/Minor)
      type: PropertyValue
      value: 0
    additional property: Time Signature
      type: PropertyValue
      value: 4
    additional property: Danceability
      type: PropertyValue
      value: 0.368
    additional property: Energy
      type: PropertyValue
      value: 0.731
    additional property: Speechiness
      type: PropertyValue
      value: 0.057
    additional property: Acousticness
      type: PropertyValue
      value: 0.141
    additional property: Instrumentalness
      type: PropertyValue
      value: 0
    additional property: Liveness
      type: PropertyValue
      value: 0.11
    additional property: Valence (Positivity)
      type: PropertyValue
      value: 0.273
    additional property: Loudness (dB)
      type: PropertyValue
      value: -8.416
    additional property: Key Name
      type: PropertyValue
      value: Bb
    additional property: Mode Name
      type: PropertyValue
      value: Minor

welt unter
type: MusicAlbum
date published: 2024-12-20