Note autonome — N'DRI Research Lab. Index du 12/10/2026 13:35 UTC : 20 426 désignations, 43 282 noms et alias, aucune adresse africaine publiée. Companion de l'onglet « Sanctions » de blockchain_tracer.html et du cas pratique 09_cas_pratique_criblage_vasp.md. Chiffres recalculés par build_note_afrique.py ; annexe ligne à ligne : 10_entrees_africaines_annexe.csv.
L'index compte 20 426 désignations (OFAC SDN + liste consolidée ONU). 868 portent le marqueur « Afrique », soit 4.2 % — 634 côté OFAC, 234 côté ONU. Ce n'est pas un recensement : c'est le résultat d'une règle de tri, appliquée à des champs saisis par des tiers.
La distinction est essentielle pour l'usage fiscal : un drapeau « Afrique » sert à prioriser une lecture, jamais à conclure. Les sections qui suivent démontent la règle, puis les trois façons dont elle produit des faux positifs.
Le marqueur est posé par is_africa() dans _vpsdata/build_sanctions_lists.py. Il teste 54 indices (pays, régimes et dénominations onusiennes) sur le nom, les pays (pays d'adresse pour l'OFAC, nationalités et pays listés pour l'ONU) et, selon la source, les programmes (OFAC) ou les commentaires de la fiche (ONU). La correspondance se fait sur mot entier, insensible à la casse :
AFRICA_HINTS = ["DRC", "CONGO", "RDC", "LIBYA", "LIBYE", "SOMALIA", "SOMALIE", "SUDAN", …]
def is_africa(*fields):
blob = " ".join(str(x) for x in fields if x).upper()
for hint in AFRICA_HINTS:
if re.search(r"\b" + re.escape(hint) + r"\b", blob):
return True
return False
Conséquences mécaniques de cette écriture :
Les indices qui déclenchent le plus de marqueurs :
| Indice | Entrées marquées | Part des 868 |
|---|---|---|
SUDAN | 133 | 15.3 % |
CONGO | 115 | 13.2 % |
SOMALIA | 106 | 12.2 % |
DRC | 59 | 6.8 % |
LIBERIA | 52 | 6.0 % |
LIBYA | 51 | 5.9 % |
CAR | 49 | 5.6 % |
SOUTH SUDAN | 45 | 5.2 % |
EGYPT | 41 | 4.7 % |
CENTRAL AFRICAN | 35 | 4.0 % |
RWANDA | 34 | 3.9 % |
ALGERIA | 33 | 3.8 % |
| Dimension | Valeur | Part |
|---|---|---|
| Source — OFAC | 634 | 73.0 % |
| Source — ONU | 234 | 27.0 % |
| Type — personne physique | 552 | 63.6 % |
| Type — entité | 316 | 36.4 % |
| Avec au moins un alias | 611 | 70.4 % |
| Avec pays renseigné | 868 | 100.0 % |
| Avec adresse de crypto-actif | 0 | 0.0 % |
Le déséquilibre personnes/entités est un fait de source, pas d'analyse : l'ONU liste massivement des individus (nationalités, dates de naissance) là où l'OFAC liste des sociétés et des réseaux.
Un même dossier porte plusieurs programmes : les 868 entrées cumulent 927 étiquettes. 330 entrées portent au moins un code africain (soit 330 étiquettes), et 538 ne portent aucun code africain tout en restant marquées : pour celles-là, le lien vient du pays ou du nom, jamais du régime.
| Programme | Entrées | Code africain | Part des 868 |
|---|---|---|---|
SDGT | 211 | non | 24.3 % |
Al-Qaida | 105 | non | 12.1 % |
GLOMAG | 105 | non | 12.1 % |
DRC | 57 | oui | 6.6 % |
DRCONGO | 57 | oui | 6.6 % |
SUDAN-EO14098 | 57 | oui | 6.6 % |
CAR | 42 | oui | 4.8 % |
SOMALIA | 30 | oui | 3.5 % |
RUSSIA-EO14024 | 28 | non | 3.2 % |
SOUTH SUDAN | 24 | oui | 2.8 % |
SDNTK | 17 | non | 2.0 % |
Somalia | 17 | oui | 2.0 % |
FTO | 16 | non | 1.8 % |
IRAN-EO13902 | 16 | non | 1.8 % |
LIBYA3 | 14 | oui | 1.6 % |
Les codes africains présents (13) : DRC (57), DRCONGO (57), SUDAN-EO14098 (57), CAR (42), SOMALIA (30), SOUTH SUDAN (24), Somalia (17), LIBYA3 (14), Libya (11), Sudan (9), SouthSudan (5), MALI-EO13882 (4), LIBYA2 (3).
Les codes globaux (31) expliquent le reste : terrorisme international (SDGT, FTO, Al-Qaida), droits humains et corruption (GLOMAG), cyber (CYBER2), régimes non africains (RUSSIA-EO14024, IRAN-EO13902, DPRK)… Un djihadiste égyptien est « africain » par sa nationalité et « SDGT » par son régime de sanction : les deux lectures sont vraies et ne disent pas la même chose.
Le champ « pays » est le plus fragile des trois. Côté ONU, le parseur lit tous les champs <VALUE> de la fiche : on y trouve les nationalités, mais aussi des dates (770 valeurs de type AAAA-MM-JJ, réparties sur 154 entrées) et la chaîne « UN List » (234 entrées). Côté OFAC, le champ provient du fichier d'adresses : c'est un lieu d'établissement, pas une nationalité.
Table des 15 valeurs pays les plus citées, hors bruit (dates et « UN List ») :
| Pays cité | Entrées | Indice africain |
|---|---|---|
| Congo, Democratic Republic of the | 104 | oui |
| Somalia | 101 | oui |
| Sudan | 64 | oui |
| Liberia | 52 | oui |
| South Sudan | 52 | oui |
| United Arab Emirates | 49 | non |
| Egypt | 48 | oui |
| Libya | 47 | oui |
| Central African Republic | 45 | oui |
| Lebanon | 42 | non |
| Algeria | 36 | oui |
| Mali | 33 | oui |
| Rwanda | 32 | oui |
| Nigeria | 31 | oui |
| Tunisia | 30 | oui |
La présence d'États du Golfe ou du Liban dans ce tableau n'est pas une erreur : une personne listée peut y résider. C'est précisément l'argument contre l'usage du drapeau comme preuve d'un lien africain.
493 des 868 entrées (56.8 %) ne sont marquées que par le champ pays — ni le nom ni le programme ne portent d'indice africain. C'est la dépendance centrale de ce chiffre.
Autrement dit : 868 est un plancher, pas un recensement. La vraie question n'est pas « combien y en a-t-il ? » mais « de quoi ce chiffre est-il le nom ? ».
| Cas | Entrée | Ce que contient la fiche | Ce que ça montre |
|---|---|---|---|
| Le plus grand nombre de pays cités | REVIVAL OF ISLAMIC HERITAGE SOCIETY (OFAC/10923) | programmes : SDGT<br>indice(s) africain(s) : Somalia, Ghana · 38 autre(s) valeur(s) (ex. Kuwait, Bangladesh, Bosnia and Herzegovina) | Aucun indice africain dans le nom ni dans les programmes : le drapeau ne tient qu'à un lieu (siège, filiale, adresse) noyé parmi des dizaines d'autres. |
| Programme global, pays africain | MOHAMED BEN BELGACEM BEN ABDALLAH AL-AOUADI (UN/111735) | programmes : Al-Qaida<br>indice(s) africain(s) : Tunisia · 0 autre(s) valeur(s) · bruit : 15 date(s), « UN List » | Le programme est global (terrorisme, Magnitsky, régime non africain) ; l'entrée n'est « africaine » que par un pays de la fiche. |
| Bruit de parsing ONU | ABD AL-BASET AZZOUZ (UN/6908525) | programmes : Al-Qaida<br>indice(s) africain(s) : Libya · 0 autre(s) valeur(s) · bruit : 3 date(s), « UN List » | Le champ pays contient une date de la fiche onusienne : la valeur est conservée telle quelle, sans correction. |
Ces trois cas ne sont pas des erreurs de code : ce sont les limites de la source. Le marqueur ne prétend pas dire « cette entrée concerne un régime africain » ; il dit « un champ de cette fiche contient un indice africain ».
Pour un criblage. Le drapeau ne remplace aucune décision : il sert de file de lecture. Dans le cas pratique 09, aucune des contreparties n'était africaine ; si l'une l'avait été, le drapeau aurait seulement indiqué au responsable conformité qu'il existe une désignation liée à ce pays — la vérification (identité, date de naissance, adresse) restant entière.
Pour la fiscalité. Le résultat le plus utile de cette note est un constat négatif : aucune des 868 entrées africaines ne porte d'adresse de crypto-actif. Un contrôle des flux crypto liés à des personnes désignées africaines ne peut donc pas reposer sur l'index. Il doit passer par les points de contact existants — PSAV, plateformes d'échange, déclarations — et par les mécanismes d'échange de renseignements, pas par la chaîne de blocs.
Pour la recherche. Les 868 entrées forment un corpus de travail pour un codebook « régimes et pays africains » qui n'existe pas encore : la liste d'indices actuelle (54 chaînes) mélange pays, régimes onusiens et dénominations, ce qui interdit tout comptage par pays. C'est le prochain chantier méthodologique.
cd _vpsdata
python build_sanctions_lists.py --drop-raw # télécharge les fichiers officiels et les hache
python build_note_afrique.py # recalcule cette note + l'annexe CSV
python build_note_afrique.py --check # vérifie que la note publiée est à jour
| Fichier | Contenu |
|---|---|
_vpsdata/sanctions_lists_latest.json | index complet (20 426 entrées), source de tous les chiffres |
_vpsdata/build_sanctions_lists.py | règle is_africa + liste AFRICA_HINTS |
_vpsdata/build_note_afrique.py | générateur de cette note et de l'annexe |
recherche/10_entrees_africaines_annexe.csv | 868 lignes, 9 colonnes |
conference_site/data/sanctions_meta.json | empreintes et compteurs publiés à l'interface |
Empreinte de l'index (sha256 des lignes key|sha256|bytes) : 531f8b9694d3465e1e17fea4cc2f3ac2abead9d40c2f87f1e38a0b49c7a54dc5 Date du relevé : 12/10/2026 13:35 UTC.
10_entrees_africaines_annexe.csv| Colonne | Contenu |
|---|---|
src | OFAC ou UN |
id | identifiant de la désignation dans la source |
name | nom principal tel que publié |
type | individual ou entity |
countries | valeurs du champ pays, séparées par « ; » (bruit inclus) |
programs | programmes de sanction, séparés par « ; » |
aliases_count | nombre d'alias publiés |
crypto_assets | actifs des adresses publiées (vide pour les 868 entrées) |
africa_terms | indices africains effectivement trouvés dans la fiche |
Note régénérée par _vpsdata/build_note_afrique.py ; l'annexe contient 868 lignes triées par source puis identifiant. Aucun chiffre de cette note n'est saisi à la main.