Vérifier les paiements privés SynX
Avec clés de preuve de montant uniquement.
Ce guide documente le même flux de clé de preuve de transaction privée utilisé par timeline.php pour les paiements d’accès à la chronologie. Il est conçu pour les développeurs qui doivent accepter les paiements privés SynX, vérifier le montant exact et conserver les données d'adresse hors de leur application.
- Ce que vous recevez du payeur : un 64 caractères
tx_hashet une clé de preuve. La clé de preuve peut être brute de 64 hexadécimaux ou préfixée commePT-plus 64 hexagones. - Ce que prouve le API : si cette clé de preuve est valide pour cette transaction et le montant exact de SynX.
- Ce que le API ne révèle pas : adresse de l'expéditeur, adresse du destinataire, solde du portefeuille ou mode de paiement public pour les transactions privées.
- Critère principal :
POST /explorer/api/verify_proof.phpavec corps JSON{"tx_hash":"...","proof_key":"..."}.
Chemin d'intégration recommandé : créer un vérificateur côté serveur qui accepte tx_hash et proof_key, appelle /explorer/api/verify_proof.php, chèques valid === true, compare ensuite le retour amount au montant de votre commande requis. C’est le chemin qu’utilise Timeline pour les paiements privés.
Implémentation de clés de preuve comme la chronologie
Timeline accepte automatiquement les paiements visibles sur le marché. Lorsqu'une transaction est privée ou cachée, elle passe à la vérification par clé de preuve. La clé de preuve confirme le montant du paiement tandis que les champs d'adresse restent scellés.
Vérificateur PHP de style chronologie
function normalize_synx_proof_key(string $proofKey): string {
$proofKey = preg_replace('/\s+/', '', trim($proofKey));
return $proofKey ?? '';
}
function verify_private_synx_payment(string $txHash, string $proofKey, float $requiredAmount): array {
$txHash = strtolower(trim($txHash));
$proofKey = normalize_synx_proof_key($proofKey);
if (!preg_match('/^[a-f0-9]{64}$/', $txHash)) {
return ['ok' => false, 'reason' => 'tx_hash must be exactly 64 hex characters'];
}
if (!preg_match('/^(PT-)?[a-fA-F0-9]{64}$/', $proofKey)) {
return ['ok' => false, 'reason' => 'proof_key must be 64 hex characters, with optional PT- prefix'];
}
$response = file_get_contents('https://synxcrypto.com/explorer/api/verify_proof.php', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\nAccept: application/json\r\n",
'content' => json_encode(['tx_hash' => $txHash, 'proof_key' => $proofKey]),
'timeout' => 15,
'ignore_errors' => true,
]
]));
$data = json_decode($response ?: '', true);
if (!is_array($data) || empty($data['valid'])) {
return ['ok' => false, 'reason' => $data['hint'] ?? $data['error'] ?? 'proof could not be verified'];
}
$paid = is_numeric($data['amount'] ?? null) ? (float)$data['amount'] : 0.0;
if (abs($paid - $requiredAmount) > 0.0001) {
return ['ok' => false, 'reason' => "amount mismatch: paid {$paid}, required {$requiredAmount}"];
}
return ['ok' => true, 'amount' => $paid, 'currency' => $data['currency'] ?? 'SYNX'];
}
Champs de réponse dont dépendre
| Champ | Point de terminaison | Utiliser |
|---|---|---|
valid | verify_proof.php | Booléen primaire. N'accorde rien à moins que ce soit true. |
amount | verify_proof.php | Montant exact de SynX pour le justificatif. Comparez avec le montant requis. |
currency | verify_proof.php | La valeur attendue est SYNX. |
error + hint | verify_proof.php | Afficher un simple message de nouvelle tentative ou de correction à l'utilisateur. |
amount_decoded | /privacy/tx/{hash}/rune-verify | Même concept que amount, mais renvoyé par le point de terminaison de métadonnées le plus riche. |
Compatibilité de vérification en file d'attente : Le point de terminaison simple répond généralement de manière synchrone. Si jamais une intégration reçoit {"status":"pending","request_id":"...","retry_after":3}, sondage /explorer/api/index.php?endpoint=verify_proof&request_id=... après retry_after secondes et analysez le JSON final de la même manière. La chronologie inclut ce chemin de compatibilité.
Note de mise en œuvre : Pour les applications de navigateur, appelez le vérificateur depuis votre backend, sauf si votre origine est déjà autorisée par la stratégie CORS de l'explorateur. La vérification côté serveur vous permet également de rédiger les clés de preuve des journaux clients et de comparer les montants avec votre base de données de commandes en un seul endroit.
🌊 Pourquoi nous ne divulguons jamais l'expéditeur ou le destinataire
C’est le principe de base. La transparence open source et la confidentialité des utilisateurs sont des ennemis naturels, à moins que vous ne définissiez correctement les limites. SynergyX résout ce problème en rendant le protocole transparent (n'importe qui peut auditer le code) tout en gardant identité opaque en permanence (aucun mécanisme n’existe pour révéler l’expéditeur ou le destinataire). La clé de preuve est une clé de puzzle : elle déverrouille le montant, et seulement la quantité. Les identités derrière la transaction se sont dissoutes dans le Synergy Sea au moment où le bloc a été scellé.
Le nœud SynX génère la clé de preuve à l’aide du cryptage quantique en réseau Kyber-768. La clé est mathématiquement liée au montant de la transaction. Il ne peut pas être falsifié, ni soumis à une ingénierie inverse, et expire dans 30 minutes. L'expéditeur partage la clé de preuve avec le destinataire hors chaîne – Signal, PGP, Tor, une serviette. Le destinataire vérifie via ce API. C'est tout le modèle de confiance. Pas de garde. Aucun intermédiaire. Aucune trace de métadonnées.
Montant uniquement par conception permanente. La clé de preuve décode le montant exact du paiement. Il n'existe aucun mécanisme (pas de point final, pas de clé, pas de paramètre, pas d'indicateur) qui révèle les adresses de l'expéditeur ou du destinataire. Ce n'est pas un choix de configuration. C'est une impossibilité architecturale. Les adresses ne sont stockées sous aucune forme que n’importe quelle clé puisse déverrouiller. Ils ont sombré dans la mer.
⛨ Ce que sait le serveur (Jack)
Soyons honnêtes sur les limites de confiance. Vous frappez un API. Le serveur est une machine, et les machines peuvent être saisies. Voici exactement ce qu'un attaquant obtient s'il roote la boîte :
La mise en garde honnête : Pendant la synchronisation du démon, le scanner voit brièvement les adresses brutes avant de les hacher et de supprimer les originaux. Il s'agit du même modèle de confiance que le nœud distant de Monero : le démon envoie du texte en clair au scanner. Ce que nous garantissons : les données stockées et les réponses API ne divulguent jamais d'adresses ou de montants bruts. Il n’existe aucun point de terminaison API qui renvoie des adresses – ni avec une clé d’affichage, ni avec une clé de preuve, jamais. Le hachage est instantané. La fenêtre est microsecondes. Un clignement, pas une fuite.
Le timing est mitigé. Chaque réponse API (GET, POST, succès, échec, 404, tout) est complétée par un Plafond constant de 500 ms. Le serveur mesure le temps de traitement réel, puis se met en veille exactement 500ms - elapsed. Chaque réponse prend exactement 500 ms. Pas au hasard. Constante. Cohen's d entre les chemins valides et invalides : 0.015 (testé par GhostReaper — statistiquement invisible). Le manuel de jeu de l'oracle de timing de Chainalysis ? Mort à l'arrivée.
🌊 Le Synergy Sea — Deux couches de profondeur
Considérez la chaîne comme un océan. Les transactions publiques flottent à la surface. Les privés coulent. Plus vous allez en profondeur, plus vous avez besoin de clés de preuve pour voir quoi que ce soit. Et même à profondeur maximale, seul le montant surfaces – jamais d’adresses.
| Profondeur | Qui voit | Quelles fuites | Garde |
|---|---|---|---|
| SURFACE | N'importe qui | Hash, existence, temps flou, niveau de frais, confs | Engagements cryptographiques |
| PROFOND | Porte-clés à épreuve | Ci-dessus + montant exact (décodé à partir du sceau du réseau quantique) + fenêtre temporelle | Chiffrement sur réseau quantique Kyber-768, AES-256-GCM |
Aucune couche plus profonde n'existe. Il n'y a aucune divulgation de clé de vue, aucun audit d'adresse, aucun mécanisme pour révéler qui a envoyé ou reçu. La clé de preuve — générée par le nœud SynX à l'aide du cryptage quantique Kyber-768 — décode le montant exact. C'est le plus profond que l'on puisse aller. Les adresses des expéditeurs et des destinataires sont définitivement noyées dans la mer.
Armure anti-corrélation : Les horodatages sont flous ± 120 s. Frais répartis en 5 niveaux (micro/faible/standard/élevé/premium – jamais le montant brut sat). Hauteurs de bloc annulées. Temps de réponse rembourrés jusqu'à un plafond constant de 500 ms. "TX not found" et "TX is private" renvoient le forme identique. Les clés de preuve expirent dans 30 minutes - limiter les fenêtres de relecture à près de zéro. Vous ne pouvez même pas énumérer quels hachages sont réels. Chaque requête de surface renvoie la même quantité d'informations, que le TX existe, n'existe pas ou soit protégé. Bonne chance, Chainalysis.
—͟͟͞͞★ Vérification de la preuve du fournisseur – 3 minutes, Zero Trust
Vous êtes un vendeur. Un acheteur vient de vous payer en privé SynX. Vous devez vérifier le paiement sans voir leur adresse, leur solde ou faire confiance à un tiers. Voici comment. Pas de KYC. Pas de garde. Prouvez les paiements à l’aveugle.
Comment fonctionnent les clés de preuve : Lorsqu'un acheteur envoie un SynX privé, le Nœud SynX génère automatiquement une clé de preuve scellée quantiquement à l'aide du cryptage en treillis Kyber-768. Cette clé de preuve est une clé de puzzle : c'est la seule chose qui peut décoder le montant de la transaction. La clé est mathématiquement infalsifiable : sans les paramètres de réseau quantique internes du Node, aucun attaquant – classique ou quantique – ne peut en fabriquer une. Le nœud renvoie la clé de preuve dans le portefeuille de l'expéditeur. L'expéditeur le partage avec vous hors chaîne. Vous le branchez sur le API. Montant vérifié. Aucune adresse révélée. Jamais.
L'acheteur vous envoie tx_hash + proof_key (hors chaîne)
Après l'envoi privé, le nœud SynX génère automatiquement la clé de preuve. Le portefeuille de l'acheteur le reçoit et vous l'envoie par SMS, ainsi que le hachage de la transaction. Signal, PGP, chat Tor, écrits sur une serviette – peu importe. Canal de métadonnées nul. Le API ne voit jamais ce transfert.
# What the buyer sends you (encrypted channel only)
tx_hash: "a1b2c3d4e5f6789012345678901234567890123456789012345678901234abcd"
proof_key: "PT-f7e8d9c0b1a23456789012345678901234567890123456789012345678901234"
Fenêtre de 30 minutes : Les clés de preuve expirent dans 30 minutes de génération. L'acheteur doit partager la clé de preuve immédiatement après l'envoi. Vous devez vérifier immédiatement après réception. Cette fenêtre étroite élimine les attaques par rejeu à long terme – la clé est éphémère par conception. S'il expire, l'expéditeur peut en demander un nouveau au nœud SynX.
Préfixe PT : Toutes les clés de preuve commencent par PT- - évite les erreurs de collage (vous ne collerez jamais accidentellement un hachage TX dans un champ de preuve ou vice versa). Le API accepte les deux PT-f7e8... et cru f7e8... — le serveur supprime automatiquement le préfixe. Les deux formats fonctionnent.
Plafonds d’entrée – strictement appliqués : tx_hash doit être exactement 64 caractères hexadécimaux [a-fA-F0-9]{64}. proof_token maximum 67 caractères (PT- préfixe + 64 hex). Tout ce qui se trouve en dehors de ces limites → instantané 400 Bad Request. Le API rejette les entrées surdimensionnées avant tout traitement : n'envoyez pas un hachage de 200 caractères en espérant qu'il sera coupé. Ce ne sera pas le cas. Il est abandonné.
Atteindre un point final : les mathématiques parlent
# cURL — verify the proof key (recommended endpoint)
curl -X POST https://explorer.synxcrypto.com/explorer/api/verify_proof.php \
-H "Content-Type: application/json" \
-d '{"tx_hash":"a1b2c3d4e5f6...64hex","proof_key":"f7e8d9c0...64hex"}'
# Through Tor (you should be doing this)
torsocks curl -X POST http://synxexplorer.onion/explorer/api/verify_proof.php \
-H "Content-Type: application/json" \
-d '{"tx_hash":"a1b2c3d4...","proof_key":"f7e8d9c0..."}'
# GET also works — quick terminal checks
curl "https://explorer.synxcrypto.com/explorer/api/verify_proof.php?tx_hash=a1b2c3d4...&proof_key=f7e8d9c0..."
Lire l'oracle
{
"valid": true, // ← that's your money, ghost
"tx_hash": "a1b2c3d4...", // ← echoed back for confirmation
"amount": "183.00", // ← exact amount decoded from quantum lattice seal
"currency": "SYNX",
"confirmed_at": 1735689600, // ← UNIX epoch when TX was inscribed on-chain
"message": "Payment proof verified — this proof key is valid for the specified transaction"
}
"valid": true — paiement confirmé. Tu connais le montant exact (décodé à partir du sceau du réseau quantique) et le currency. Vous ne connaissez ni l'expéditeur, ni le destinataire, ni le blocage. Personne ne le fait. Pas nous. Pas le serveur. Pas d'assignation à comparaître. Aucun point de terminaison API n'existe pour révéler les adresses – ni avec une clé d'affichage, ni avec une clé de preuve, jamais. La clé a débloqué le montant et rien d'autre. Il s'enfonça dans la mer.
Les noms de champs sont importants : Le point de terminaison simple renvoie "amount" (pas "amount_decoded"). Le point de terminaison de l'enveloppe runique renvoie "amount_decoded". Vérifiez quel point de terminaison vous atteignez et lisez le champ de droite. Les deux points de terminaison renvoient "valid": true/false.
C'est ça. Trois étapes. Un POSTE. Zéro compte, zéro clé API, zéro KYC. La clé de preuve est l'authentification. Le cryptage Quantum Kyber-768 est le juge. Expédiez les marchandises.
Feu et oubli : Le nœud SynX génère automatiquement la clé de preuve et la transmet à l'explorateur immédiatement après l'envoi de la transaction. Il s'agit d'un processus en arrière-plan : si le push échoue (problème de réseau, serveur en panne), l'envoi réussit toujours. La clé de preuve est générée par les paramètres de réseau quantique internes du nœud. L'inscription se fait au mieux. Le flux d'envoi ne bloque jamais sur la disponibilité du API.
𖣐 Rite de vérification complète
| 𖣐 EXPÉDITEUR | NŒUD SynX + MER | 𖣐 RÉCEPTEUR |
|
① Envoi privé (portefeuille) Kyber-768 encapsulé SPHINCS+ signé | ||
|
② Le nœud SynX génère clé de preuve scellée quantiquement Cryptage de réseau Kyber-768 infalsifiable — expire 30 min | ||
|
③ Le portefeuille reçoit une clé de preuve PT- préfixé (clé rendue une fois – conservez-la) | ◄──────────────────── | |
|
④ Partager la clé de preuve hors chaîne Signal / PGP / Tor message ═══════════════════════════════════════════► | (zéro chemin de métadonnées) | ══► |
|
⑤ Vérifier le sceau POST /verify_proof.php ◄──────────────────── | ||
|
← {"valid":true,"montant":183,00"} ────────────────────► | ||
| ✓ PAYÉ. EXPÉDIEZ-LE. |
L'étape ④ est le lien critique. La clé de preuve doit voyager entre l'expéditeur et le récepteur via un canal que le API ne voit jamais. Messages de disparition du signal. E-mail crypté par PGP. Service caché Tor. Un code QR affiché sur un tableau. Une note enregistrée sous un banc de parc. Le API ne se soucie pas de la façon dont le secret parvient – il ne vérifie les calculs que lorsque le récepteur le demande.
L’horloge tourne. Les clés de preuve expirent dans 30 minutes. Partagez immédiatement. Vérifiez immédiatement. De par leur conception, les clés de preuve sont des clés de puzzle éphémères, et non des informations d'identification de longue durée. Cette fenêtre étroite signifie que même si une clé est interceptée, la fenêtre dont dispose l'attaquant pour l'utiliser est microscopique. Au bout de 30 minutes, la clé est de la poussière cryptographique.
POST /verify_proof — Vérifier une clé de preuve (recommandé)
POSTE OBTENIR PUBLIQUE — Le moyen le plus simple de vérifier un paiement. Envoyer tx_hash + proof_key dans le corps (ou en tant que paramètres GET). Renvoie le montant exact. Aucune authentification. Pas de clé API. Aucun compte. Commencez ici.
// POST Request (JSON body) — recommended
{
"tx_hash": "a1b2c3d4e5f6...64hex",
"proof_key": "f7e8d9c0b1a2...64hex"
}
// "proof_token" also accepted as an alias for "proof_key"
// PT- prefix accepted: "PT-f7e8d9c0..." → server strips it automatically
// Also accepts form-encoded POST data or GET query parameters
// ✓ Response — seal broken, exact amount decoded
{
"valid": true,
"tx_hash": "a1b2c3d4...",
"amount": "183.00",
"currency": "SYNX",
"confirmed_at": 1735689600,
"message": "Payment proof verified — this proof key is valid for the specified transaction"
}
// ✗ Response — wrong proof key
{
"valid": false,
"tx_hash": "a1b2c3d4...",
"error": "Proof key does not match this transaction",
"hint": "The proof_key provided does not match this transaction. Ensure you received the correct proof key from the payment sender."
}
// ✗ Response — missing or malformed inputs
{
"valid": false,
"error": "Missing required parameters: tx_hash and proof_key",
"hint": "Send tx_hash (64 hex chars) and proof_key (64 hex chars) as GET params, POST form data, or JSON body.",
"example": {
"GET": "/explorer/api/verify_proof.php?tx_hash=abc123...&proof_key=def456...",
"POST": "{\"tx_hash\": \"abc123...\", \"proof_key\": \"def456...\"}"
}
}
C'est le point final avec lequel commencer. C'est le moyen le plus simple et le plus fiable de vérifier un paiement. Un POST avec deux champs → montant exact. Le point final de l'enveloppe runique ci-dessous (/rune-verify) renvoie des métadonnées plus riches (plages d'horodatage, compte à rebours d'expiration) mais nécessite le hachage TX dans le chemin de l'URL. Utiliser verify_proof.php sauf si vous avez spécifiquement besoin des champs supplémentaires.
Référence complète des erreurs — verify_proof.php
| HTTP | error champ | Qu'est-ce qui n'a pas fonctionné | Réparer |
|---|---|---|---|
| 400 | Missing required parameters: tx_hash and proof_key | Corps vide ou champs manquants | Envoyez les deux tx_hash et proof_key en JSON, données de formulaire ou paramètres de requête |
| 400 | Invalid tx_hash format | Pas 64 caractères hexadécimaux | Doit contenir exactement 64 caractères hexadécimaux [a-fA-F0-9]{64} |
| 400 | Invalid proof_key format | Pas 64 caractères hexadécimaux (après suppression de PT-) | 64 hex, avec ou sans PT- préfixe |
| 400 | tx_hash exceeds maximum length (64 chars) | Entrée trop longue – plafond strict appliqué | N'envoyez pas d'entrées surdimensionnées en espérant qu'elles seront coupées. Ils ne le feront pas. |
| 400 | proof_key exceeds maximum length (67 chars) | Entrée trop longue – plafond strict appliqué | 67 caractères maximum : PT- + 64 hex. |
| 429 | Rate limit exceeded — maximum 30 verification requests per minute | Mer étranglée | Reculez. Mettre en cache les résultats côté client : un sceau vérifié ne change pas. |
| 503 | Verification service temporarily unavailable | Synchronisation ou redémarrage du démon | Réessayez dans quelques instants. Le nœud SynX est peut-être en train de rattraper son retard. |
| 200 | Proof key does not match this transaction | Mauvaise clé pour ce TX | Vérifiez à nouveau que vous avez le bon proof_key de l'expéditeur |
Les réponses aux erreurs incluent toujours hint. Le hint Le champ donne des conseils conviviaux aux développeurs sur les éléments à corriger. Analyser valid d'abord (toujours présent), puis vérifiez error + hint en cas d'échec. Sur le succès, lisez amount et currency.
POST /privacy/tx/{hash}/rune-verify — Enveloppe runique (métadonnées riches)
POSTE PUBLIQUE — Même vérification de clé de preuve avec des métadonnées plus riches : fenêtre d'horodatage (± 120 s floue), compte à rebours d'expiration, méthode de décryptage. Utilisez-le lorsque vous avez besoin de plus que le montant.
Alias: /explorer/api/privacy/tx/{hash}/proof
// Request — proof_token in body, tx_hash in URL path
{ "proof_token": "f7e8d9c0b1a2...64hex" }
// Response — seal broken, rich metadata
{
"valid": true,
"confirmed": true,
"timestamp_range": { "earliest": 1735689480, "latest": 1735689720 },
"amount_decoded": "183.00",
"rune_lattice": "encrypted",
"decrypted_by": "runic_proof_token",
"expires_in_minutes": 24,
"proof_algorithm": "Kyber-768 quantum lattice seal — addresses never disclosed"
}
// Response — invalid
{ "valid": false, "reason": "Proof token does not match any registered runic proof" }
// Response — expired
{ "valid": false, "reason": "Runic proof has expired" }
Différence clé par rapport à verify_proof.php : Ce point de terminaison renvoie amount_decoded (pas amount), reason en cas d'échec (non error + hint), et comprend timestamp_range, expires_in_minutes, rune_lattice. Le hachage TX va dans le chemin de l'URL, pas dans le corps JSON. Choisissez le point de terminaison qui correspond à vos besoins : les deux vérifient la même clé de preuve.
Ce que le vérificateur apprend par rapport à ce qui reste noyé
| Point de données | Révélé? | Pourquoi |
|---|---|---|
| Le paiement a eu lieu | ✅ | valid: true |
| TX en chaîne | ✅ | confirmed: true |
| Fenêtre de temps | ✅ | ± 120 s flou — pas exact |
| Montant exact | ✅ | Décodé à partir du sceau du réseau quantique via la clé de preuve – pas une plage, le vrai nombre |
| Adresse de l'expéditeur | ❌ | Noyé dans la mer |
| Adresse du destinataire | ❌ | Noyé dans la mer |
| Hauteur du bloc | ❌ | null pour tous les TX privés |
Décodage de réseau quantique : La clé de preuve est générée par le nœud SynX à l'aide du cryptage en réseau Kyber-768 – le même standard post-quantique (FIPS 203) sur lequel toute la chaîne est construite. La clé est mathématiquement liée au montant exact de la transaction. Mauvaise clé ? Le décodage échoue complètement : aucune information partielle, aucune fuite de canal secondaire. Le codage du réseau est complété jusqu'à une longueur fixe : une transaction de 0,01 SynX et une transaction de 77 000 000 SynX produisent des réseaux scellés de taille identique. L'ampleur du montant est invisible sans la clé.
Les épreuves expirent après 30 minutes. Après expiration, le serveur renvoie "reason": "Runic proof has expired". Cette fenêtre étroite donne aux destinataires suffisamment de temps pour vérifier tout en éliminant le risque de relecture à long terme. Si la fenêtre se ferme, le portefeuille de l'expéditeur peut demander une nouvelle clé de preuve au nœud SynX (jusqu'à la limite par TX).
GET /privacy/tx/{hash}/verify — Existence Oracle
OBTENIR PUBLIQUE — Est-ce que ce TX existe ? Renvoie un engagement d'existence cryptographique. Ne révèle rien d'autre.
{
"exists": true,
"hash": "a1b2c3d4...",
"confirmed": true,
"confirmations": 142,
"block_height": null, // sealed — private TXs don't surface block info
"is_private": true,
"verified_at": 1735689600,
"existence_proof": "9d4997cb84efc492...",
"proof_algorithm": "HMAC-SHA256(tx_hash || block_height || date, server_key)"
}
GET /privacy/tx/{hash} — Recherche de transaction fantôme
OBTENIR PUBLIQUE - Recherchez n'importe quel TX. Les privés renvoient l'ombre - hachage visible, tout le reste null.
// Response — TX found (private shadow)
{
"status": "found",
"hash": "a1b2c3d4...",
"message": "Transaction located",
"transaction": {
"hash": "a1b2c3d4...",
"block_height": null, // hidden
"timestamp": 1735689600, // fuzzy ±120s
"from": null, // drowned
"to": null, // drowned
"amount": null, // drowned
"fee_tier": "redacted", // private TXs: fee tier sealed
"is_private": true,
"privacy_tier": "shadow",
"status": "confirmed",
"confirmations": 142,
"existence_commitment": "7833cd43..."
}
}
// Response — TX not found or shielded (identical shape prevents enumeration)
{
"status": "not_found_or_private",
"hash": "a1b2c3d4...",
"message": "Transaction not found or may be shielded",
"transaction": null
}
Quartier anti-dénombrement : Rechercher un hachage qui n'existe pas ? Vous obtenez {"status":"not_found_or_private","transaction":null,"message":"Transaction not found or may be shielded"} — forme de réponse identique vers un TX privé (mêmes clés, même structure). Chainalysis, Elliptic, CipherTrace : ils ne peuvent même pas dire quels hachages sont réels. Ce n'est pas un bug. C'est l'architecture.
GET /privacy/recent — Ondulations de surface
TX récents. Les champs privés font surface sous forme d’ombres (champs nuls). Les publics affichent des données transparentes. Bon pour les tableaux de bord. Paramètre de requête limit (1-50, par défaut 20).
GET /privacy/stats — Lectures de la profondeur de la mer
Métriques d'adoption de la confidentialité : nombre total d'émissions, émissions privées, pourcentage d'adoption, indicateurs de fonctionnalités. Aucune authentification requise. Surveillez la profondeur de la mer depuis votre propre infrastructure.
POST /privacy/batch-proof — Vérifier par lots plusieurs preuves
POSTE PUBLIQUE — Vérifiez jusqu'à 50 clés d'épreuve en une seule demande. Même vérification du démon que les points de terminaison à preuve unique, mais par lots pour plus d'efficacité. Idéal pour les marchés traitant plusieurs commandes ou les portefeuilles vérifiant plusieurs paiements entrants à la fois.
// Request — array of proof pairs (max 50)
{
"proofs": [
{ "tx_hash": "a1b2c3d4...64hex", "proof_token": "f7e8d9c0...64hex" },
{ "tx_hash": "b2c3d4e5...64hex", "proof_token": "PT-e8d9c0b1...67chars" }
]
}
// Response — per-proof results with summary
{
"batch_size": 2,
"results": [
{
"index": 0,
"valid": true,
"tx_hash": "a1b2c3d4...",
"confirmed": true,
"amount_decoded": "183.00",
"rune_lattice": "encrypted"
},
{
"index": 1,
"valid": false,
"tx_hash": "b2c3d4e5...",
"reason": "Proof token mismatch"
}
],
"valid_count": 1,
"invalid_count": 1
}
Limites de lots et référence d'erreur
| Contrainte | Limite | Erreur en cas de violation |
|---|---|---|
| Nombre maximum d'épreuves par lot | 50 | 400 — "Maximum 50 proofs per batch, got N" |
| Corps maximum de la requête | 256 Ko | 400 — "Request body too large for batch endpoint" |
| Tableau vide | Min 1 | 400 — "Proofs array is empty" |
| tx_hash invalide dans l'élément | 64 hexagones | Sauté — {"valid":false,"reason":"Invalid tx_hash"} dans les résultats |
| proof_token invalide dans l'article | 67 caractères maximum | Sauté — {"valid":false,"reason":"Invalid proof_token (max 67 chars, 64 hex)"} |
Utilisations par lots amount_decoded (comme l'Enveloppe Runique), pas amount. Chaque résultat a un index champ correspondant à la position du tableau d’entrée. Les éléments en échec ne font pas planter le lot : ils reviennent valid: false avec un reason tandis que d'autres preuves continuent à se vérifier. Le point de terminaison par lots partage l'accélérateur de confidentialité du API (ligne de base de 100 req/min + interdictions incrémentielles).
Porte DDoS : Si votre adresse IP hachée est proche de la limite d'accélération (60 % et plus d'un budget de 100 req/min), le point de terminaison du lot refuse tous les appels RPC du démon pour empêcher l'amplification : une requête par lots de 50 preuves atteindrait autrement le démon 50 fois. Vous obtiendrez {"error": "Proof verification service temporarily unavailable"}. Reculez et réessayez.
🧅 Tor / .onion – Acheminez tout à travers le brouillard
Le API est REST sans état sur HTTPS. Pas de cookies. Aucune séance. Pas d'empreinte digitale JS. Aucune mise à niveau WebSocket. Requête pure → réponse sur TLS. Cela fonctionne nativement sur Tor parce que nous l'avons construit de cette façon. Pas après coup. Si vous construisez quelque chose de privé et que vous êtes pas en routant via .onion, vous divulguez votre adresse IP à chaque résolveur DNS entre vous et le serveur. Ne le faites pas.
Statut .oignon : Le dédié synxexplorer.onion le service caché est à venir. Les URL ci-dessous utilisent un espace réservé. Jusqu'à ce que le .onion soit actif, acheminez les requêtes Clearnet via Tor via torsocks ou proxy SOCKS5. Votre IP reste cachée de toute façon. Nous mettrons à jour ce document dès la mise en ligne du service caché.
cURL via Tor
# Install torsocks (Debian/Ubuntu)
sudo apt install torsocks
# Verify a payment — sovereign style
torsocks curl -X POST http://synxexplorer.onion/explorer/api/verify_proof.php \
-H "Content-Type: application/json" \
-d '{"tx_hash":"a1b2c3d4...","proof_key":"f7e8d9c0..."}'
Python via Tor (SOCKS5)
import requests
# pip install requests[socks] PySocks
session = requests.Session()
session.proxies = {
'http': 'socks5h://127.0.0.1:9050',
'https': 'socks5h://127.0.0.1:9050',
}
# socks5h = DNS resolution through Tor too (no DNS leak)
API = "http://synxexplorer.onion/explorer/api"
result = session.post(f"{API}/verify_proof.php",
json={"tx_hash": "a1b2c3d4...", "proof_key": "f7e8d9c0..."},
timeout=30).json()
if result.get("valid"):
print(f"ᛣ Sealed — amount: {result['amount']} {result['currency']}")
Node.js via Tor
const { SocksProxyAgent } = require('socks-proxy-agent');
const fetch = require('node-fetch');
const agent = new SocksProxyAgent('socks5h://127.0.0.1:9050');
const API = 'http://synxexplorer.onion/explorer/api';
const r = await fetch(`${API}/verify_proof.php`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({tx_hash: 'a1b2c3d4...', proof_key: 'f7e8d9c0...'}),
agent,
});
const data = await r.json();
if (data.valid) console.log('𖣐 Sovereign verified', data.amount, data.currency);
Pourquoi socks5h pas socks5? Le h signifie que la résolution DNS se fait également via Tor. Sans cela, votre résolveur DNS local voit « synxexplorer.onion » — une fuite de métadonnées. Toujours socks5h. Toujours.
📡 Partager des clés de preuve via Signal – Zéro métadonnées
La clé de preuve doit voyager expéditeur → récepteur sans toucher le API. Voici la hiérarchie OPSEC pour ce transfert :
| Canal | Fuite de métadonnées | Verdict |
|---|---|---|
| Signal (disparu, expéditeur scellé) | Numéro de téléphone connu de Signal, contenu du message E2EE | BIEN pour la plupart des menaces |
| PGP sur courrier électronique Tor (ProtonMail/Tutanota) | Métadonnées de courrier électronique (le fournisseur voit de/à/heure), corps E2EE | BIEN |
| Message direct du service caché Tor | Rien. Les deux parties derrière .onion. | MEILLEUR |
| Télégramme (même "chats secrets") | Numéro de téléphone, métadonnées cloud, Telegram a votre IP | MEH |
| Discord / Slack / E-mail (texte en clair) | Tout. Connecté pour toujours. Assignable à comparaître. | NO |
Le temps compte : Les clés de preuve expirent dans 30 minutes. Utilisez des messages qui disparaissent réglés sur 5 minutes ou moins. L'acheteur doit envoyer la clé de preuve immédiatement après que le portefeuille ait confirmé l'envoi privé. Le vendeur doit vérifier immédiatement après réception. Canaux éphémères pour clés éphémères.
Hook d’intégration de signal (bot Python)
# signal-cli or signal-bot framework — send proof key after payment
import subprocess, json
def send_proof_via_signal(recipient_phone, tx_hash, proof_key):
"""Send proof key through Signal. Disappearing message. Verify within 30 min."""
msg = json.dumps({
"tx_hash": tx_hash,
"proof_key": proof_key,
"verify_at": f"POST /verify_proof.php with tx_hash + proof_key",
"expires": "30 minutes from generation — verify NOW",
})
subprocess.run([
"signal-cli", "-u", "+1YOUR_NUMBER",
"send", "-m", msg, recipient_phone,
"--expire", "300", # 5-min disappearing message
])
# After private SYNX send:
send_proof_via_signal("+1BUYER_PHONE", "a1b2c3d4...", "PT-f7e8d9c0...")
Le canal n'est pas le problème du API. C'est la beauté. Le API vérifie uniquement les clés de preuve : il ne sait jamais comment elles ont voyagé. Vous pouvez imprimer la clé sur un reçu et la remettre à un comptoir. Le calcul fonctionne toujours. La vérification est apatride. La clé expire dans 30 minutes quel que soit le canal.
⚓ Rite de paiement du marché
Vous construisez un marché souverain. Pas de rayures. Pas de PayPal. Pas de middleware KYC. Juste le Synergy Sea et les clés d’épreuve scellées quantiquement. Voici comment vérifier les paiements avec montants exacts en utilisant uniquement une clé de preuve – aucune adresse n’a jamais été révélée.
Les clés de preuve décodent les montants exacts – rien d’autre. Le nœud SynX génère une clé de preuve scellée quantiquement à l'aide du cryptage en treillis Kyber-768 qui décode en exact montant du paiement — pas d'adresses, pas de hauteurs de bloc, pas d'informations sur l'expéditeur/le destinataire. Une commande de 300 SynX ? La clé décode à "300,00". Un paiement de 100 SynX ? "100,00". Aucune ambiguïté sur le montant. Ambiguïté totale sur l'identité. La clé expire dans 30 minutes.
# Flask marketplace backend: amount-only verification via proof key
import requests
API = "https://explorer.synxcrypto.com/explorer/api"
@app.route('/verify-payment', methods=['POST'])
def verify():
tx_hash = request.json['tx_hash']
proof_key = request.json['proof_key'] # raw 64-hex or PT- prefixed (API accepts both)
order = Order.query.filter_by(tx_hash=tx_hash).first()
if not order:
return {'status': 'unknown_order'}, 404
# Step 1: confirm TX exists on-chain
existence = requests.get(f"{API}/privacy/tx/{tx_hash}/verify", timeout=20).json()
if not existence.get('exists') or not existence.get('confirmed'):
return {'status': 'not_confirmed'}, 402
# Step 2: decode exact amount using proof key (30-min window)
# Uses verify_proof.php — returns "amount" (not "amount_decoded")
result = requests.post(f"{API}/verify_proof.php",
json={"tx_hash": tx_hash, "proof_key": proof_key}, timeout=20).json()
if result.get('valid'):
paid = float(result['amount']) # ← "amount" not "amount_decoded"
if paid >= order.total:
order.status = 'paid'
db.session.commit()
return {'status': 'sovereign_paid', 'exact_amount': paid}
return {'status': 'underpaid', 'sent': paid, 'required': order.total}, 402
# Error responses include "error" + "hint" — check both
error = result.get('error', '')
if 'expired' in error.lower():
return {'status': 'proof_expired', 'message': 'Proof key expired — ask buyer for a fresh key'}, 410
return {'status': 'invalid_proof', 'hint': result.get('hint', '')}, 402
Montant uniquement par conception. La clé de preuve décode le sceau du réseau quantique en quantité exacte - et c'est tous c'est le cas. Il n'y a aucun point final, aucune clé d'affichage, aucun mécanisme dans ce API pour révéler les adresses de l'expéditeur ou du destinataire. Le marché voit "300,00 SynX ont été payés" — jamais OMS payé ou d'où. C'est le contrat de confidentialité. C'est permanent.
✗∑🗡 Code Grimoire – Chaque langage, chaque modèle
Python - Vérifier une clé de preuve
import requests
API = "https://explorer.synxcrypto.com/explorer/api"
SOCKS = {'http': 'socks5h://127.0.0.1:9050', 'https': 'socks5h://127.0.0.1:9050'}
def verify(tx_hash, proof_key, tor=False):
"""Verify a SYNX proof key — decodes exact amount, reveals nothing else.
The SYNX Node generates proof keys using quantum Kyber-768 lattice encryption.
Keys expire in 30 minutes. Verify immediately upon receipt.
Uses verify_proof.php — the recommended endpoint.
"""
s = requests.Session()
if tor: s.proxies = SOCKS
return s.post(f"{API}/verify_proof.php",
json={"tx_hash": tx_hash, "proof_key": proof_key},
timeout=20).json()
def check_exists(tx_hash, tor=False):
"""Check if a TX exists on-chain. Reveals nothing about amounts or addresses."""
s = requests.Session()
if tor: s.proxies = SOCKS
return s.get(f"{API}/privacy/tx/{tx_hash}/verify", timeout=20).json()
# Usage — the whole rite (amount-only verification)
# Buyer sends you: tx_hash + proof_key (off-chain, via Signal/PGP/Tor)
result = verify("a1b2c3d4...", "f7e8d9c0...", tor=True) # raw or PT- prefixed
if result.get("valid"):
print(f"𖣐 Payment confirmed — exact amount: {result['amount']} {result['currency']}")
# No addresses revealed — ever. Only the amount surfaces.
elif result.get('error'):
print(f"⚠ {result['error']}")
if result.get('hint'): print(f" Hint: {result['hint']}")
# The SYNX Node generates the proof key. You just verify it.
# Proof key = quantum puzzle key. Amount = the only answer.
# Sender? Drowned. Receiver? Drowned. That's the deal.
Node.js — Vérificateur de paiement (Middleware express)
const fetch = require('node-fetch');
const API = 'https://explorer.synxcrypto.com/explorer/api';
async function verifyPayment(txHash, proofKey) {
// Proof key generated by SYNX Node — quantum Kyber-768 sealed
// Expires in 30 minutes — verify immediately
const r = await fetch(`${API}/verify_proof.php`, {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ tx_hash: txHash, proof_key: proofKey }),
});
return r.json();
}
// Express middleware — drop into any route
async function requirePayment(req, res, next) {
const { tx_hash, proof_key } = req.body;
const result = await verifyPayment(tx_hash, proof_key);
if (!result.valid) {
// Error responses include "error" + "hint" fields
return res.status(result.error?.includes('expired') ? 410 : 402).json({
error: result.error,
hint: result.hint,
});
}
req.paymentAmount = result.amount; // ← "amount" (not "amount_decoded")
req.paymentCurrency = result.currency;
next();
}
cURL — Aide-mémoire complet
BASE="https://explorer.synxcrypto.com/explorer/api"
# Sea depth readings
curl $BASE/privacy/stats
# Recent shadow transactions
curl "$BASE/privacy/recent?limit=10"
# Shadow lookup (private TX)
curl $BASE/privacy/tx/a1b2c3d4e5f6...
# Existence oracle
curl $BASE/privacy/tx/a1b2c3d4e5f6.../verify
# Verify a proof key — RECOMMENDED (simple endpoint)
# Returns: {"valid":true, "amount":"183.00", "currency":"SYNX", ...}
curl -X POST $BASE/verify_proof.php \
-H "Content-Type: application/json" \
-d '{"tx_hash":"a1b2c3d4...","proof_key":"f7e8d9c0..."}'
# GET also works (quick terminal check):
curl "$BASE/verify_proof.php?tx_hash=a1b2c3d4...&proof_key=f7e8d9c0..."
# PT- prefix also works in proof_key:
# "proof_key":"PT-f7e8d9c0..." or "proof_token":"f7e8d9c0..."
# Runic Envelope (richer metadata: timestamp range, expiry)
curl -X POST $BASE/privacy/tx/a1b2c3d4.../rune-verify \
-H "Content-Type: application/json" \
-d '{"proof_token":"f7e8d9c0..."}'
# All of the above, through Tor:
torsocks curl http://synxexplorer.onion/explorer/api/verify_proof.php \
-d '{"tx_hash":"a1b2...","proof_key":"f7e8..."}'
⚔ SynergyX vs Monero – La comparaison honnête
Monero a été pionnier. Signatures d'anneau, RingCT, adresses furtives - tout est génial. Mais ils ont été construits pour un monde pré-quantique où Ed25519 était incassable et où les horodatages exacts sur un explorateur étaient « corrects ». Cette époque est terminée. Voici où se situent les deux chaînes lorsque vous les mettez côte à côte :
| Capacité | Monero (XMR) | SynergyX (SynX) |
|---|---|---|
| Preuves de paiement | check_tx_proof (adresses des fuites) | POST /verify_proof.php (montant seulement) |
| Divulgation des adresses dans les épreuves | ❌ adresses visibles en justificatif | ✅ AUCUNE adresse - jamais |
| Montants cachés (explorateur) | ✅ RingCT | ✅ null dans tous les magasins + clés à preuve quantique |
| Montant en preuve | ❌ montant exact + adresses exposées | ✅ Montant exact décodé, zéro adresse |
| Expiration de la preuve | ❌ les preuves vivent pour toujours | ✅ Fenêtre de 30 minutes – éphémère par conception |
| Génération de preuves | Côté client (les attaquants peuvent effectuer de la rétro-ingénierie) | Nœud SynX (quantique Kyber-768 – infalsifiable) |
| Confidentialité de l'horodatage | ❌ exact à la seconde près | ✅ ±120s flou |
| Confidentialité des frais | ❌ sat/octet exact visible | ✅ Seaux à 5 niveaux |
| Hauteur du bloc masquée | ❌ visible sur l'explorateur | ✅ null pour les TX privés |
| Oracle anti-synchronisation | ❌ pas de gigue API | ✅ Plafond constant de 500 ms |
| 404 indiscernables | ❌ forme différente | ✅ not_found == privé |
| Signatures post-quantiques | ❌ Ed25519 (Shor-mort) | ✅ SPHINCS+-SHAKE256-128f |
| Échange de clés post-quantique | ❌ x25519 (Shor-mort) | ✅ Kyber-768 (FIPS203) |
| Cryptage du disque du portefeuille | ChaCha20 | ✅ Argon2id (2 Go, 4 passes) |
| Tor-natif API | ✅RPC | ✅ REST apatride |
| Une migration quantique est-elle nécessaire ? | ❌ OUI - réécriture totale | ✅ Né de cette façon. Bloc Genèse. |
Si vous utilisez encore Monero en 2026, vous êtes déjà mort : vous ne l'avez tout simplement pas remarqué.
Vos signatures de bague ? Chainalysis les regroupe comme du bétail. Des horodatages exacts ? La NSA horodatage votre café. Ed25519? Shor arrive : vos clés sont poussière. Génération de preuves côté client ? Décompilez le portefeuille et falsifiez des preuves toute la journée. C'est de l'archéologie, pas de la sécurité.
Les clés de preuve SynergyX sont générées par le Nœud SynX en utilisant le cryptage quantique sur réseau Kyber-768. La méthode de génération est scellée au cœur du nœud : aucun client, aucun décompilateur, aucun attaquant ne peut accéder aux paramètres internes du réseau quantique. Même un adversaire sophistiqué qui décompile complètement le portefeuille n'obtient rien : le portefeuille reçoit la clé de preuve du nœud. Cela ne le génère pas. Le secret ne quitte jamais le Node.
Transactions fantômes : expéditeur, destinataire, montant, blocage : null. Pas obscurci. Effacé.
Clés de preuve quantique : Clés de puzzle scellées en treillis Kyber-768 : prouvez le montant exact sans fuite qui a envoyé, qui a reçu, quand (± 120 s de fuzz) ou où. La clé décode les montants exacts : 183,00, et non "moyens". Aucune adresse dans le justificatif. Aucune adresse dans le API. Aucune adresse nulle part. Expire dans 30 minutes.
Aucune divulgation d'adresse : Il n’y a pas de point de terminaison de clé d’affichage. Aucun point final d’audit. Aucun mécanisme pour révéler l'expéditeur ou le destinataire via ce API. Le montant est tout ce qui fait surface. L’identité reste noyée – pour toujours.
Post-quantique : Kyber-768, SPHINCS+, SHAKE256 — Shor peut embrasser votre bloc de genèse. Aucune feuille de route. Non "plus tard, j'ajouterai des signatures quantiques". Nous sommes nés immunisés.
Vous voulez de l'intimité ? Arrêtez de mendier des restes. Avec Synergy, vous bénéficiez d'une furtivité et d'une vitesse quantiques dans la mer des ombres. Prenez la lame.
L'éléphant quantique : Les clés Ed25519 du Monero sont vulnérables à Shor. Leur « plan de migration » signifie que chaque portefeuille récupère les clés dans le cadre d'un nouveau système – tant que la chaîne est active, que les fonds sont en danger et que le calendrier est inconnu. SynergyX n'a pas de plan de migration car il n'y a rien à partir duquel migrer. Kyber-768 + SPHINCS+ à partir du bloc zéro. Au réveil du Shor, cette chaîne ne bronche pas. Les anciennes chaînes s’effondrent. C'est la différence entre « nous le réparerons plus tard » et « nous l'avons réparé en premier ».
Codes d'erreur
Deux points finaux, deux formes d’erreur. verify_proof.php retours "error" + "hint" champs. L'enveloppe runique (/rune-verify) renvoie "reason". Les deux incluent toujours "valid": false. Analyser valid d’abord, puis vérifiez le champ d’erreur qui correspond à votre point de terminaison.
verify_proof.php — Codes d'état HTTP
| Code | Signification | La réponse comprend |
|---|---|---|
| 200 | Succès : clé de preuve vérifiée, montant exact décodé | valid, tx_hash, amount, currency, confirmed_at, message |
| 200 | Preuve invalide – mauvaise clé pour ce TX (pas une erreur HTTP) | valid: false, tx_hash, error, hint |
| 400 | Requête incorrecte : champs manquants, hachage mal formé, format invalide, entrée surdimensionnée | valid: false, error, hint, parfois example |
| 429 | Mer étranglée — 30 req/min par IP. Reculez et mettez les résultats en cache. | valid: false, error, hint |
| 503 | Nœud SynX indisponible : synchronisation ou redémarrage du démon. Réessayez dans quelques instants. | valid: false, error, hint |
Enveloppe runique (/rune-verify) — Codes d'état HTTP
| Code | Signification |
|---|---|
| 200 | Succès : clé de preuve vérifiée, montant décodé avec des métadonnées riches |
| 200 | Preuve invalide — "reason": "Proof token does not match any registered runic proof" |
| 200 | Expiré - "reason": "Runic proof has expired" |
| 404 | TX introuvable or TX est privé (vous ne saurez jamais lequel – de par sa conception) |
| 429 | Sea throttled – niveaux d'interdiction progressifs (100 → accélérateur, 500 → 5 min d'interdiction, 1 500 → 1 heure d'interdiction) |
| 500 | Perturbation interne : vérifiez les journaux du serveur |
429 Sea Throttle — Corps d’intervention
Les 429 réponses (les deux critères) incluent un Retry-After En-tête HTTP (RFC 7231) et corps JSON structuré avec informations sur les niveaux :
// 429 Response — sea throttle or ban active
// Retry-After: 60 (HTTP header — seconds until retry)
{
"error": "Sea throttled — incremental ban tiers protect the Sea",
"throttle_tier": "standard", // "standard" | "tier1" | "tier2" | "active_ban"
"retry_after": 60, // seconds until you can retry
"message": "100 req/min exceeded — exponential backoff (60s). Cool down and come back.",
"tiers": {
"standard": "100 req/min — exponential backoff",
"tier1": "500 req/min — 5-minute ban",
"tier2": "1500 req/min — 1-hour ban"
}
}
// Example: active ban (hit 500+ req/min earlier)
// Retry-After: 253
{
"throttle_tier": "active_ban",
"retry_after": 253,
"message": "Active ban — 253s remaining. Keep pushing and the Sea pushes back harder."
}
Analyser retry_after ou le Retry-After en-tête — les deux donnent la même valeur en secondes. Le throttle_tier Le champ vous indique le niveau d'escalade que vous avez atteint. Si tu vois "active_ban", vous avez déjà été remonté – le message vous dit combien de temps vous vous noyez. verify_proof.php possède son propre limiteur de débit plus simple de 30 req/min qui renvoie un message d'erreur clair sans informations sur le niveau.
Formats d'entrée (les deux points de terminaison) : Hachage TX = exactement 64 caractères hexadécimaux [a-fA-F0-9]{64}. Clé de preuve = max 67 caractères (avec PT- préfixe) ou exactement 64 hex (brut). Le API accepte les deux formats : bandes de serveur PT- automatiquement. verify_proof.php accepte le nom du champ proof_key or proof_token (alias). Tout ce qui se situe en dehors de ces limites obtient un 400 dur. Pas de coupe. Aucune pitié.
Les limites de débit diffèrent selon le point de terminaison. verify_proof.php applique 30 req/min par IP. L'enveloppe runique utilise l'accélérateur de mer du API : 100 req/min ligne de base avec escalade progressive de l'interdiction (500 → 5 min, 1 500 → 1 h). Résultats de la preuve en cache côté client pendant la fenêtre de 30 minutes : un sceau vérifié ne change pas lorsqu'il est actif. Une fois valid: true, le montant est le montant.
🕳 Garanties zéro métadonnées : ce que les développeurs doivent savoir
Si vous intégrez ce API, voici la preuve tangible que aucune fuite de métadonnées. Chaque réclamation ci-dessous est auditée par GhostReaper (plus de 100 vecteurs d'attaque, 0 résultat non corrigé).
Propriétés de sécurité – Liste de contrôle du développeur
| Propriété | Garantie | Comment |
|---|---|---|
| Clés de preuve infalsifiables | ✅ | Généré par le nœud SynX à l’aide du cryptage quantique de réseau Kyber-768. Les paramètres internes ne quittent jamais le processus Node. Ne peut pas être falsifié même en décompilant le portefeuille. |
| Clés de preuve éphémères | ✅ | Chaque clé de preuve expire dans 30 minutes. Après expiration, le sceau est définitivement brisé. Pas de « jetons éternels » – minimise les risques de relecture et d'interception. |
| Montant jamais communiqué | ✅ | Le serveur stocke le codage en réseau scellé quantiquement. Montant brut jamais envoyé, reçu ou stocké en texte clair. Seule la clé de preuve peut le décoder. |
| Taille du réseau = constante | ✅ | Tous les joints en treillis sont rembourrés à une longueur fixe. Un SynX TX de 0,01 et un SynX TX de 777 000 000 produisent des joints de taille identique. L’ampleur du montant est invisible. |
| L'oracle du timing est mort | ✅ | Plafond constant de 500 ms à chaque réponse. D de Cohen = 0,015 entre chemins valides/invalides (confirmé par GhostReaper). Statistiquement invisible. |
| Clé de preuve jamais stockée brute | ✅ | Magasins de serveurs SHA256(proof_key) seulement. Si la base de données fuit → hachages + bruit de réseau scellé. Inutile sur le plan informatique sans la clé. |
| L'expéditeur/destinataire n'a jamais été envoyé | ✅ | Il n’existe aucun point de terminaison acceptant ou renvoyant des adresses. Aucune clé d'affichage. Aucune donnée d'identité. Architecture à montant uniquement. |
| Aucune différenciation de réponse | ✅ | "TX not found" et "TX is private" renvoient des formes de réponse identiques. Aucune fuite d'informations. |
| L'accélérateur de mer tient en simultanéité | ✅ | Limiteur d'accélérateur de mer basé sur un fichier avec LOCK_EX sérialisation. 200 requêtes simultanées → 0 réussie (GhostReaper). La fenêtre TOCTOU est fermée. Les niveaux de bannissement incrémentiels (500 → 5 min, 1 500 → 1 h) augmentent même pendant les bannissements actifs – le compteur ne s'arrête jamais. Au-delà de 60 % du budget, les appels RPC du démon sont refusés pour empêcher l’amplification DDoS. IP stockées sous forme de hachages SHA-256. |
Ce que vous DEVEZ faire en tant qu'intégrateur
1. N’enregistrez jamais de clés de preuve. La clé de preuve est la clé du puzzle du montant. Si votre application l'enregistre, vous avez rompu le modèle de confidentialité. Traitez-le comme une clé privée.
2. Préfixe PT accepté — mais validez vos saisies. Le API accepte les deux PT-f7e8... et cru f7e8... formats — le serveur le supprime automatiquement. Mais tx_hash doit contenir exactement 64 caractères hexadécimaux et proof_token maximum 67 caractères. Les entrées surdimensionnées obtiennent un dur 400.
3. Vérifiez dans les 30 minutes. Les clés de preuve expirent. Créez votre flux de vérification pour qu'il soit immédiat, et non pour un traitement par lots le lendemain.
4. Partagez les clés de preuve uniquement sur des canaux sans métadonnées. Signal (disparu), PGP sur Tor, DM .onion. Jamais de discorde. Ne vous relâchez jamais. N'envoyez jamais d'e-mails sans PGP.
5. Cachez les preuves vérifiées côté client. Une fois "valid": true, stockez le résultat. Ne revérifiez pas : vous perdez des modèles de synchronisation et la clé peut expirer entre les vérifications.
6. Déployez le durcissement nginx en production. Le API est livré avec nginx_privacy_hardening.conf — Délais d'attente de 5 s, 20 connexions/IP, limitation des gaz en mer à 100 req/min, blocage de la traversée du chemin. Défense active en loris lent.
𖣐 Codez-le. Testez-le. Possédez l'obscurité.
Un seul réseau principal aujourd'hui. Pas de prévente. Pas de vidage VC. Aucune allocation d'influenceurs. Pas de trésorerie de fondation où 6 personnes contrôlent 40% de l'approvisionnement. Pas de communiqués de presse « partenariat stratégique ». Juste une chaîne, une communauté et des mathématiques qui ne se plient pas.
Vous avez maintenant tout. Six points finaux. Du vrai code. Routage Tor. Crochets de signalisation. Un modèle de menace honnête quant à ce qui fuit ou non. Clés de preuve Quantum Kyber-768 générées par le nœud SynX – clés de puzzle infalsifiables qui décodent les montants exacts et rien d'autre. Aucune divulgation d'adresse - ni avec une clé d'affichage, ni avec une clé de preuve, jamais. Fuzzing de l’horodatage qui rend l’analyse temporelle statistiquement dénuée de sens. Et au-dessous de tout cela, une cryptographie en treillis qui survit à toutes les attaques quantiques connues – non pas parce que nous avons migré, mais parce que nous avons commencé là-bas.
Le Synergy Sea est l’océan post-quantique où les ombres ne font jamais surface. Aucun centre de données ne peut être roi lorsque SynergyX le détrône et trône l'utilisateur. Chaque transaction privée s'enfonce dans l'encapsulation Kyber-768, scellée par des hyperarbres SPHINCS+, indexés par des engagements de réseau quantique. Les montants chuchotent à travers les clés de preuve – du charabia pour les observateurs, des décimales exactes pour les détenteurs de clés. L'explorateur voit des ondulations. Le API renvoie null là où cela compte. La clé de preuve est le seul fil conducteur vers le montant – et le montant est tous qui fait surface. Expéditeur et destinataire ? Noyé. En permanence. Aucun point final, aucune clé, aucune assignation à comparaître ne les ramène.
Pas de KYC. Pas de garde. Aucune analyse de chaîne. Aucune divulgation d'adresse. Aucun point central de défaillance. Pas de feuille de route de migration car il n'y a rien à partir duquel migrer. Premier arrivé dans la phase finale quantique.
Ce n'est pas de la documentation. C'est une arme. Utilisez-le.
𝓢𝔁
Codez-le. Testez-le. Possédez les marées sombres.
SynergyX Confidentialité API v2.0 — Clés à preuve quantique — Le Synergy Sea
L’océan post-quantique où les ombres ne font jamais surface.