Skip to content

ISCC-ID#

A decentralized, owned, and short identifier for digital assets.

The ISCC-ID is generated from a similarity-hash of the units of an ISCC-CODE together with a blockchain wallet address. Its SubType designates the blockchain from which the ISCC-ID was minted. The similarity-hash is always at least 64-bits and optionally suffixed with a uvarint endcoded uniqueness counter. The uniqueness counter is added and incremented only if the mint colides with a pre-existing ISCC-ID minted from the same blockchain from a different ISCC-CODE or from an identical ISCC-CODE registered by a different signatory.

gen_iscc_id(iscc_code, chain_id, wallet, uc = 0) #

Generate ISCC-ID from ISCC-CODE with the latest standard algorithm.

Parameters:

Name Type Description Default
iscc_code str

The ISCC-CODE from which to mint the ISCC-ID.

required
chain_id int

Chain-ID of blockchain from which the ISCC-ID is minted.

required
wallet str

The wallet address that signes the ISCC declaration

required
uc int

Uniqueness counter of ISCC-ID.

0

Returns:

Type Description
dict

ISCC object with an ISCC-ID

gen_iscc_id_v0(iscc_code, chain_id, wallet, uc = 0) #

Generate an ISCC-ID from an ISCC-CODE with uniqueness counter 'uc' with algorithm v0.

Parameters:

Name Type Description Default
iscc_code str

The ISCC-CODE from which to mint the ISCC-ID.

required
chain_id int

Chain-ID of blockchain from which the ISCC-ID is minted.

required
wallet str

The wallet address that signes the ISCC declaration

required
uc int

Uniqueness counter of ISCC-ID.

0

Returns:

Type Description
dict

ISCC object with an ISCC-ID

soft_hash_iscc_id_v0(iscc_code, wallet, uc = 0) #

Calculate ISCC-ID hash digest from ISCC-CODE with algorithm v0.

Accepts an ISCC-CODE or any sequence of ISCC-UNITs.

Parameters:

Name Type Description Default
iscc_code str

ISCC-CODE

required
wallet str

The wallet address that signes the ISCC declaration

required
uc int

Uniqueness counter for ISCC-ID.

0

Returns:

Type Description
bytes

Digest for ISCC-ID without header but including uniqueness counter.

iscc_id_incr(iscc_id) #

Increment uniqueness counter of an ISCC-ID with latest standard algorithm.

Parameters:

Name Type Description Default
iscc_id str

Base32-encoded ISCC-ID.

required

Returns:

Type Description
str

Base32-encoded ISCC-ID with counter incremented by one.

iscc_id_incr_v0(iscc_id) #

Increment uniqueness counter of an ISCC-ID with algorithm v0.

Parameters:

Name Type Description Default
iscc_id str

Base32-encoded ISCC-ID.

required

Returns:

Type Description
str

Base32-encoded ISCC-ID with counter incremented by one (without "ISCC:" prefix).

alg_simhash_from_iscc_id(iscc_id, wallet) #

Extract similarity preserving hex-encoded hash digest from ISCC-ID

We need to un-xor the ISCC-ID hash digest with the wallet address hash to obtain the similarity preserving bytestring.