Key Event Receipt Infrastructure (KERI) is the first truly fully decentralized identity system.
KERI is the first truly decentralized identity system. It is ledger-less which means it doesn’t need to use a ledger at all or ledger-portable which means that its identifiers are not locked to any given ledger and may switch as needed. In other words KERI identifiers are truly portable.
KERI is inherently supportive of GDPR (global data protection rights) compliance. KERI provides non-intertwined identifier trust bases which means that a given identifier’s data may be erased and truly forgotten.
KERI has a decentralized secure root-of-trust based on cryptographic self-certifying identifiers. It uses hash chained data structures called Key Event Logs that enable ambient cryptographic verifiability. In other words, any log may be verified anywhere at anytime by anybody. It has separable control over shared data which means each entity is truly self-sovereign over their identifiers.
KERI is designed for high performance and scalability. It is compatible with data intensive event streaming and event sourcing applications.
One useful way of describing KERI is that it is a decentralized key management infrastructure based on key change events that supports both attestable key events and consensus based verification of key events.
Best of all KERI is open Apache2. It is a project working toward IETF standardization.
python 3.9.1+ libsodium 1.0.18+
lmdb 0.98+ pysodium 0.7.5+ blake3 0.1.5+ msgpack 1.0.0+ simplejson 3.17.0+ cbor2 5.1.0+
$ pip3 install -U lmdb pysodium blake3 msgpack simplejson cbor2or separately
$ pip3 install -U lmdb
$ pip3 install -U pysodium
$ pip3 install -U blake3
$ pip3 install -U msgpack
$ pip3 install -U simplejson
$ pip3 install -U cbor2- Ensure Python 3.9 is present along with venv and dev header files;
- Setup virtual environment:
python3 -m venv keripy - Activate virtual environment:
source keripy/bin/activate - Setup dependencies:
pip install -r requirements.txt
- Install pytest:
pip install pytest - Run the test suites:
pytest tests/ --ignore tests/demo/
pytest tests/demo/- Build docs from
docs/withmake html. - Keep canonical KERI domain terms in docstrings and reference docs. Do not rename domain vocabulary only to satisfy cross-reference resolution.
- Sphinx reference resolution policy for domain terminology is managed in
docs/conf.py.