---
title: "3.7.5 MiCA y proveedores de criptoactivos en la UE"
description: "El Reglamento (UE) 2023/1114 con fuentes primarias: ámbito, fechas, periodo transitorio, servicios, capital, registro de ESMA y cómo comprobar un CASP."
url: "https://pythonparatrading.com/curso-python-trading/nivel-3/mica-y-casp-en-la-ue/"
lang: "es"
image: "https://pythonparatrading.com/og/curso-python-trading/nivel-3/mica-y-casp-en-la-ue.png"
---

# 3.7.5 · MiCA: el marco de la UE para criptoactivos y sus proveedores (CASP)

> Desde el 1 de julio de 2026 nadie puede prestar servicios de criptoactivos en España sin autorización con arreglo a MiCA. Esta lección lee el reglamento y los documentos de ESMA y de la CNMV, convierte sus fechas, sus servicios y su capital mínimo en código, y procesa un extracto con el formato del registro de ESMA para comprobar un proveedor antes de operar con él. No es asesoramiento jurídico.

- Curso: [Nivel 3: Derivados: futuros, spreads, forex y opciones](https://pythonparatrading.com/curso-python-trading/nivel-3/)
- Módulo: 3.7 · Cripto derivados y estrategias específicas
- Duración: 55 min
- Requisitos: [1.2.6 · Cripto: spot, perpetuos, funding y custodia](https://pythonparatrading.com/curso-python-trading/nivel-1/cripto-spot-perpetuos-y-funding/), [3.7.4 · ccxt para operar en varios exchanges](https://pythonparatrading.com/curso-python-trading/nivel-3/ccxt-multi-exchange/)

## Al terminar esta lección

- Situar un token en su régimen: otros criptoactivos, fichas referenciadas a activos, fichas de dinero electrónico o fuera de MiCA (instrumentos financieros, derivados, NFT únicos).
- Calcular las fechas de aplicación de MiCA y el fin del régimen transitorio de los CASP en cada Estado a partir de las fuentes primarias.
- Relacionar los diez servicios de criptoactivos con su clase de capital mínimo y con los plazos de autorización del artículo 63.
- Leer y limpiar el registro provisional de ESMA (CSV) y comprobar con código si un proveedor puede prestar un servicio en España.
- Identificar lo que MiCA cambia para un trader sistemático: custodia, abuso de mercado y el lugar de los derivados en MiFID II.

<aside class="callout" data-kind="aviso">

Esta lección explica una norma con sus fuentes primarias para entender el mercado en el que opera un sistema de
trading. No es asesoramiento jurídico ni fiscal: para una decisión concreta hay que leer el texto vigente, las normas
de desarrollo y, si hace falta, consultar a un profesional. Las cifras y registros citados son los publicados a 22 de
octubre de 2026.

</aside>

## Qué regula MiCA y qué deja fuera

El Reglamento (UE) 2023/1114 del Parlamento Europeo y del Consejo, de 31 de mayo de 2023, relativo a los mercados de
criptoactivos (MiCA), se publicó en el Diario Oficial de la UE el 9 de junio de 2023 (DO L 150)[^1]. Se aplica a quien
emite, ofrece al público o pide la admisión a negociación de criptoactivos, y a quien presta servicios relacionados con
ellos en la Unión (art. 2.1). Define un **criptoactivo** como «una representación digital de un valor o de un derecho
que puede transferirse y almacenarse electrónicamente, mediante la tecnología de registro distribuido o una tecnología
similar» (art. 3.1.5) y distingue tres tipos:

- **Ficha de dinero electrónico (EMT)**: busca un valor estable referenciándose al valor de una moneda oficial
  (art. 3.1.7). Es el caso de las stablecoins en dólares o en euros. Título IV.
- **Ficha referenciada a activos (ART)**: busca un valor estable referenciado a otro valor o derecho, o a una
  combinación, incluidas varias monedas oficiales (art. 3.1.6). Título III.
- **Otros criptoactivos**: el resto, como las monedas nativas de una red. Su oferta exige un libro blanco (título II).

Y deja fuera, entre otros, los criptoactivos únicos y no fungibles (art. 2.3) y los que sean instrumentos financieros,
depósitos o fondos (art. 2.4). Para un trader, la exclusión importante es la de los instrumentos financieros: ESMA,
en sus directrices sobre la calificación de criptoactivos como instrumentos financieros, pide tratar los **futuros
perpetuos** como contratos derivados y evaluarlos con los criterios del anexo I, sección C, puntos 4 a 10, de MiFID II
(guía 5)[^2]. Los perpetuos, los futuros y las opciones de las lecciones 3.7.1 a 3.7.3 no son servicios de MiCA: son
instrumentos de MiFID II.

```mermaid
flowchart TB
  T[Token] --> F{¿MiFID?}
  F -- sí --> M[MiFID II]
  F -- no --> U{¿Único y NFT?}
  U -- sí --> X[Fuera de MiCA]
  U -- no --> E{¿Ref. 1 moneda?}
  E -- sí --> EMT[EMT título IV]
  E -- no --> A{¿Ref. activos?}
  A -- sí --> ART[ART título III]
  A -- no --> O[Título II]
```

El árbol es una simplificación de los artículos 2 y 3. En código, con tokens ficticios:

```python
def regimen(t):
    """Árbol simplificado de los arts. 2 y 3 de MiCA y la guía 5
    de ESMA. Orientativo: no sustituye a un análisis jurídico."""
    if t.get("derivado") or t.get("instrumento_financiero"):
        return "fuera de MiCA: MiFID II (instrumento financiero)"
    if t.get("unico_no_fungible"):
        return "fuera de MiCA (art. 2.3)"
    ref = t.get("referencia")
    if ref == "una moneda oficial":
        return "ficha de dinero electrónico (EMT, título IV)"
    if ref is not None:
        return "ficha referenciada a activos (ART, título III)"
    return "otro criptoactivo (título II: libro blanco)"

tokens = {
    "XBQ (moneda nativa de su red)": {},
    "USDQ (estable frente al dólar)":
        {"referencia": "una moneda oficial"},
    "cesta oro + euro + dólar": {"referencia": "cesta"},
    "obra digital única": {"unico_no_fungible": True},
    "acción tokenizada": {"instrumento_financiero": True},
    "perpetuo sobre XBQ": {"derivado": True},
}
for nombre, t in tokens.items():
    print(f"{nombre:<31} -> {regimen(t)}")
```
```output
XBQ (moneda nativa de su red)   -> otro criptoactivo (título II: libro blanco)
USDQ (estable frente al dólar)  -> ficha de dinero electrónico (EMT, título IV)
cesta oro + euro + dólar        -> ficha referenciada a activos (ART, título III)
obra digital única              -> fuera de MiCA (art. 2.3)
acción tokenizada               -> fuera de MiCA: MiFID II (instrumento financiero)
perpetuo sobre XBQ              -> fuera de MiCA: MiFID II (instrumento financiero)
```

Las respuestas difíciles de verdad (si un token concreto es un instrumento financiero, si una stablecoin algorítmica
es EMT o ART) dependen de los derechos que otorga y del análisis caso por caso que piden las directrices de ESMA; el
árbol sirve para orientarse, no para decidir.

## El calendario

El artículo 149 fija las fechas: el reglamento entra en vigor a los 20 días de su publicación, los títulos III y IV
(ART y EMT) se aplican desde el 30 de junio de 2024 y el resto desde el 30 de diciembre de 2024[^1]. El artículo 143
añade dos plazos transitorios: los proveedores que prestaban servicios con la ley nacional antes del 30 de diciembre de
2024 pueden seguir «hasta el 1 de julio de 2026 o hasta la fecha en que se les conceda o deniegue una autorización […]
si esta fuera anterior» (art. 143.3), y los operadores de plataformas tienen hasta el 31 de diciembre de 2027 para que
exista un libro blanco de los criptoactivos que ya se negociaban (art. 143.2.b). La figura de la cabecera los sitúa en
el tiempo:

```python
import io
import numpy as np
import pandas as pd

publicacion = pd.Timestamp("2023-06-09")      # DO L 150
fechas = pd.Series({
    "entrada en vigor (art. 149.1)":
        publicacion + pd.Timedelta(days=20),
    "títulos III y IV: ART y EMT (art. 149.3)":
        pd.Timestamp("2024-06-30"),
    "resto del reglamento (art. 149.2)": pd.Timestamp("2024-12-30"),
    "fin del régimen transitorio (art. 143.3)":
        pd.Timestamp("2026-07-01"),
    "libros blancos de lo ya negociado (art. 143.2.b)":
        pd.Timestamp("2027-12-31"),
})
hoy = pd.Timestamp("2026-10-22")
pd.DataFrame({"fecha": fechas.dt.date,
              "días hasta hoy": (hoy - fechas).dt.days})
```
```output
                                                       fecha  días hasta hoy
entrada en vigor (art. 149.1)                     2023-06-29            1211
títulos III y IV: ART y EMT (art. 149.3)          2024-06-30             844
resto del reglamento (art. 149.2)                 2024-12-30             661
fin del régimen transitorio (art. 143.3)          2026-07-01             113
libros blancos de lo ya negociado (art. 143.2.b)  2027-12-31            -435
```

La entrada en vigor calculada (9 de junio de 2023 más 20 días) es el 29 de junio de 2023, la misma fecha desde la que
el artículo 149.4 aplica los mandatos de desarrollo. Hoy, 22 de octubre de 2026, el reglamento lleva 661 días
aplicándose entero y el régimen transitorio terminó hace 113 días.

### El régimen transitorio, Estado por Estado

El artículo 143.3 permite a cada Estado no aplicar el régimen transitorio o acortarlo si su marco nacional era menos
estricto. ESMA publica la lista de lo que comunicó cada uno[^3]:

```python
meses = {"BE": 18, "BG": 18, "CZ": 18, "DK": 18, "DE": 12, "EE": 18,
         "IE": 12, "GR": 18, "ES": 18, "FR": 18, "HR": 18, "IT": 18,
         "CY": 18, "LV": 6, "LT": 12, "LU": 18, "HU": 6, "MT": 18,
         "NL": 6, "AT": 12, "PL": 6, "PT": 18, "RO": 18, "SI": 6,
         "SK": 12, "FI": 6, "SE": 9, "IS": 18, "LI": 18, "NO": 12}
inicio, tope = pd.Timestamp("2024-12-30"), pd.Timestamp("2026-07-01")
fin = {p: tope if m >= 18 else inicio + pd.DateOffset(months=m)
       for p, m in meses.items()}
tr = pd.DataFrame({"meses": meses, "fin": fin})
print(tr.groupby("meses").size().rename("países").to_dict())
print("España termina:", tr.loc["ES", "fin"].date())
dia = pd.Timestamp("2025-10-01")
print("ya sin transitorio el", dia.date(), ":",
      sorted(tr.index[tr["fin"] <= dia]))
```
```output
{6: 6, 9: 1, 12: 6, 18: 17}
España termina: 2026-07-01
ya sin transitorio el 2025-10-01 : ['FI', 'HU', 'LV', 'NL', 'PL', 'SE', 'SI']
```

*Fig. — Duración del régimen transitorio de los proveedores de servicios de criptoactivos según cada Estado del EEE.* Cuatro barras desde el 30/12/2024. Seis meses (hasta el 30/06/2025, aproximadamente): Finlandia, Hungría, Letonia, Países Bajos, Polonia y Eslovenia. Nueve meses: Suecia. Doce meses: Austria, Alemania, Irlanda, Lituania, Eslovaquia y Noruega. Dieciocho meses, el máximo, hasta el 01/07/2026: España, destacada, y otros 16 Estados.

Diecisiete Estados del EEE, España entre ellos, eligieron el máximo de 18 meses; seis lo dejaron en 6 meses, uno en 9
y seis en 12. Las fechas de fin de la celda para los plazos cortos son aproximadas (30/12/2024 más n meses): la fecha
exacta la fija cada ley nacional, y la propia lista de ESMA advierte que algunas duraciones son las que esperaban las
autoridades y podían no estar aún en la ley. Para España, la CNMV es explícita: «Desde el 1 de julio de 2026 solo
pueden operar en España proveedores autorizados por la CNMV u otras autoridades europeas»[^4].

## Diez servicios y tres clases de capital

El artículo 3.1.16 enumera los servicios de criptoactivos, de la letra a a la j: custodia y administración por cuenta
de clientes, gestión de una plataforma de negociación, canje por fondos, canje por otros criptoactivos, ejecución de
órdenes, colocación, recepción y transmisión de órdenes, asesoramiento, gestión de carteras y servicios de transferencia
por cuenta de clientes[^1]. Las mismas letras aparecen en el registro de ESMA.

El anexo IV agrupa los servicios en tres clases de capital mínimo: clase 1 (50.000 EUR) para ejecución, colocación,
transferencia, recepción y transmisión, asesoramiento y gestión de carteras; clase 2 (125.000 EUR) si además hay
custodia o canje; clase 3 (150.000 EUR) si se gestiona una plataforma de negociación. El artículo 67 exige el mayor de
ese mínimo y una cuarta parte de los gastos fijos generales del año anterior:

```python
SERVICIOS = {
    "a": "custodia y administración por cuenta de clientes",
    "b": "gestión de una plataforma de negociación",
    "c": "canje de criptoactivos por fondos",
    "d": "canje de criptoactivos por otros criptoactivos",
    "e": "ejecución de órdenes por cuenta de clientes",
    "f": "colocación de criptoactivos",
    "g": "recepción y transmisión de órdenes",
    "h": "asesoramiento en materia de criptoactivos",
    "i": "gestión de carteras de criptoactivos",
    "j": "servicios de transferencia por cuenta de clientes",
}

def capital_minimo(servicios, gastos_fijos_anuales):
    if "b" in servicios:
        clase, base = 3, 150_000
    elif set(servicios) & {"a", "c", "d"}:
        clase, base = 2, 125_000
    else:
        clase, base = 1, 50_000
    return clase, max(base, gastos_fijos_anuales / 4)

casos = {"asesor independiente": ("h", 120_000),
         "bróker que transmite órdenes": ("eg", 900_000),
         "exchange con custodia": ("abcdej", 6_000_000)}
for quien, (srv, gastos) in casos.items():
    clase, k = capital_minimo(srv, gastos)
    print(f"{quien:<29} clase {clase}: {k:>12,.0f} EUR")
```
```output
asesor independiente          clase 1:       50,000 EUR
bróker que transmite órdenes  clase 1:      225,000 EUR
exchange con custodia         clase 3:    1,500,000 EUR
```

Para un intermediario con estructura, la cuarta parte de los gastos fijos manda casi siempre: el bróker de la celda
necesita 225.000 EUR aunque su clase sea la 1, y el exchange, 1,5 millones. El capital es un colchón, no una garantía
para el cliente: como recuerda la CNMV, no hay un sistema de indemnización de los inversores si un proveedor
quiebra[^4].

## Autorización, notificación y pasaporte

El artículo 59 solo permite prestar servicios de criptoactivos en la Unión a dos tipos de entidades: las autorizadas
como CASP con el artículo 63, y las entidades ya supervisadas (entidades de crédito, depositarios centrales, empresas
de servicios de inversión, organismos rectores del mercado, entidades de dinero electrónico, gestoras de OICVM y de
FIA) que notifican a su autoridad con el artículo 60, en general con al menos 40 días hábiles de antelación[^1]. Una
autorización vale para toda la Unión, por establecimiento o por libre prestación, sin presencia física en el Estado de
acogida (art. 59.7), comunicando antes los Estados y los servicios (art. 65).

```mermaid
flowchart TB
  S[Solicitud art. 62] --> A[Acuse: 5 días]
  A --> C[Completa: 25 días]
  C --> E[Evaluación: 40 días]
  E --> D[Decisión]
  D --> N[Notificación: 5]
  D --> R[Registro ESMA]
```

Los plazos del artículo 63 son en días hábiles: acuse de recibo en 5, comprobación de que la solicitud está completa en
25, evaluación en 40 desde que está completa (con una suspensión de hasta 20 si se pide información) y notificación de
la decisión en 5 más[^1]. Con `numpy.busday_offset` y tres festivos de 2026 como ejemplo (la lista real depende del
Estado y de la comunidad autónoma):

```python
def plazos(presentada, suspension_dias=0, festivos=()):
    hab = lambda d, n: np.busday_offset(
        np.datetime64(d.date()), n, roll="forward",
        holidays=list(festivos))
    acuse = hab(presentada, 5)
    completa = hab(presentada, 25)
    decision = hab(pd.Timestamp(completa), 40 + suspension_dias)
    return {"acuse de recibo": acuse, "completitud": completa,
            "decisión": decision,
            "notificación": hab(pd.Timestamp(decision), 5)}

festivos = ["2026-04-02", "2026-04-03", "2026-05-01"]
for susp in (0, 20):
    p = plazos(pd.Timestamp("2026-02-02"), susp, festivos)
    print(f"suspensión {susp:>2} días:",
          {k: str(v) for k, v in p.items()})
```
```output
suspensión  0 días: {'acuse de recibo': '2026-02-09', 'completitud': '2026-03-09', 'decisión': '2026-05-07', 'notificación': '2026-05-14'}
suspensión 20 días: {'acuse de recibo': '2026-02-09', 'completitud': '2026-03-09', 'decisión': '2026-06-04', 'notificación': '2026-06-11'}
```

Una solicitud presentada el 2 de febrero de 2026 tendría la decisión, en el peor caso de la norma, el 4 de junio y la
notificación el 11, días antes del fin del régimen transitorio. Por eso muchas autorizaciones españolas del registro
llevan fecha de junio y julio de 2026. Las empresas de fuera de la UE solo pueden atender sin autorización a clientes
que acuden a ellas por **iniciativa exclusiva** del cliente, sin captarlos de ninguna forma en la Unión (art. 61), y
ESMA ha publicado directrices para delimitar ese supuesto.

## El registro de ESMA

Los artículos 109 y 110 encargan a ESMA un registro de libros blancos, emisores de ART y EMT y CASP, y otro, no
exhaustivo, de entidades que prestan servicios sin cumplir las normas[^1]. Mientras se integra en sus sistemas, ESMA lo
publica como un **registro provisional** en cinco ficheros CSV (`OTHER.csv`, `ARTZZ.csv`, `EMTWP.csv`, `CASPS.csv` y
`NCASP.csv`) junto con un fichero que describe cada campo[^5]. Descargar y resumir el de los CASP es inmediato:

```python skip title="registro_esma.py"
import io
import urllib.request
import pandas as pd

URL = ("https://www.esma.europa.eu/sites/default/files/2024-12/"
       "CASPS.csv")
with urllib.request.urlopen(URL, timeout=30) as r:
    casps = pd.read_csv(io.BytesIO(r.read()), dtype=str,
                        encoding="utf-8-sig")
pais = casps["ae_homeMemberState"].str.strip()
print(len(casps), casps["ae_lei"].nunique(), pais.nunique())
print(pais.value_counts().head(8))
print(casps["ac_legal_basis"].fillna("(vacío)").value_counts())
```

Con la versión del 19 de octubre de 2026, el fichero tiene 379 entradas de 376 LEI distintos y de 27 Estados de
origen; las 16 españolas tienen a la CNMV como autoridad competente. Alemania reúne más de una cuarta parte:

*Fig. — Entradas del registro provisional de proveedores de servicios de criptoactivos de ESMA por Estado de origen, a 19 de octubre de 2026.* Barras horizontales: Alemania 109, Francia 36, Países Bajos 29, Chipre 25, Malta 23, España 16 (destacada), Luxemburgo 13 y otros 20 Estados 128; 379 entradas en total.

El fichero real también enseña por qué hay que limpiarlo antes de usarlo: un código de país con un espacio detrás
(`NL `), una base legal que en 180 entradas está vacía y en el resto aparece como `Article 60`, `Article 60 -
Notification`, `Article 63` o `Article 63 - CASP authorisation`, y una lista de servicios en la que conviven las letras
del reglamento («a. providing custody…») con textos sin letra. Para ejecutar el código sin red, la celda siguiente
construye un extracto **ficticio** con las mismas columnas y los mismos defectos:

```python
CSV = """﻿ae_competentAuthority,ae_homeMemberState,ae_lei_name,\
ae_lei,ae_lei_cou_code,ae_commercial_name,ae_address,ae_website,\
ae_website_platform,ac_authorisationNotificationDate,\
ac_authorisationEndDate,ac_serviceCode,ac_serviceCode_cou,\
ac_comments,ac_lastupdate,ac_legal_basis
Autoridad Ficticia de Malta,MT,Alfa Cripto Europa Ltd,\
5299000ALFA0CRIPTO79,MT,Alfa,"Calle 1, La Valeta",\
https://alfa.example,https://pro.alfa.example,14/03/2025,,\
a. providing custody and administration of crypto-assets on \
behalf of clients | b. operation of a trading platform for \
crypto-assets | c. exchange of crypto-assets for funds | \
d. exchange of crypto-assets for other crypto-assets,\
AT|DE|ES|FR|IT|NL,,02/04/2025,Article 63 - CASP authorisation
Autoridad Ficticia de Alemania,DE ,Banco Cenit AG,\
529900CENIT0BANCO076,DE,Cenit,"Platz 2, Fráncfort",\
https://cenit.example,,05/06/2025,,\
e. execution of orders for crypto-assets on behalf of clients|\
g. reception and transmission of orders for crypto-assets on \
behalf of clients,DE|AT,,05/06/2025,Article 60
Autoridad Ficticia de España,ES,Dedalo Digital SL,\
5299000DEDALO0SL0062,ES,Dedalo,"Calle 3, Madrid",\
https://dedalo.example,,30/06/2026,15/09/2026,\
exchange of crypto-assets for funds | providing transfer services \
for crypto-assets on behalf of clients,ES,retirada,15/09/2026,
"""
reg = pd.read_csv(io.StringIO(CSV), dtype=str, encoding="utf-8-sig")
print(reg.shape)
reg[["ae_homeMemberState", "ae_commercial_name",
     "ac_authorisationNotificationDate", "ac_authorisationEndDate"]]
```
```output
(3, 16)
  ae_homeMemberState ae_commercial_name ac_authorisationNotificationDate ac_authorisationEndDate
0                 MT               Alfa                       14/03/2025                     NaN
1                DE               Cenit                       05/06/2025                     NaN
2                 ES             Dedalo                       30/06/2026              15/09/2026
```

Las fechas vienen como texto `dd/mm/aaaa` y la de retirada (`ac_authorisationEndDate`) solo está en las entidades que
han perdido la autorización. La limpieza recorta los códigos de país, convierte los servicios a letras (por la letra
si la hay y, si no, por el texto), separa los Estados del pasaporte por la barra vertical, convierte las fechas y extrae
la base legal (60 o 63):

```python
import re

TEXTOS = {
    "a": "custody", "b": "trading platform",
    "c": "for funds", "d": "for other crypto",
    "e": "execution of orders", "f": "placing",
    "g": "reception and transmission", "h": "advice",
    "i": "portfolio management", "j": "transfer services"}

def codigos(texto):
    salida = set()
    for parte in re.split(r"\s*\|\s*", texto or ""):
        m = re.match(r"\(?([a-j])[.)]\s", parte.strip())
        if m:
            salida.add(m.group(1))
            continue
        for k, clave in TEXTOS.items():
            if clave in parte.lower():
                salida.add(k)
    return "".join(sorted(salida))

def limpiar(r):
    r = r.copy()
    r["pais"] = r["ae_homeMemberState"].str.strip()
    r["servicios"] = r["ac_serviceCode"].map(codigos)
    r["pasaporte"] = r["ac_serviceCode_cou"].fillna("").str.split("|")
    for c in ["ac_authorisationNotificationDate",
              "ac_authorisationEndDate"]:
        r[c] = pd.to_datetime(r[c], format="%d/%m/%Y")
    r["via"] = r["ac_legal_basis"].fillna("").str.extract(
        r"(60|63)", expand=False)
    return r

limpio = limpiar(reg)
limpio[["pais", "ae_commercial_name", "servicios", "via",
        "ac_authorisationEndDate"]]
```
```output
  pais ae_commercial_name servicios  via ac_authorisationEndDate
0   MT               Alfa      abcd   63                     NaT
1   DE              Cenit        eg   60                     NaT
2   ES             Dedalo        cj  NaN              2026-09-15
```

Alfa (Malta) está autorizada con el artículo 63 para custodia, plataforma y los dos canjes; Cenit es un banco que
notificó con el artículo 60 ejecución y transmisión de órdenes; Dedalo tenía canje y transferencias, y su autorización
se retiró el 15/09/2026. Cada entidad lleva su **LEI** (Legal Entity Identifier, ISO 17442), un código de 20
caracteres cuyos dos últimos dígitos son de control: con la norma ISO 7064 (MOD 97-10), el número formado por sus
caracteres (las letras como 10 a 35) debe dar resto 1 al dividir entre 97:

```python
def lei_valido(lei):
    """ISO 17442: 20 caracteres y MOD 97-10 (ISO 7064) igual a 1."""
    if not re.fullmatch(r"[0-9A-Z]{18}[0-9]{2}", lei or ""):
        return False
    return int("".join(str(int(c, 36)) for c in lei)) % 97 == 1

def con_control(base18):
    n = int("".join(str(int(c, 36)) for c in base18 + "00"))
    return base18 + f"{98 - n % 97:02d}"

print(con_control("5299000ALFA0CRIPTO"),
      lei_valido("5299000ALFA0CRIPTO79"))
print({n: lei_valido(x) for n, x in
       zip(limpio["ae_commercial_name"], limpio["ae_lei"])})
print("un dígito cambiado:", lei_valido("5299000ALFA0CRIPTO78"))
```
```output
5299000ALFA0CRIPTO79 True
{'Alfa': True, 'Cenit': True, 'Dedalo': False}
un dígito cambiado: False
```

El LEI de Dedalo tiene una errata y no pasa el control; el algoritmo también valida los LEI reales del registro. Al
cruzar registros (ESMA, la CNMV, un proveedor de datos), el LEI es la clave fiable; el nombre comercial no lo es.

## Comprobar un proveedor antes de operar

La CNMV recomienda verificar en los registros de ESMA y de la CNMV que el proveedor está autorizado, comprobar qué
entidad jurídica presta el servicio (las protecciones de MiCA solo cubren a la entidad autorizada en la UE, no a otras
sociedades del grupo aunque usen la misma marca) y consultar su lista de entidades no autorizadas[^4]. Convertido en
una lista de comprobaciones sobre el extracto limpio, con una lista ficticia de no conformes:

```python
NCASP = pd.DataFrame({"ae_commercial_name": ["Icaro Trade"],
                      "ae_website": ["https://icaro.example"]})

def comprobar(nombre, necesito, pais="ES", dia=hoy):
    fila = limpio[limpio["ae_commercial_name"] == nombre]
    r = {"en el registro de CASP": not fila.empty,
         "no figura como no conforme":
             nombre not in set(NCASP["ae_commercial_name"])}
    if fila.empty:
        return r
    f = fila.iloc[0]
    fin = f["ac_authorisationEndDate"]
    r["autorización vigente"] = pd.isna(fin) or fin > dia
    r["servicios " + necesito] = set(necesito) <= set(f["servicios"])
    r[f"opera en {pais}"] = (f["pais"] == pais
                             or pais in f["pasaporte"])
    r["LEI válido"] = lei_valido(f["ae_lei"])
    return r

for nombre, necesito in [("Alfa", "cd"), ("Cenit", "cd"),
                         ("Dedalo", "c"), ("Icaro Trade", "c")]:
    res = comprobar(nombre, necesito)
    fallos = [k for k, ok in res.items() if not ok]
    print(f"{nombre:<11} {'OK' if not fallos else 'NO'}  {fallos}")
```
```output
Alfa        OK  []
Cenit       NO  ['servicios cd', 'opera en ES']
Dedalo      NO  ['autorización vigente', 'LEI válido']
Icaro Trade NO  ['en el registro de CASP', 'no figura como no conforme']
```

Alfa pasa todas para canjear por fondos y por otros criptoactivos en España (está autorizada en Malta y tiene España en
su pasaporte). Cenit está registrada, pero no para esos servicios ni con pasaporte a España. Dedalo ya no está
autorizada y además su LEI no cuadra, una señal de que el registro que se usa tiene erratas. Icaro Trade no está en el
registro y sí en la lista de no conformes. La comprobación no sustituye a leer el contrato y a consultar el registro de
la CNMV, pero sí evita el error más frecuente: operar con una marca conocida a través de una sociedad que no es la
autorizada.

## Lo que cambia para un trader sistemático

- **Custodia.** Un CASP que guarda criptoactivos de clientes debe proteger su propiedad, sobre todo frente a su propia
  insolvencia, y no puede usarlos por cuenta propia (art. 70.1); los fondos de clientes distintos de EMT se depositan
  en una entidad de crédito o un banco central antes del final del día hábil siguiente, en cuentas separadas
  (art. 70.3). El custodio responde de la pérdida de criptoactivos por un incidente que se le pueda atribuir, hasta su
  valor de mercado (art. 75.8). Es lo que faltó en el caso de dedalo de la lección 3.7.2.
- **Abuso de mercado.** El título VI (arts. 86 a 92) prohíbe la manipulación y el uso de información privilegiada en
  criptoactivos admitidos a negociación, dentro y fuera de las plataformas y desde dentro o fuera de la Unión. Una
  estrategia que transmita señales falsas sobre la oferta o la demanda (art. 91.2.a) es manipulación también en
  cripto: cuidado con las órdenes que no se piensan ejecutar y con las operaciones contra uno mismo.
- **Derivados.** Perpetuos, futuros y opciones son instrumentos de MiFID II (guía 5 de ESMA). Quien los ofrece a
  clientes de la UE necesita la autorización correspondiente de MiFID II, no basta la de CASP, y para un minorista
  aplican las reglas de producto y de apalancamiento de MiFID II.
- **Supervisión en España.** La CNMV es la autoridad competente para la supervisión del cumplimiento de MiCA, y el Banco
  de España ejerce las funciones de supervisión de los emisores de EMT y ART[^4].
- **Fiscalidad.** No es materia de MiCA; la lección 7.4.4 trata la fiscalidad y la información que los proveedores
  envían a Hacienda.

## Ejercicios

1. Con la tabla de periodos transitorios, calcula qué Estados seguían en régimen transitorio el 1 de enero de 2026 y
   cuántos días le quedaban a cada grupo.

**Solución.**

```python
dia = pd.Timestamp("2026-01-01")
vivos = tr[tr["fin"] > dia].copy()
vivos["dias_restantes"] = (vivos["fin"] - dia).dt.days
print(len(vivos), "Estados")
print(vivos.groupby("meses")["dias_restantes"].first().to_dict())
print(sorted(set(tr.index) - set(vivos.index)))
```
```output
17 Estados
{18: 181}
['AT', 'DE', 'FI', 'HU', 'IE', 'LT', 'LV', 'NL', 'NO', 'PL', 'SE', 'SI', 'SK']
```

El 1 de enero de 2026 solo seguían en régimen transitorio los 17 Estados de 18 meses, con 181 días por delante
hasta el 1 de julio. Los de 6, 9 y 12 meses ya habían terminado: los de 12, el 30 de diciembre de 2025, dos días antes.
Para un sistema que operaba en varios exchanges europeos, eso significa que durante el primer semestre de 2026 un
mismo proveedor podía estar ya obligado a tener autorización en un país y no en otro.

2. Añade al extracto una entidad ficticia «Faro Custodia» autorizada en Francia con custodia y transferencias (letras
   a y j) y pasaporte a España, Italia y Portugal, con un LEI válido generado por ti, y compruébala para custodia (`a`)
   y para canje por fondos (`c`).

**Solución.**

```python
faro = pd.DataFrame([{
    "ae_competentAuthority": "Autoridad Ficticia de Francia",
    "ae_homeMemberState": "FR",
    "ae_lei_name": "Faro Custodia SAS",
    "ae_lei": con_control("969500FARO00CUSTOD"),
    "ae_commercial_name": "Faro",
    "ac_authorisationNotificationDate": "01/07/2026",
    "ac_serviceCode": "a. providing custody and administration of "
                      "crypto-assets on behalf of clients | "
                      "j. providing transfer services for "
                      "crypto-assets on behalf of clients",
    "ac_serviceCode_cou": "ES|IT|PT",
    "ac_legal_basis": "Article 63 - CASP authorisation"}])
limpio = limpiar(pd.concat([reg, faro], ignore_index=True))
print(limpio.loc[limpio["ae_commercial_name"] == "Faro",
                 ["ae_lei", "servicios", "pasaporte"]].to_string())
for necesito in ["a", "c"]:
    res = comprobar("Faro", necesito)
    print(necesito, [k for k, ok in res.items() if not ok])
```
```output
                 ae_lei servicios     pasaporte
3  969500FARO00CUSTOD66        aj  [ES, IT, PT]
a []
c ['servicios c']
```

El LEI generado pasa el control y la limpieza convierte los dos servicios en `aj`. Para custodia en España, Faro
pasa todas las comprobaciones; para canje por fondos falla la de servicios: con esa autorización puede custodiar y
transferir, pero no comprar ni vender criptoactivos a sus clientes. El registro dice qué servicios puede prestar cada
entidad, no solo si está autorizada.

3. Un sistema quiere operar desde España perpetuos de XBQ en un exchange autorizado como CASP en otro Estado de la UE.
   Enumera qué comprobarías y por qué la autorización de CASP no basta.

**Solución.**

Primero, que la entidad con la que se contrata es la autorizada (LEI y nombre jurídico en el contrato, no la marca) y
que figura en el registro de ESMA sin fecha de retirada, con España en su pasaporte y fuera de la lista de no
conformes y de la de la CNMV. Después, que los servicios autorizados cubren lo que se va a hacer con el contado y la
custodia (letras a, c, d o e, según el caso). Pero el perpetuo no es un criptoactivo de MiCA: según la guía 5 de ESMA
es un derivado de MiFID II, así que la entidad necesita además una autorización de MiFID II para ofrecerlo a clientes
de la UE (y, si el cliente es minorista, las reglas de producto y de apalancamiento de MiFID II). Si solo tiene la de
CASP, ofrecer perpetuos a clientes españoles queda fuera de lo que esa autorización permite. Por último, el riesgo de
contraparte no desaparece: MiCA exige segregar y custodiar, pero no hay fondo de garantía de inversores, y la lección
3.7.2 enseña lo que se pierde cuando un exchange suspende las retiradas.

[^1]: Reglamento (UE) 2023/1114 del Parlamento Europeo y del Consejo, de 31 de mayo de 2023 (DO L 150 de 9.6.2023),
    artículos 2, 3, 59 a 63, 65, 67, 70, 75, 86 a 92, 109, 110, 143 y 149, y anexo IV, versión española en
    [EUR-Lex](https://eur-lex.europa.eu/legal-content/ES/TXT/?uri=CELEX:32023R1114), consultada el 22/10/2026.
[^2]: ESMA, «Final Report. Guidelines on the conditions and criteria for the qualification of crypto-assets as
    financial instruments», ESMA75453128700-1323, 17/12/2024, guía 5, apartado 47,
    [esma.europa.eu](https://www.esma.europa.eu/sites/default/files/2024-12/ESMA75453128700-1323_Final_Report_Guidelines_on_the_conditions_and_criteria_for_the_qualification_of_CAs_as_FIs.pdf).
[^3]: ESMA, «List of grandfathering periods decided by Member States under Article 143 of Regulation (EU) 2023/1114»
    (PDF del 19/05/2026), [esma.europa.eu](https://www.esma.europa.eu/sites/default/files/2024-12/List_of_MiCA_grandfathering_periods_art._143_3.pdf),
    consultada el 22/10/2026.
[^4]: CNMV, «MiCA: Nueva regulación de criptoactivos»,
    [cnmv.es](https://www.cnmv.es/portal/MiCA/Regulacion-Criptoactivos), consultada el 22/10/2026.
[^5]: ESMA, página de MiCA, sección «Interim MiCA Register» (cinco ficheros CSV, última actualización del 19/10/2026, y
    descripción de los campos),
    [esma.europa.eu](https://www.esma.europa.eu/esmas-activities/digital-finance-and-innovation/markets-crypto-assets-regulation-mica),
    consultada el 22/10/2026.

## Autoevaluación

1. Un exchange que ya operaba en España con la ley nacional antes del 30/12/2024 no tiene autorización MiCA el 15 de julio de 2026. ¿Puede seguir prestando servicios a clientes en España?

   - A. Sí, mientras tramite la solicitud
   - B. No: el régimen transitorio termina como tarde el 1 de julio de 2026, y la CNMV dice que desde esa fecha solo pueden operar proveedores autorizados
   - C. Sí, si tiene su sede fuera de la UE
   - D. Sí, hasta el 31 de diciembre de 2027

   *Respuesta B: No: el régimen transitorio termina como tarde el 1 de julio de 2026, y la CNMV dice que desde esa fecha solo pueden operar proveedores autorizados.* El artículo 143.3 permite seguir hasta el 1 de julio de 2026 o hasta la autorización o denegación, si es antes. España eligió el plazo máximo de 18 meses. El 31/12/2027 es otra cosa: el plazo de los libros blancos de criptoactivos ya negociados (art. 143.2.b).

2. ¿Qué régimen aplica a un futuro perpetuo sobre bitcoin ofrecido a clientes de la UE?

   - A. MiCA, porque el subyacente es un criptoactivo
   - B. Ninguno
   - C. MiFID II: las directrices de ESMA piden tratar los perpetuos como contratos derivados, y MiCA no se aplica a los criptoactivos que son instrumentos financieros
   - D. El de las fichas de dinero electrónico

   *Respuesta C: MiFID II: las directrices de ESMA piden tratar los perpetuos como contratos derivados, y MiCA no se aplica a los criptoactivos que son instrumentos financieros.* El artículo 2.4 deja fuera de MiCA los instrumentos financieros, y la guía 5 de ESMA (17/12/2024) dice que los perpetuos deben tratarse como derivados y evaluarse con el anexo I, sección C, puntos 4 a 10, de MiFID II. Una autorización de CASP no cubre, por sí sola, ofrecer derivados.

3. Un proveedor presta custodia, canje por fondos y gestiona una plataforma de negociación. Sus gastos fijos generales del año anterior fueron 400.000 EUR. ¿Qué capital mínimo le exige MiCA?

   - A. 50.000 EUR
   - B. 125.000 EUR
   - C. 150.000 EUR (clase 3), porque es mayor que la cuarta parte de sus gastos fijos (100.000)
   - D. 400.000 EUR

   *Respuesta C: 150.000 EUR (clase 3), porque es mayor que la cuarta parte de sus gastos fijos (100.000).* La gestión de una plataforma de negociación lo pone en la clase 3 del anexo IV (150.000 EUR), y el artículo 67 exige el mayor entre ese mínimo y una cuarta parte de los gastos fijos generales: max(150.000, 100.000) = 150.000.

4. En el registro provisional de ESMA, un proveedor figura con `ac_authorisationEndDate` = 15/09/2026. ¿Qué significa?

   - A. Que su autorización empieza ese día
   - B. Que es la fecha de retirada de la autorización: desde entonces ya no puede prestar los servicios
   - C. Que es la última actualización del registro
   - D. Que tiene que renovarla ese día

   *Respuesta B: Que es la fecha de retirada de la autorización: desde entonces ya no puede prestar los servicios.* Según la descripción de campos que publica ESMA, `ac_authorisationEndDate` es la fecha de retirada de la autorización, si la hay. La de autorización es `ac_authorisationNotificationDate` y la de actualización, `ac_lastupdate`.

5. ¿Qué protege MiCA cuando un cliente opera con una marca que tiene varias sociedades en el mundo?

   - A. Todas las sociedades del grupo
   - B. Solo la entidad jurídica autorizada en la UE; por eso hay que comprobar en el contrato qué sociedad presta el servicio
   - C. Ninguna
   - D. Las sociedades con más volumen

   *Respuesta B: Solo la entidad jurídica autorizada en la UE; por eso hay que comprobar en el contrato qué sociedad presta el servicio.* La CNMV lo advierte expresamente: las protecciones de MiCA solo se aplican a la entidad jurídica autorizada en la UE, no a otras empresas del grupo ni a entidades de fuera de la UE, aunque usen la misma marca. Además, no hay un sistema de indemnización de los inversores si el proveedor quiebra.

## Ideas clave

- MiCA (Reglamento (UE) 2023/1114) regula la emisión y oferta de criptoactivos (libros blancos, ART y EMT) y a sus proveedores de servicios (CASP); deja fuera los instrumentos financieros, los depósitos y los criptoactivos únicos y no fungibles.
- Fechas: entrada en vigor el 29/06/2023, títulos III y IV desde el 30/06/2024, aplicación plena desde el 30/12/2024 y régimen transitorio de los CASP hasta el 01/07/2026 como máximo (España eligió el máximo, 18 meses).
- Hay diez servicios de criptoactivos (letras a a j del art. 3.1.16) y tres clases de capital mínimo: 50.000, 125.000 y 150.000 EUR, o una cuarta parte de los gastos fijos si es mayor.
- Prestar servicios exige autorización como CASP (art. 63) o, para bancos, empresas de servicios de inversión y otras entidades ya supervisadas, una notificación (art. 60); la autorización vale en toda la UE con el pasaporte del art. 65.
- El registro provisional de ESMA son cinco CSV; leerlo exige limpiar códigos de país, servicios en formatos mezclados y fechas dd/mm/aaaa, y comprobar la fecha de retirada, el pasaporte y la lista de no conformes.
- Los perpetuos y demás derivados sobre criptoactivos son instrumentos de MiFID II según ESMA; el título VI de MiCA prohíbe la manipulación y el uso de información privilegiada también dentro y fuera de las plataformas.

## Recursos

### Documentación

- [EUR-Lex: Reglamento (UE) 2023/1114 relativo a los mercados de criptoactivos (texto en español)](https://eur-lex.europa.eu/legal-content/ES/TXT/?uri=CELEX:32023R1114) · eur-lex.europa.eu
- [ESMA: Markets in Crypto-Assets Regulation (registro provisional, periodos transitorios y directrices)](https://www.esma.europa.eu/esmas-activities/digital-finance-and-innovation/markets-crypto-assets-regulation-mica) · esma.europa.eu
- [ESMA: lista de periodos transitorios decididos por los Estados (art. 143.3)](https://www.esma.europa.eu/sites/default/files/2024-12/List_of_MiCA_grandfathering_periods_art._143_3.pdf) · esma.europa.eu
- [ESMA: directrices sobre la calificación de criptoactivos como instrumentos financieros (17/12/2024)](https://www.esma.europa.eu/sites/default/files/2024-12/ESMA75453128700-1323_Final_Report_Guidelines_on_the_conditions_and_criteria_for_the_qualification_of_CAs_as_FIs.pdf) · esma.europa.eu
- [CNMV: MiCA, nueva regulación de criptoactivos](https://www.cnmv.es/portal/MiCA/Regulacion-Criptoactivos) · cnmv.es

### Datos

- [ESMA: descripción de los campos del registro provisional de MiCA (CSV)](https://www.esma.europa.eu/sites/default/files/2024-12/Description_of_the_fields_in_the_interim_MiCA_register.csv) · esma.europa.eu

Lección anterior: [3.7.4 · ccxt para operar en varios exchanges](https://pythonparatrading.com/curso-python-trading/nivel-3/ccxt-multi-exchange/)
