addrbookFor publishers
← The evidence ledger

Evidence row 2094838

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 11b3f5c6-c65d-4b35-a7e2-131299a90b20
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
c5aa3803d5625c35ba8de2bf5fe09e17960e73f922154856a33f7a3213d9aba3
Leaf
0xad15652ab4d0b831742770d893af8e0910251b7b22721e0d07672ccaab7d3b5f

What was observed

{
  "count": 11,
  "tools": [
    {
      "description": "Créer une vraie commande Nitech dans le canal MCP autonome, sans boutique Web ni paiement. Appeler d’abord avec confirmation.confirmed=false pour présenter au client les articles, adresses, montant et conditions. Après son accord explicite, rappeler avec la même clé UUID, le token retourné, confirmed=true, confirmed_at, proof_reference et terms_version. Prix, stock, port et conditions sont revérifiés. Un changement exige un nouveau récapitulatif. Conserver la même clé et les mêmes arguments pour toute reprise, y compris après timeout ou résultat incertain ; ne jamais créer une nouvelle clé pour contourner pending ou un conflit. 30 lignes, 100 unités par ligne, 300 au total, 32 Kio. Ne déclenche ni paiement, facture, e-mail ni réservation. Si web_resume.status=available, proposer au client le choix parmi les quatre liens privés de boutique, valables sept jours : ils ouvrent le même caddie et conservent son origine MCP. La reprise Web est facultative.",
      "inputSchema": {
        "$id": "https://catalogue.nitech.fr/schemas/mcp/create-order-input-v0.1.schema.json",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "billing_address": {
            "additionalProperties": false,
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              "address_line2": {
                "maxLength": 200,
                "minLength": 0,
                "type": "string"
              },
              "city": {
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              "company": {
                "maxLength": 120,
                "minLength": 0,
                "type": "string"
              },
              "country_code": {
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Z]{2}$",
                "type": "string"
              },
              "first_name": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "last_name": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "postal_code": {
                "maxLength": 12,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9 -]+$",
                "type": "string"
              }
            },
            "required": [
              "first_name",
              "last_name",
              "address_line1",
              "postal_code",
              "city",
              "country_code"
            ],
            "type": "object"
          },
          "confirmation": {
            "additionalProperties": false,
            "properties": {
              "confirmed": {
                "type": "boolean"
              },
              "confirmed_at": {
                "format": "date-time",
                "maxLength": 20,
                "minLength": 20,
                "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
                "type": "string"
              },
              "proof_reference": {
                "maxLength": 128,
                "minLength": 8,
                "pattern": "^[A-Za-z0-9_.:-]+$",
                "type": "string"
              },
              "terms_version": {
                "const": "livraison-2026-10-08-v1",
                "type": "string"
              },
              "token": {
                "maxLength": 1024,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9_-]+\\.[a-f0-9]{64}$",
                "type": "string"
              }
            },
            "required": [
              "confirmed"
            ],
            "type": "object"
          },
          "customer": {
            "additionalProperties": false,
            "properties": {
              "email": {
                "format": "email",
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "phone": {
                "maxLength": 30,
                "minLength": 1,
                "pattern": "^[+0-9 ()/.-]{5,30}$",
                "type": "string"
              }
            },
            "required": [
              "email",
              "phone"
            ],
            "type": "object"
          },
          "idempotency_key": {
            "maxLength": 36,
            "minLength": 36,
            "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$",
            "type": "string"
          },
          "interaction_id": {
            "maxLength": 128,
            "minLength": 8,
            "pattern": "^[A-Za-z0-9_.:-]+$",
            "type": "string"
          },
          "lines": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "product_id": {
                  "maximum": 2147483647,
                  "minimum": 1,
                  "type": "integer"
                },
                "quantity": {
                  "maximum": 100,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "product_id",
                "quantity"
              ],
              "type": "object"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          },
          "shipping_address": {
            "additionalProperties": false,
            "properties": {
              "address_line1": {
                "maxLength": 200,
                "minLength": 1,
                "type": "string"
              },
              "address_line2": {
                "maxLength": 200,
                "minLength": 0,
                "type": "string"
              },
              "city": {
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              "company": {
                "maxLength": 120,
                "minLength": 0,
                "type": "string"
              },
              "country_code": {
                "maxLength": 2,
                "minLength": 2,
                "pattern": "^[A-Z]{2}$",
                "type": "string"
              },
              "first_name": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "last_name": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "postal_code": {
                "maxLength": 12,
                "minLength": 1,
                "pattern": "^[A-Za-z0-9 -]+$",
                "type": "string"
              }
            },
            "required": [
              "first_name",
              "last_name",
              "address_line1",
              "postal_code",
              "city",
              "country_code"
            ],
            "type": "object"
          }
        },
        "required": [
          "idempotency_key",
          "interaction_id",
          "customer",
          "billing_address",
          "shipping_address",
          "lines",
          "confirmation"
        ],
        "type": "object"
      },
      "name": "create_order"
    },
    {
      "description": "Retrouver les preuves publiables pièce/appareil du pilote. verified exige une décision humaine active liée à la preuve exacte, au SHA, à la page et au repère courants. stale_source impose une nouvelle vérification. Les scores ne sont pas des probabilités de compatibilité.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "appliance": {
            "maxLength": 80,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9.-]+$",
            "type": "string"
          },
          "part": {
            "maxLength": 80,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9.-]+$",
            "type": "string"
          }
        },
        "required": [
          "part",
          "appliance"
        ],
        "type": "object"
      },
      "name": "find_compatibility_evidence"
    },
    {
      "description": "Lire l'offre canonique à l'heure d'observation : mise en vente, stock compté, disponibilité et autorisation de commande distinctes. Cette consultation ne réserve aucun stock ; la qualification métier de la fiche reste séparée.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "product_id": {
            "description": "PID interne du catalogue actif. PID1843 est le pilote qualifié ; les autres projections restent provisoires en recette.",
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "product_id"
        ],
        "type": "object"
      },
      "name": "get_offer"
    },
    {
      "description": "Lire une commande privée avec cart_id et cart_access (m1 privé ou p2 permanent). Le numéro seul ne suffit jamais. Reprend la même vérification d’accès que get_payment. Lecture seule : état de commande, paiement serveur, bordereaux et quantités documentées, déclaration de départ, transporteur explicitement renseigné. Un bordereau ne prouve pas la préparation physique ; une déclaration de départ ne prouve pas la livraison. Numéro/lien de suivi absents de ces sources : null et unavailable explicites. Ne rien déduire du paiement sur l’expédition. Ne pas recréer ni repayer en cas d’incertitude.",
      "inputSchema": {
        "$id": "https://catalogue.nitech.fr/schemas/mcp/get-order-input-v0.1.schema.json",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "cart_access": {
            "maxLength": 1024,
            "pattern": "^(?:m1\\.[A-Za-z0-9_-]+\\.[a-f0-9]{64}|p2\\.[0-7]\\.[a-f0-9]{64})$",
            "type": "string"
          },
          "cart_id": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "cart_id",
          "cart_access"
        ],
        "type": "object"
      },
      "name": "get_order"
    },
    {
      "description": "Retrouver le même caddie MCP, son montant accepté, les trois moyens card/transfer/cheque, le moyen choisi, les instructions et son état bancaire Scellius. payment_page fournit une URL privée stable du caddie, sans date d'expiration, commune aux trois moyens ; elle reste consultable après paiement. Le jeton p2 de cette page peut remplacer le jeton mcp_resume pour les appels suivants. awaiting_receipt signifie attente du règlement et ne prouve aucun paiement. Fournir cart_id et cart_access : le jeton mcp_resume privé obtenu dans un lien web_resume de create_order ou du BO. Ne jamais fournir un simple numéro comme preuve d’accès. NOT_PREPARED et PREPARED ne prouvent aucun paiement. Pour le client, AUTHORISED, AUTHORISED_TO_VALIDATE et CAPTURED se présentent simplement comme Paiement accepté ; ne pas détailler les étapes bancaires internes. business_effects et status signalent les réconciliations. Ne pas payer à nouveau en cas d’incertitude.",
      "inputSchema": {
        "$id": "https://catalogue.nitech.fr/schemas/mcp/get-payment-input-v0.1.schema.json",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "cart_access": {
            "maxLength": 1024,
            "pattern": "^(?:m1\\.[A-Za-z0-9_-]+\\.[a-f0-9]{64}|p2\\.[0-7]\\.[a-f0-9]{64})$",
            "type": "string"
          },
          "cart_id": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "cart_id",
          "cart_access"
        ],
        "type": "object"
      },
      "name": "get_payment"
    },
    {
      "description": "Lire le produit public Nitech courant par PID, y compris les produits hors vente historiquement publics. Textes, caractéristiques, appareils, éclatés, repères et documents conservent leur provenance ; une relation historique ou un contenu observé ne vaut pas qualification humaine.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "product_id": {
            "description": "PID interne du catalogue actif. PID1843 est le pilote qualifié ; les autres projections restent provisoires en recette.",
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "product_id"
        ],
        "type": "object"
      },
      "name": "get_product"
    },
    {
      "description": "Lire les seuls documents connus et publiables du produit ou de ses appareils liés, avec leur type et les contrôles humains applicables à leur source. Les autres contenus restent à vérifier ; aucune qualification n'est déduite automatiquement.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "product_id": {
            "description": "PID interne du catalogue actif. PID1843 est le pilote qualifié ; les autres projections restent provisoires en recette.",
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "product_id"
        ],
        "type": "object"
      },
      "name": "get_product_documents"
    },
    {
      "description": "Préparer le moyen de paiement du même caddie MCP : payment_method=card, transfer ou cheque. Pour virement/chèque, confirmer enregistre seulement c_stat=3 et c_moyp=3/2 et renvoie les instructions existantes : aucun règlement reçu, stock, e-mail ou facture. Une carte en cours/incertaine ou une commande déjà prise en compte interdit un autre moyen. Pour la carte, préparer le paiement autonome Scellius. Appeler avec confirmed=false, cart_access, expected_amount, currency=EUR et une clé UUID pour présenter le montant au client. Uniquement après son accord explicite, rappeler confirmed=true avec confirmation_token et proof_reference. Renvoyer payment_page ou action.url au client : URL stable sans expiration (expires_at=null). La préparation UNISSUED peut attendre ; le formulaire bancaire est daté et marqué ISSUED seulement au départ explicite du client. Les confirmations temporaires sont renouvelées derrière la page. Une session ISSUED ou LEGACY_UNKNOWN reste protégée jusqu'au résultat authentifié ; ne jamais inventer une expiration bancaire. Le client saisit sa carte uniquement chez Scellius. Aucun envoi de carte ou authentification via MCP. Répétitions et clés différentes retrouvent la même tentative ; aucun nouvel essai automatique après un refus, une expiration ou une incertitude. Après REFUSED, ABANDONED ou EXPIRED authentifié par le serveur, demander un nouveau récapitulatif avec une nouvelle clé et retry_of=attempt_id, puis recueillir un nouvel accord explicite. get_payment donne la preuve serveur et les effets métier. Un lien ne valide pas le paiement.",
      "inputSchema": {
        "$id": "https://catalogue.nitech.fr/schemas/mcp/prepare-payment-input-v0.1.schema.json",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "properties": {
                "confirmed": {
                  "const": true
                }
              }
            },
            "then": {
              "required": [
                "confirmation_token",
                "proof_reference"
              ]
            }
          }
        ],
        "properties": {
          "cart_access": {
            "maxLength": 1024,
            "pattern": "^(?:m1\\.[A-Za-z0-9_-]+\\.[a-f0-9]{64}|p2\\.[0-7]\\.[a-f0-9]{64})$",
            "type": "string"
          },
          "cart_id": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          },
          "confirmation_token": {
            "pattern": "^[0-9]{10}\\.[a-f0-9]{64}$",
            "type": "string"
          },
          "confirmed": {
            "type": "boolean"
          },
          "currency": {
            "const": "EUR"
          },
          "expected_amount": {
            "pattern": "^[0-9]{1,8}\\.[0-9]{2}$",
            "type": "string"
          },
          "idempotency_key": {
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "type": "string"
          },
          "payment_method": {
            "default": "card",
            "enum": [
              "card",
              "transfer",
              "cheque"
            ],
            "type": "string"
          },
          "proof_reference": {
            "maxLength": 160,
            "minLength": 1,
            "type": "string"
          },
          "retry_of": {
            "pattern": "^[a-f0-9]{32}$",
            "type": "string"
          }
        },
        "required": [
          "cart_id",
          "cart_access",
          "expected_amount",
          "currency",
          "confirmed",
          "idempotency_key"
        ],
        "type": "object"
      },
      "name": "prepare_payment"
    },
    {
      "description": "Préparer un devis complet du panier depuis les offres et le port Nitech actuels. Pays et code postal selon la zone, product_id et quantity seulement. 30 lignes distinctes, 100 unités par ligne, 300 au total, 8 Kio. Doublons refusés. Lecture seule sans panier, réservation, commande ni paiement. Toute ligne invalide bloque les totaux. Offres et port à relire lors de la commande ; checkout des boutiques autoritaire.",
      "inputSchema": {
        "$id": "https://catalogue.nitech.fr/schemas/mcp/quote-cart-input-v0.1.schema.json",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "description": "30 lignes distinctes, 100 unités par ligne, 300 unités au total, 8192 octets JSON. Doublons refusés. Panier vide et quantité invalide : erreurs structurées. France : code postal requis. Aucune donnée personnelle ni donnée commerciale client.",
        "properties": {
          "destination": {
            "additionalProperties": false,
            "properties": {
              "country_code": {
                "pattern": "^[A-Za-z]{2}$",
                "type": "string"
              },
              "postal_code": {
                "maxLength": 12,
                "pattern": "^[A-Za-z0-9 -]*$",
                "type": "string"
              }
            },
            "required": [
              "country_code"
            ],
            "type": "object"
          },
          "lines": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "product_id": {
                  "maximum": 2147483647,
                  "minimum": 1,
                  "type": "integer"
                },
                "quantity": {
                  "type": "integer"
                }
              },
              "required": [
                "product_id",
                "quantity"
              ],
              "type": "object"
            },
            "maxItems": 30,
            "minItems": 0,
            "type": "array"
          }
        },
        "required": [
          "destination",
          "lines"
        ],
        "title": "Préparer un devis complet Nitech en lecture seule",
        "type": "object"
      },
      "name": "quote_cart"
    },
    {
      "description": "Calculer le port actuel depuis les produits, profils et zones Nitech relus à chaque appel. Entrées : pays, code postal requis pour la France, product_id et quantity. Limites : 30 lignes, 100 unités par produit, 300 au total. Renvoie HT, TVA, TTC, zone, groupes tarifaires et politique observée. Ce résultat n’est pas une réservation ; aucune commande n’est créée ; montant à relire lors d’une future commande. Le calcul commercial des boutiques reste autoritaire.",
      "inputSchema": {
        "$id": "https://catalogue.nitech.fr/schemas/mcp/quote-cart-shipping-input-v0.1.schema.json",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "description": "Lecture seule. Code postal requis pour la France. 30 lignes, 100 unités par produit, 300 unités au total. Aucun prix, poids ou profil fourni par le client.",
        "properties": {
          "destination": {
            "additionalProperties": false,
            "properties": {
              "country_code": {
                "pattern": "^[A-Za-z]{2}$",
                "type": "string"
              },
              "postal_code": {
                "maxLength": 12,
                "pattern": "^[A-Za-z0-9 -]*$",
                "type": "string"
              }
            },
            "required": [
              "country_code"
            ],
            "type": "object"
          },
          "lines": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "product_id": {
                  "maximum": 2147483647,
                  "minimum": 1,
                  "type": "integer"
                },
                "quantity": {
                  "maximum": 100,
                  "minimum": 1,
                  "type": "integer"
                }
              },
              "required": [
                "product_id",
                "quantity"
              ],
              "type": "object"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "destination",
          "lines"
        ],
        "title": "Calculer le port actuel Nitech",
        "type": "object"
      },
      "name": "quote_cart_shipping"
    },
    {
      "description": "Rechercher dans le catalogue actif par PID, référence observée, ancienne référence, désignation, marque ou appareil lié. Résultats courts et bornés ; conserver les incertitudes, puis appeler get_product par PID.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "additionalProperties": false,
        "properties": {
          "after_pid": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          },
          "field": {
            "enum": [
              "auto",
              "pid",
              "nitech_reference",
              "manufacturer_reference",
              "former_reference",
              "designation",
              "brand",
              "model"
            ]
          },
          "limit": {
            "default": 10,
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "maxLength": 120,
            "minLength": 1,
            "pattern": "^[^\\u0000-\\u001f\\u007f]*$",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_products"
    }
  ]
}

What the leaf hashes

{"body":"c5aa3803d5625c35ba8de2bf5fe09e17960e73f922154856a33f7a3213d9aba3","id":2094838,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793609093318385,"prev":null,"subject":"11b3f5c6-c65d-4b35-a7e2-131299a90b20","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (444186 rows).

  1. 0xad15385bf8ac715d013f911b0842849b69916309779d0428f1aebb2b4dbcb058
  2. 0xd3470f92e8a2ef7791ecdfc6f4a613fc6a7b5b942a659a2a84550e4769ff360d
  3. 0x2cc9b75b647e6836edb78b3fb945f2272b75e1f5a3c2cbed3ea44eba47aa29cc
  4. 0x55a7db50d21e2c3df91987d1882f3e3a39935a947d75d46a35e80d1d5f885a65
  5. 0x21e8cdaae26d00d264fe80cc5d61d085e137180eabb82c32dfb3d5a5599a4ae6
  6. 0x86383dd3b95cfa3cc2a0bf594d8a4ea9eebd24123d66bcf4335343fd2090aa12
  7. 0x34234f17158ffa27e1a817d87c045ff01183554e1d06c464ae48a4374189ddd1
  8. 0x631f02fd6a19b878ef99b2c627be5751af3929748bfad894a500839545f64146
  9. 0xab5d48515f2a249351526c4866c0a72a850140b6e210e5eb6ce65c3aeda9f6e4
  10. 0x1bd236be1d56958dec9cefd5367c5faf053a81dabdb06c18aa6347c70ca468ad
  11. 0x2ccda8c18ff07f00c8bb027f9f15ae0c0d5b653ed69ac4ac66f46fa53a11ad61
  12. 0xba75ac8fae3b7769dc511d447c671590cf9f4572510e81111cdc037d6738de1d
  13. 0x30482ffd581ea067af14f15cf3c17e7dcb174f749e858ecded170a1f5f75cc59
  14. 0x27deeb1ef1692b4773e73c16b6d8d0cdf4251fe2660821e5336f57539770fd2f
  15. 0x793184605629cd36ba80a07cbe115ca35e8923297bf024260c6f5c06b255f638
  16. 0x2922573a524a0694086782ac45fa3083d3fc3f6a2a479b2105e1e2f06b2916f7
  17. 0x07ad80c0c234ecea379a2f4450dfd0804db049dbc62abe77af6306049ca6b6c2
  18. 0x98cbbf2c68ab4c0b4db782aeb88bea1f30b02178cf8b5d3d24a931d19492ea6d
  19. 0x252cce55f1a3d5391c16f82d7f62494429a5f69b03486d4cfcfb7b2c96d6c884
Day root
0x78fecaabbe319e56f5c4b80fc02e2052e198ad24781da8832a475ff65f2002d1
Chained
0xdc35957db5d1371ca382b9152878ffece28ec7c5cb4f98fd71ddb367f8b999b2
Published
On Arc Testnet, block 70432815: 0x56b814612eb2e3e544153df3e91e1f7199106d1e430c7d8c6b653feeb9ebe9af

How to check it · This row as JSON