Digital token standards have grown in importance, especially with the advent of regulation such as the European Union’s Markets in Crypto-Assets (MiCA), requiring actors within the industry to use the Digital Token Identifier (DTI). This standard, based on ISO 24165-1:2025, assigns tokens and ledgers with individual identifiers, and creates a taxonomy including equivalent and auxiliary tokens. An equivalent group, for instance, might represent a particular regulated stablecoin, and individual auxiliary tokens within that group could represent implementations of that stablecoin belonging to different blockchain networks. For blockchain ledgers, such as Ethereum, it also contains information such as forks to the network and anchor block hashes.

This is where cryptID comes in. Increasingly, research in crypto needs to consider the regulatory environment it is now operating within, and using DTIs as part of any data collection process is an crucial part of this. The DTI standard is managed by the Digital Token Identifier Foundation (DTIF), which issues DTIs and makes available an API. However, access to the production version is restricted by different options for paid access, and only a limited test version is free. An online registry search is available though, and after registrating an account users can download individual json files for various assets, tokens, ledgers and NFTs.

So once you have sourced the DTI data for the tokens and ledgers of interest, what do you do with them? It is tempting to keep them as json files, but this can quickly become unwieldly and requires rewriting code for looping through the records each time you want to query the data. cryptID provides a local PostgreSQL database representing the DTIF schema and a local API written in Python. This is not intended to replace the DTIF APIs, instead it is designed to help fast-track data engineering for crypto researchers who do not have access to the paid production APIs. Instead, you take advantage of your local copy of a subset of DTIs you have downloaded manually from the registry. pyCryptID handles individual or batch inserts into the database and common queries, including all relevant table joins. Having this accessible in an API makes it simple to drive other aspects of data collection, such as gathering on-chain logs using a blockchain node, from your own local, relational copy of the DTIs.

The initial version of the project is available on Github. It uses Sqitch for PostgreSQL deployment, with setup files located in db/, and a Python API available as the pyCryptID package on PyPI. Watch this space for further documentation and functionality!