Veilid pour le transport. Monero pour le règlement. Aucun opérateur entre les deux.
Il n'existe aucun serveur DUCAT nulle part — les contacts, les messages, les factures et les reçus sont des enregistrements DHT et des charges scellées de bout en bout, et chaque téléphone fait tourner un nœud Veilid complet, rendant le routage et le stockage qu'il prend.
Signé en débogage, stagenet uniquement. Pas encore pour de l'argent réel.
Un ducat fut, six siècles durant, une pièce d'or acceptée de Venise à Vienne jusqu'au Levant — aucune relation avec un émetteur, aucun compte derrière, aucune autorisation attachée. DUCAT, c'est cela, pour le moment où l'on se tient devant quelqu'un et où l'on fait affaire.
Contacts, factures, paiements et reçus voyagent sous forme de charges scellées de bout en bout sur la DHT de Veilid. Il n'y a rien à assigner en justice, à limiter, à déréférencer ou à éteindre, parce que rien ne tourne. Chaque téléphone est un nœud complet et rend le routage et le stockage qu'il prend.
Créée sur le téléphone. Pas d'e-mail, pas de numéro, personne auprès de qui s'inscrire — ce qui explique aussi que personne ne puisse vous la restaurer, et l'application le dit franchement au lieu de l'enfouir.
Vous tendez une carte à quelqu'un — QR, lien ducat: ou une touche NFC — et
elle vaut pour une seule personne. Une fois réclamée, elle cesse de
fonctionner : une capture d'écran qui finit ailleurs n'est donc pas une porte d'entrée.
Un chiffrement de forme X3DH, avec des préclés à usage unique et la confidentialité persistante. Quand l'application doit se rabattre sur la préclé signée, elle vous montre un cadenas ouvert plutôt que de le cacher.
Des fils fondés sur une boîte aux lettres, qui fonctionnent même si l'un des deux est hors ligne — ils portent des factures détaillées dont les lignes doivent faire le total, sans quoi le message est refusé, des paiements, et des reçus émis par le bénéficiaire pointant vers la transaction qu'ils reconnaissent. Les petits groupes se répartissent sur ces mêmes fils deux à deux : pas de clé de groupe, pas d'enregistrement partagé, aucune propriété du fil modifiée.
Chaque capture de cette page montre l'application sur un téléphone, pas une maquette. Rien ici ne vous demande de vous inscrire, puisqu'il n'y a personne auprès de qui le faire.
Votre identité est une paire de clés créée sur l'appareil — pas d'e-mail, pas de numéro, personne auprès de qui s'inscrire, ce qui explique aussi que personne ne puisse vous la restaurer. La dernière étape est la sauvegarde, car un portefeuille qu'on ne peut pas restaurer est la seule façon dont on perd vraiment de l'argent ici.
Un portefeuille Monero auto-conservé avec conversion en monnaie locale partout, scanné et dépensé par un moteur monero-oxide embarqué — aucun démon de portefeuille sur le téléphone.
Payer affiche le montant, les frais de réseau estimés, le total, ce qu'il vous reste ensuite, combien de notes cela dépense et à peu près combien de temps cela prendra — et vous laisse choisir une vitesse. L'historique est reconstruit depuis la chaîne : les envois identifiés par image de clé, la monnaie rendue jamais présentée comme une entrée, chaque ligne portant le solde courant, et tout le relevé exportable en CSV.
Monero dépense des notes distinctes plutôt qu'un solde : un portefeuille détenant une grosse note peut donc être incapable de payer deux fois de suite. L'application compte les notes qu'elle peut dépenser et vous dit d'en casser une avant que vous ne soyez au comptoir, plutôt que d'échouer sur place.
Un contact est une paire de clés, pas un identifiant. Un scan ouvre une conversation fondée sur une boîte aux lettres, qui fonctionne même si l'un des deux est hors ligne — et ces fils portent du commerce, pas seulement du texte.
Vous tendez une carte à quelqu'un — par QR, lien ducat: ou touche NFC — et
elle est valable pour une seule personne : une fois réclamée, elle cesse
de fonctionner ; une capture qui finit ailleurs n'est donc pas une porte d'entrée.
Un groupe est une liste qui ne fait que croître, et ses mots voyagent sur un seul enregistrement de tableau par génération (§16.24) : chaque membre écrit ses propres pages sous une clé de groupe que la liste transporte, si bien qu'un message à cinq personnes est une écriture au lieu de cinq, et le réseau ne peut distinguer cet enregistrement d'aucun autre. Personne ne peut se faire passer pour un autre, et partir est une décision locale. Un groupe peut partager une note : un total devient une demande individuelle à chacun, plus une phrase permettant à tous de vérifier le calcul, et chaque demande passe à payée dès que sa référence arrive.
Choisissez l'un des neuf modes et l'application entière passe la main — ses propres onglets, plus rien de ceux du portefeuille. Presque rien de tout cela n'a exigé un nouvel objet de protocole, et c'est la phrase dont la spécification est la plus fière.
Une caisse enregistre des articles ou accepte un total saisi, calcule la taxe sur les ventes de sa région et affiche un code ; la facture arrive sur le téléphone du client dès qu'il scanne, et un reçu repart quand il paie. Une ardoise signale chaque consommation au client et se solde par une seule facture. Une borne confie entièrement le téléphone au client, avec un panneau du personnel derrière un code PIN. Une boîte à dons offre les deux voies : un code DUCAT qui ouvre une conversation et renvoie un reçu dès que l'argent arrive, et une adresse permanente à laquelle n'importe quel portefeuille Monero peut donner, avec son coût de traçabilité indiqué à l'écran plutôt que dans une politique.
Tapez où vous allez. Votre téléphone transforme un point GPS en géocellule — un tableau d'affichage public dont l'adresse est le lieu lui-même — et publie un appel : une carte à usage unique, une zone approximative et une offre calculée depuis le vrai itinéraire. Aucun nom ne va sur le tableau — ni sur la carte, ni dans l'enregistrement derrière. Les conducteurs surveillent leur cellule et ses voisines et le prennent ; la DHT arbitre la course, et aucun intermédiaire n'existe.
La ligne verte est l'essentiel : les tarifs de DUCAT se situent environ 15 % sous ceux qu'une plateforme facture au passager, et le conducteur garde tout — la commission absente, rendue aux deux. L'acceptation arrive avec un visage : nom, voiture, couleur, plaque, heure d'arrivée — scellée pour le passager, jamais montrée au tableau. Votre propre nom et le porche où vous attendez partent en sens inverse au même instant, vers le seul conducteur qui a pris l'appel.
Une concession, énoncée clairement à l'écran : la recherche d'adresse, l'itinéraire et les tuiles de carte interrogent OpenStreetMap — le seul endroit où DUCAT envoie une position hors de l'appareil. Les tableaux eux-mêmes ne portent jamais mieux que ~1,2 km.
La même mécanique de tableaux porte plus que des courses. Une annonce de place de marché, une location ou une heure d'aide qualifiée se publient toutes sur un tableau d'affichage adressé par le quartier, et un inconnu tout près le lit sans qu'aucun de vous deux ne touche à une plateforme.
Les annonces vivent sur des tableaux plus grossiers que les appels — environ cinq kilomètres de large, parce que les gens se déplacent pour aller chercher un jeu de clés. La recherche lit votre tableau et l'anneau qui l'entoure, en dessinant les résultats à mesure qu'ils répondent : quelque chose garé près de vous s'affiche en moins de six secondes, tandis que « rien d'annoncé par ici » prend une quarantaine de secondes et coche les zones au fur et à mesure.
Le formulaire d'annonce est coupé en deux et l'application vous dit laquelle est laquelle : tout ce qui est dans la première partie part sur un tableau public que n'importe qui à proximité peut lire, et l'adresse, l'endroit où sont les clés et la plaque vont dans la seconde, qui ne quitte votre téléphone que lorsqu'une réservation est réelle.
Les enregistrements qui portent une facture portent tout aussi bien une page. Votre clé est déjà une adresse : ce que vous écrivez a donc où vivre sans demander de place à personne.
Le chez-soi d'un profil se tient à l'adresse que nomme sa propre clé, et le fil est la chronologie des gens que vous gardez — une publication peut porter une image et un fichier, et les cœurs reviennent. Les sites sont servis depuis le disque de qui les a publiés et s'ouvrent dans une salle scellée, si bien qu'en lire un ne va rien chercher ailleurs.
Les publications — un journal, un feuilleton, un logiciel — se vendent mondialement sur des tableaux par thème plutôt que par quartier : un envoi se pose sur le tableau du thème et sur celui de sa langue, et « Tout » lit les six étagères côte à côte. Une annonce va chercher son paquet sur le téléphone du vendeur — jusqu'à 24 photographies en taille réelle, une description, des caractéristiques et des fichiers joints — refusé en bloc sur toute clé qu'il ne nomme pas, pour qu'un mauvais document ne puisse pas cacher de bonnes photos.
Il n'y a aucune entreprise au milieu pour prendre parti, alors DUCAT fait plus simple. L'argent repose à une adresse que vous seuls deux pouvez ouvrir, et la libération rend à chaque partie son propre dépôt, nommément. Personne ne peut prendre un dépôt — nous compris, car il n'y a aucun nous à payer.
Ces chiffres sont argumentés plutôt que devinés — le modèle 2-sur-2 sans dépositaire de Bisq est le précédent fonctionnel le plus proche, et la littérature sur le double dépôt prouve que l'arrangement est à l'épreuve de la triche à l'équilibre. Deux bornes en découlent : un dépôt qui vaut moins que les frais pour le rendre devient nul plutôt que décoratif, et aucun ne dépasse la moitié du prix. La partie la plus exposée finance en second, pour que son argent ne repose jamais seul à une adresse partagée.
Quand une affaire demande plus qu'une caution : le passager, le conducteur et un contact arbitre de confiance mutuelle exécutent une génération distribuée de clés sur le fil scellé — trois appareils dérivent une même adresse Monero, chacun ne détenant qu'une part, deux quelconques pouvant signer, sans distributeur nulle part. Le chemin heureux tient en deux touches.
Tout le reste est un règlement : l'une des parties propose un partage, l'autre signe ou contre-propose. Celui qui est bloqué s'adresse à l'arbitre, dont la cosignature est la décision — un arbitre compromis peut au pire choisir entre les parties nommées, jamais se payer lui-même. Prouvé sur la chaîne, sur stagenet, sous toutes ses formes, y compris une libération FROST à deux entrées.
Avant toute affaire il y a un inconnu, et la question est ce que son nom lui a coûté. Un persona peut brûler des Monero — les envoyer à une adresse dont personne ne détient les clés, dérivée d'une empreinte que chacun peut recalculer — et porter la preuve de paiement de Monero elle-même. Votre client vérifie cette preuve auprès de son propre nœud, demande à un second nœud si la transaction est dans un bloc, et montre dès lors le persona en toutes lettres partout où vous décidez quelque chose : a brûlé 0,01 XMR, depuis le bloc N. Jamais une note. La règle qui compte est l'avertissement : quand ce que vous allez risquer vaut plus que ce qu'ils ont brûlé, l'application le dit, parce qu'un nom qui n'a rien coûté n'a rien à perdre à disparaître.
Après une affaire réglée, chaque partie peut signer un reçu noté, et quiconque vous a rencontré en personne peut signer une garantie. Les deux voyagent dans un fil scellé et les deux sont pesés par le seul lecteur — une voix par signataire, en ne comptant que les signataires dont vous avez vérifié le brûlage, et en ne comptant une garantie que de gens déjà dans vos contacts. Un seul saut, aucun graphe, rien de publié nulle part. Une réputation qui coûte de l'argent plutôt que de la vie privée.
Un outil de confidentialité désagréable à utiliser sert une fois. Celui-ci nomme ce que les choses vous coûtent, parle vingt langues, et a un thème sombre qui n'est pas une arrière-pensée.
La commodité a un prix dans un système de confidentialité, et l'application le nomme au moment où vous choisissez plutôt que dans une politique que personne ne lit. Laisser vos contacts vous payer directement, c'est réutiliser une adresse — elle dit donc que quiconque observe la chaîne peut voir que la même personne a été payée à chaque fois, y compris des gens qui ne vous ont payé qu'une seule fois, et montre l'alternative. La même habitude traverse tout : une apparition dans le mempool est montrée comme vue, jamais réglée ; un profil est toujours présenté comme l'affirmation qu'il est.
Elle parle vingt langues — chaque écran lit depuis des ressources, les pluriels sont composés plutôt que concaténés, et l'arabe et le farsi prouvent le miroir. Les reçus sont des registres, pas des messages : chaque reçu vit dans son propre magasin, survit à la suppression du fil et du contact, et voyage dans la sauvegarde chiffrée — qui emporte les personnes autant que l'argent.
Une fenêtre native au-dessus du même Rust que fait tourner le téléphone — de sorte que la caisse d'un commerçant, une borne, la salle de presse, le marché et le fil sont une implémentation, pas un portage.
Elle parle les vingt langues du téléphone depuis les mêmes ressources, et elle est éprouvée contre le téléphone dans chaque rite : discussion, groupes sur tableaux, factures et reçus, une commande de borne payée depuis un téléphone qui n'avait jamais rencontré le bureau, fichiers et sites servis et récupérés, et des appels avec du vrai son.
Le README tient le registre de ce qui a réellement tourné de bout en bout sur le réseau réel et le stagenet réel — et énonce les manques au lieu de les enfouir.
core/Chaque build est signé en débogage et règle sur le stagenet de Monero — des pièces sans valeur, par conception. La spécification est le brouillon 1.1.0-dev13 et dit d'elle-même : rien ici n'est définitif, et le §14 est le vrai programme. Essayez-la, cassez-la, lisez-la — mais ne la financez pas.
ducat-protocol.md est l'artefact principal — cinq parties, un journal des
modifications en tête, et une suite de conformité qu'une seconde implémentation exécute,
pour que le document ne puisse pas s'écarter du code en silence.
★ ducat-protocol.md la spécification — brouillon 1.1.0-dev13, journal des modifications en tête core/ implémentation de référence (Rust) vectors/ 406 cas de conformité + schéma conformance/ quatre vérificateurs, à chaque push harness/ de bout en bout sur de vraies routes Veilid sim/ simulateur hors ligne, scénarios de marché applications/ android/ + desktop/ (mêmes sources) mobile/ le pont Rust : portefeuille · boîte aux lettres · nœud research/ des preuves, pas un produit
schema.jsonL'intendance est normative, pas velléitaire : le §18.7 fait de l'éthique de Veilid une exigence de conformité — aucun frais de protocole, aucun paiement de nœud, jamais. Construisez ce que vous voulez avec ce code, mais un client qui monétise l'acheminement n'est pas DUCAT.
Rien à installer au préalable — chaque build embarque sa propre bibliothèque Rust et sa JVM. Android sur le téléphone, et la même application en fenêtre native sous Linux, Windows et macOS. Il n'y a pas de build iOS ; il aura son dossier quand il l'aura mérité.
Navigateur du téléphone, build le plus récent, aucune page de versions à parcourir.
armeabi-v7a uniquement pour les téléphones antérieurs à 2016 environ ;
x86_64 est pour les émulateurs.
Le .deb et le .rpm s'installent comme des paquets ; l'AppImage se lance tel quel.
Builds Apple Silicon et Intel. Non signés — macOS avertira à la première ouverture.
Signé en débogage, stagenet uniquement — pas pour de l'argent réel.