Developers Office Hours #67 - CIP-113 KYC: From Standard to Implementation (03 July)

:rocket: CIP-113 KYC: From Standard to Implementation

Join Thomas Kammerlocher (@kammerlo91), Senior Full-Stack Developer at the Cardano Foundation, for a deep dive into the CIP-113 KYC Substandard and its practical implementation on Cardano.

In this session, we’ll cover:

- Introduction to KYC and the technical approach behind the standard

- Walkthrough of the CIP-113 KYC Substandard

- Live demo featuring Veridian integration

- Q&A

:date: Friday, 03 July

:eight_o_clock: 08:00 UTC

:link: AddEvent

Be the first to know when the next Developers Office Hours are scheduled.

You can subscribe directly to the calendar here: Cardano Developers | AddEvent

Join the discussion below! We’ll update this thread with the recording link as soon as it’s live.

1 Like

@lodl_de @kammerlo — because the CIP editors, @colll78 & @nemo83 have long been trying to qualify when CIP-0113 itself is even ready to be called a “standard” — can you post more information (either here or at this review thread) about what is being called the “CIP-113 KYC Substandard”? This is the first time the editors have heard of it.

Currently there is no CIP-0113 (it is only a candidate) since that document hasn’t passed peer review yet. That draft (linked from the review thread above) also currently doesn’t list KYC in its list of “substandards”. It’s a surprise and a disturbance to a needfully conservative review process for claims to circulate that a proposed CIP can have “substandards” when it’s not yet even a standard itself.

To avoid confusing the public further about CIPs and the peer review process, since a public announcement has now been made it’s important for @kammerlo to please post some clarification here and/or on GitHub in the meantime: especially since the candidate CIP-0113 is still under active review by a highly distributed community of developers and editors.

5 Likes

Hello, and thanks for your comment, @COSDpool.

Yes, that’s correct. CIP-113 is still in the peer review process. I’m working very closely with @nemo83 and supporting him on the implementation side.

In the context of CIP-113, we call a specific set of rules and contracts a substandard. Alongside the general framework defined by CIP-113, we also want to provide a set of contracts that can be used to fully leverage the benefits of programmable tokens.

These contracts are invoked through withdraw0, which enforces the rules governing transfers, minting, and burning. The concept of substandards is defined here: CIPs/CIP-0113 at master · HarmonicLabs/CIPs · GitHub

What I’m going to talk about is how we’re encoding regulatory and legislative requirements into these contracts to build true security tokens on top of CIP-113. One important aspect of this is KYC.

A substandard therefore consists of the contracts that determine whether minting, transferring, or burning a token is permitted, and under which conditions. There will be multiple substandards, each designed to support different programmability requirements.

I hope that clarifies it more and sorry for the confusion.

4 Likes

Summary: On-Chain Compliance & CIP-113 KYC Standard

In this Developers Office Hour, Thomas Kammerlocher, Senior Full-Stack Developer at the Cardano Foundation, breaks down the CIP-113 KYC substandard and its practical implementation for programmable tokens on Cardano.

The Problem: Permissionless Native Assets
Cardano’s native tokens are first-class citizens and function as bearer instruments, meaning anyone holding them can transfer them freely without restrictions. While this is excellent for decentralization, regulated finance—such as stablecoins and tokenized real-world assets—requires strict adherence to jurisdictional laws like Know Your Customer (KYC) and Anti-Money Laundering (AML) frameworks.

The Solution: CIP-113 and the Global State
CIP-113 introduces a smart contract registry that applies programmable rules to minting, burning, and transferring tokens via the “withdraw zero trick”. When an issuer creates a token, they also mint a “Global State” using a one-shot policy. This Global State holds the token’s security configurations and a list of “trusted entities” (delegated providers) authorized to manage the KYC process.

Lean On-Chain Verification
To handle complex international legal frameworks efficiently, the actual KYC verification happens off-chain. A user presents their identity, such as a verifiable credential via the Veridian app, to the trusted entity. If verified, the entity generates a signed payload containing the user’s public key hash, their specific role, and an expiration timestamp. The on-chain smart contract then simply extracts this signature from the redeemer and checks if it matches an authorized entity listed in the Global State.

Receiver Verification via Merkle Trees
Only verifying the sender is not enough, as sending compliant tokens to a sanctioned or non-KYC’d address would result in locked, permanently unusable funds. To solve this, the system implements robust receiver verification. Trusted entities maintain a Merkle tree of approved users. During a transfer, the receiver must provide a simple membership proof showing they exist in this Merkle tree, guaranteeing fully compliant asset flows on both sides of the transaction.

Ecosystem Adoption and Banking Standards
The CIP-113 ecosystem is already advancing rapidly with real-world applications. Fluid Tokens, for example, is leading the development of a robust substandard that complies with strict German and Swiss banking regulations. This advanced implementation includes scoped roles for power users, enabling features like deny lists, global transfer pauses, and regulatory token caps directly on-chain.


Top Five Q&A (FAQ) about the CIP-113 KYC Standard

Question 1: What core challenge does CIP-113 address for Cardano?
Answer: Because Cardano native tokens are freely transferable bearer instruments, they cannot natively comply with traditional banking laws. CIP-113 adds a programmable smart contract layer that allows institutions to enforce regulatory rules like KYC and AML, which is crucial for adopting real-world assets and institutional stablecoins.

Question 2: What is the “Global State” in the context of CIP-113?
Answer: The Global State is a unique, one-shot UTXO minted alongside the programmable token. It acts as an on-chain configuration file, prominently storing a list of public keys for “trusted entities” that the token issuer has authorized to handle the off-chain KYC verification process.

Question 3: How does the KYC verification process remain lean on-chain?
Answer: To maintain high flexibility across different global jurisdictions, the heavy lifting of KYC is done off-chain. Users prove their identity to a trusted entity (e.g., using Veridian verifiable credentials), and the entity provides a cryptographically signed proof. The Cardano smart contract then simply validates this signature during the transaction flow.

Question 4: Why does the system also require receiver verification?
Answer: If compliant tokens are sent to a non-KYC’d or legally sanctioned wallet, those funds would effectively become locked and unusable for the recipient. By utilizing a Merkle tree of approved users, the smart contract requires receivers to provide a membership proof, ensuring tokens only flow between fully verified participants.

Question 5: Are there already implementations that align with strict banking standards?
Answer: Yes, ecosystem projects like Fluid Tokens are already building advanced CIP-113 substandards. Their implementation successfully models German and Swiss banking regulations by introducing scoped power users capable of managing deny lists, executing global pauses, and enforcing strict minting caps.

1 Like

When reading the previous summary, I ask the community to acknowledge only the details of @kammerlo’s unique work on the “substandard” that will be used for the CIP-0113 candidate when it becomes an actual standard.

As said above — when I asked for some restraint and accountability in these communications — this document hasn’t passed peer review yet, so there is no “CIP-0113 standard” yet. Currently it’s still under review, without being “merged” as all other CIPs have:

The last word from the CIP-0113 co-authors (via @nemo83) is that its developers & contributors are still responding to issues raised in its second-round audit: and therefore also likely continuing long-term attention to other technical issues such as compatibility between implementations and the integrity of the required “global state” for all such tokens.

I am sure all community members can understand the consequences of not addressing all such issues and pushing an incomplete standard into the mainstream. In fact one of the CIP-0113 co-authors @colll78 has had to emphasise this repeatedly: asking everyone to use their “marketing” reach instead to promote the dissemination & fixing of any currently remaining problems.

Certainly stating that “CIP-113 ecosystem is already advancing rapidly with real-world applications” is misleading, because there is no CIP-0113 yet. Any project claiming an implementation of CIP-0113 would have committed to a “best guess” about how it will eventually work: which may be fine for peripheral systems like KYC but would be quite a risk (to themselves and the ecosystem) for any project actually creating tokens before their metadata and security characteristics are finalised.

Any projects and institutions willing and able to help in this effort are presumed to already be following & supporting the reference implementation on GitHub (cardano-foundation/cip113-programmable-tokens) and we look forward to their continued progress. Once the candidate CIP-0113 co-authors post in the thread above that this implementation addresses all audit findings, then we can truthfully refer to a completed CIP-0113 as a “solution” to the need for programmable, potentially regulatory-compliant tokens. cc @KtorZ

3 Likes

GM @COSDpool , thanks for taking the time to look into this.

Yeah, I agree that using “candidate standard” or “proposed standard/substandard” wording would have been more appropriate. I don’t think @kammerlo ever intended to state that CIP113 is in a final stage. It’s my understanding he made it plenty clear in the presentations.

However, I believe we can already have a “cip113 ecosystem advancing rapidly”, as this is an attestation to the fact the proposed standard it’s usable and works as intended. CIP113 itself achieve nothing, and it only makes sense once a few “substandards” or “programmable tokens implementations” have been developed. The fact that we already have a couple of stablecoin implementations, a securities candidate substandard with KYC and RWA contracts are under development, are all strong signals.

4 Likes