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

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.

MissingNo party section

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."
  }
}
ReviewNo LEI in a party section

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."
  }
}
ReviewLEI outside the party sections

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."
  }
}
PassSame LEI throughout

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."
  }
}
PassLEI of the provider in charge of the placing

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

Disagree with this rule, or missing one? Propose a rule change.