Méthode GET/passport /01 /{gtin} /10 /{lot} /proof
Récupérer les preuves publiques du passeport d'un lot : empreinte du contenu, sceau, ancrage du document sur Base sans aucune frappe, état de l'attestation signée. Point d'entrée public.
Sur cette page
Vous récupérez les preuves publiques du passeport d'un lot de production. En quittant cette page, vous saurez demander ces preuves, vérifier vous-même que la version du lot est inscrite sur la chaîne, et comprendre pourquoi aucune frappe n'a été nécessaire.
Adresse complète :
GET https://api.sealtrust.io/v1/passport/01/{gtin}/10/{lot}/proof#Autorisation
Aucune, point d'entrée public. La réponse est la même pour tout le monde.
#Plafond d'appels
600 appels par fenêtre de 60 secondes, comptés par adresse IP appelante, commun
à toutes les lectures (GET) dont l'adresse commence par /passport.
#Paramètres de chemin et de requête
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
gtin | string | oui | Le GTIN du modèle du lot. Sa clef de contrôle est vérifiée. |
lot | string | oui | Le numéro du lot, comparé à l'identique, casse comprise. |
Ce point d'entrée n'a aucun paramètre de requête.
#Corps de la requête
Aucun. Cette requête n'a pas de corps.
#Requête d'exemple
curl -i "https://api.sealtrust.io/v1/passport/01/03701234567891/10/LOT-26A/proof"const response = await fetch(
"https://api.sealtrust.io/v1/passport/01/03701234567891/10/LOT-26A/proof",
);
const preuves = await response.json();
console.log(preuves.level, preuves.batch_code, preuves.passport_anchor);import requests
response = requests.get(
"https://api.sealtrust.io/v1/passport/01/03701234567891/10/LOT-26A/proof",
timeout=30,
)
preuves = response.json()
print(preuves["level"], preuves["batch_code"], preuves.get("passport_anchor"))#Réponse d'exemple
Code HTTP 200OK
Code HTTP 200, pour une version déjà ancrée.
{
"passport_version": 2,
"data_hash": "9f2c1e7d4b8a6f0e3d5c2b1a9e8f7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e",
"passport_anchor": {
"type": "passport_anchor",
"chain": "base",
"chain_id": 8453,
"tx_hash": "0x5e1f0c2d3b4a59687766554433221100ffeeddccbbaa99887766554433221100",
"merkle_root": "0x0d1c2b3a49586776655443322110ffeeddccbbaa998877665544332211000f1e",
"leaf": "0x7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e4f3a2b1c0d9e8f7a6b",
"leaf_index": 3,
"proof": ["0x1122334455667788990011223344556677889900112233445566778899001122"],
"block_timestamp": "2026-09-26T09:00:02+00:00",
"passport_version": 2,
"data_hash_matches": true,
"anchored": true,
"proves": "content_existed_at_or_before_tx"
},
"seal": {"sealed": true, "linked": true, "chain_link_match": true},
"vc": {"issued": false},
"level": "batch",
"gtin": "03701234567891",
"batch_code": "LOT-26A"
}Toutes les valeurs de cet exemple sont fictives, et la réponse réelle porte
d'autres champs dans passport_anchor et seal, décrits sur
GET /passport/01/{gtin}/proof.
Deux blocs sont absents, et leur absence est la réponse juste : anchor, qui
date un exemplaire, et verifications, qui compte les lectures d'une étiquette
physique. Un lot n'est ni l'un ni l'autre. Tant que la version n'a pas été
prise par le balayage, passport_anchor est absent lui aussi, et seal suffit
à rendre visible toute réécriture en attendant.
#Vérifier la preuve vous-même
La feuille vaut keccak256(abi.encode(uint256 passportId, uint256 passportVersion, bytes32 dataHash)), où passportId est le champ id de
GET /passport/01/{gtin}/10/{lot}. En
remontant la feuille avec chaque nœud de proof, deux à deux et dans l'ordre
croissant des octets, vous retrouvez merkle_root. Le détail est sur
Confiance et preuves.
#Erreurs
| Code | Condition | Que faire |
|---|---|---|
| 400 | La clef de contrôle du GTIN ne correspond pas. | Recopiez le GTIN depuis le code-barres. |
| 404 | Aucun passeport publié pour ce lot, un lot d'une autre marque que celle du domaine appelé, ou un lot d'une autre marque que celle qui publie le passeport de modèle de ce GTIN. | Vérifiez le numéro de lot, casse comprise, et la publication dans la console. |
| 429 | Plus de 600 appels en 60 secondes depuis la même adresse IP. | Attendez le nombre de secondes indiqué par Retry-After. |
#Voir aussi
GET /passport/01/{gtin}/10/{lot}, le contenu du passeport du lot.- Confiance et preuves, ce que chaque preuve établit et comment la recouper.
Cette page vous a-t-elle été utile ?
Votre réponse ouvre un courriel pré-rempli dans votre messagerie, à destination de contact@sealtrust.io. Vous le relisez avant de l'envoyer.