Rule · MAJOR
COMMON.LEI_CONSISTENCY
Legal Entity Identifiers agree across the party sections and the rest of the draft
- Citation
- Annex I, Part A, point 5, Part B, point 5, Part C, point 5, Annex II, Part A, point 5, Annex III, Part A, point 5 MiCAR
- Canonical form
- Anhang I Teil A Nr. 5, Teil B Nr. 5, Teil C Nr. 5, Anhang II Teil A Nr. 5, Anhang III Teil A Nr. 5 MiCAR
- Runs for
- Annex I · other crypto-assets; Annex II · asset-referenced tokens; Annex III · e-money tokens
- Severity if open
- MAJOR
- Section key
- all sections; anchored to
issuer - Minimum words
- 0
- Listed terms (English)
- none
- Listed terms (German)
- none
- Package version
- 1.2.1, built from source that may include unreleased changes
- Source
- rules/common.py
How the status is set
- Missing: no section
issuer,offerorortrading_platform_operatorhas text other than a placeholder. - Review: a party section has text but no party section carries an LEI with valid check digits, since point 5 allows another identifier required pursuant to applicable national law in place of the LEI; a valid LEI in another section appears in no party section; or the
issuersection names more than one valid LEI. An LEI that the draft gives for a person other than the parties counts for neither: the crypto-asset service provider in charge of the placing (field E.31 of Table 2, C.22 of Table 3), a custodian of the reserve assets (G.8 of Table 3), or a person other than the issuer who offers the token, seeks its admission to trading or draws up the white paper (AA.1 and AA.3 of Table 3, A.27 of Table 4). The field label, or the sentence that holds the code, names that role before it. - Pass: none of the above. Codes with invalid check digits are reported by COMMON.LEI_CHECK_DIGITS, not here.
Legal basis
Annex I, Part A, point 5, Part B, point 5, Part C, point 5, Annex II, Part A, point 5, Annex III, Part A, point 5 MiCAR
Checked on 2026-10-27 against the Official Journal text in English and German: point 5 of Annex I Parts A, B and C and of Annex II and III Part A names the legal entity identifier or another identifier required pursuant to applicable national law, and Art. 2(1)(b) and (c) of Implementing Regulation (EU) 2024/2984 ask for the LEI where available.
Synthetic examples
Each example is linted when this page is generated. The build fails if a result differs.
The draft has no issuer, offeror or trading platform operator section to compare the LEI with.
{
"title": "Synthetic rule example",
"type": "other",
"sections": {
"summary": "LEI 9999SYNTH0000ZZQ0166."
}
}The issuer section carries no valid LEI. It may give another identifier required pursuant to applicable national law, which a reviewer checks.
{
"title": "Synthetic rule example",
"type": "other",
"sections": {
"issuer": "Synthetic Issuer AG.",
"summary": "LEI 9999SYNTH0000ZZQ0166."
}
}The summary names a valid LEI that no party section states.
{
"title": "Synthetic rule example",
"type": "other",
"sections": {
"issuer": "Synthetic Issuer AG, a fictional company. LEI: 9999SYNTH0000ZZQ0166.",
"summary": "The issuer's LEI is 9999SYNTH0000ZZQ0263."
}
}Every valid LEI in the draft matches a party section, and the issuer states one.
{
"title": "Synthetic rule example",
"type": "other",
"sections": {
"issuer": "Synthetic Issuer AG, a fictional company. LEI: 9999SYNTH0000ZZQ0166.",
"summary": "The issuer's LEI is 9999SYNTH0000ZZQ0166."
}
}Field E.31 of Table 2 asks for the LEI of the crypto-asset service provider in charge of the placing. Its label names the role, so the code is not compared with the party sections.
{
"title": "Synthetic rule example",
"type": "other",
"sections": {
"issuer": "Synthetic Issuer AG, a fictional company. LEI: 9999SYNTH0000ZZQ0166.",
"offer_or_admission": "CASP identifier: 9999SYNTH0000ZZQ0263"
}
}Limitations
- Reads every section of the draft; findings are anchored to the
issuersection. - Works offline on the characters of each code. It does not confirm that an LEI is registered, current or held by the entity the draft names.
- Status and severity are fixed by the rule. A draft cannot waive or downgrade them.
- Does not recognise the other identifiers that point 5 allows in place of the LEI, so a draft whose party sections carry no valid LEI goes to review. Once one party section carries a valid LEI, another party section without an LEI does not change the result.
- Knows a person other than the parties only from the words before the code in its sentence or field label (CASP, crypto-asset service provider, custodian, other than the issuer, other persons drawing up, and the German Kryptowerte-Dienstleistungen, Verwahrer, nicht mit dem Emittenten identisch). A role named in an earlier sentence does not carry over: in "The custodian is Example Bank AG. Its LEI is ..." the code is still compared with the party sections.
Disagree with this rule, or missing one? Propose a rule change.