Verifieer privรฉ SynX-betalingen
Met alleen-bedrag-bewijssleutels.

Een proefsleutel bevestigt het exacte SynX-bedrag voor รฉรฉn transactie zonder de adressen van de afzender of de ontvanger vrij te geven.
HOOFDNET LIVE Kyber-768 SPHINCS+-SHAKE256-128f Kwantumbestendige sleutels Vuur-en-vergeten Geen metadata Vervaldatum van 30 minuten Geen roosterlekken Geen adres openbaarmaking

Deze handleiding documenteert dezelfde privรฉ-transactie-proof-sleutelstroom die wordt gebruikt door timeline.php voor betalingen voor tijdlijntoegang. Het is ontworpen voor ontwikkelaars die privรฉ-SynX-betalingen moeten accepteren, het exacte bedrag moeten verifiรซren en adresgegevens buiten hun applicatie moeten houden.

Aanbevolen integratiepad: bouw een server-side verificateur die accepteert tx_hash En proof_key, oproepen /explorer/api/verify_proof.php, cheques valid === trueen vergelijkt vervolgens de geretourneerde waarden amount tot het door u gewenste bestelbedrag. Dit is het pad dat Timeline gebruikt voor privรฉbetalingen.

Tijdlijn-compatibele implementatie

Bewijssleutels zoals tijdlijn implementeren

Timeline accepteert automatisch zichtbare marktplaatsbetalingen. Wanneer een transactie privรฉ of verborgen is, wordt overgeschakeld naar proof-key-verificatie. De proefsleutel bevestigt het betalingsbedrag terwijl de adresvelden gesloten blijven.

TIJDLIJN-COMPATIBELE PRIVร‰BETALINGSSTROOM 1. De gebruiker dient tx_hash in, en voor privรฉverzendingen dient hij ook proof_key in. 2. Normaliseer proof_key: trim witruimte, verwijder interne spaties, accepteer PT-voorvoegsel. 3. Valideer de invoer voordat u de API aanroept: tx_hash = exact 64 hexadecimale tekens proof_key = precies 64 hexadecimale tekens, of PT- + 64 hexadecimale tekens 4. POST JSON naar /explorer/API/verify_proof.php: {"tx_hash"...64hex...","proof_key" PT-...64hex..."} 5. Als response.valid waar is, lees dan response.amount en response.currency. 6. Vergelijk responsbedrag met het gewenste betalingsbedrag. Tijdlijn gebruikt een kleine decimale tolerantie: abs(betaald - vereist) <= 0.0001 7. Grant access, mark the order paid, or unlock the product only after amount match.

PHP-verificatie in tijdlijnstijl

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'];
}

Antwoordvelden waarvan u afhankelijk bent

VeldEindpuntGebruik
validverify_proof.phpPrimaire Booleaanse waarde. Geef niets, tenzij dit zo is true.
amountverify_proof.phpExact SynX-bedrag voor het bewijs. Vergelijk met uw gewenste bedrag.
currencyverify_proof.phpVerwachte waarde is SYNX.
error + hintverify_proof.phpToon een eenvoudig bericht voor een nieuwe poging of correctie aan de gebruiker.
amount_decoded/privacy/tx/{hash}/rune-verifyHetzelfde concept als amount, maar geretourneerd door het rijkere metadata-eindpunt.

Compatibiliteit met verificatie in de wachtrij: Het eenvoudige eindpunt reageert meestal synchroon. Als er ooit een integratie komt {"status":"pending","request_id":"...","retry_after":3}, opiniepeiling /explorer/api/index.php?endpoint=verify_proof&request_id=... na retry_after seconden en parseer de uiteindelijke JSON op dezelfde manier. De tijdlijn bevat dit compatibiliteitspad.

Implementatienota: Voor browsertoepassingen roept u de verificateur aan vanuit uw backend, tenzij uw oorsprong al is toegestaan โ€‹โ€‹door het CORS-beleid van de verkenner. Met verificatie aan de serverzijde kunt u ook proefsleutels uit klantlogboeken redigeren en op รฉรฉn plek bedragen vergelijken met uw besteldatabase.

Privacyfilosofie

๐ŸŒŠ Waarom we de afzender of ontvanger nooit openbaar maken

We maken nooit de afzender of ontvanger bekend, omdat privacy en open source meestal niet samengaan โ€“ het is alsof je olie in de zee mengt. We hebben synergie omdat we schaduwen laten verdwijnen en niet verstikt raken en vast komen te zitten door olie- of gaslekken (metadata). De zee vloeit schoon als identiteiten erin oplossen. Op het moment dat je een golf markeert, vervuil je de hele oceaan. โ€” SynX PRIVACYDOCTRINE

Dit is het kernprincipe. Open source-transparantie en gebruikersprivacy zijn natuurlijke vijanden, tenzij je de grens op de juiste manier afbakent. SynergyX lost dit op door de protocol transparant (iedereen kan de code controleren) terwijl deze behouden blijft identiteit permanent ondoorzichtig (er bestaat geen mechanisme om afzender of ontvanger te onthullen). De proefsleutel is een puzzelsleutel: hij ontgrendelt het bedrag, en alleen het bedrag. De identiteiten achter de transactie losten op in de Synergy Sea op het moment dat het blok werd verzegeld.

Het SynX-knooppunt genereert de bewijssleutel met behulp van quantum Kyber-768-roosterversleuteling. De sleutel is wiskundig gebonden aan het transactiebedrag. Het kan niet worden vervalst, het kan niet worden onderworpen aan reverse-engineering, en verloopt na 30 minuten. De afzender deelt de proefsleutel met de ontvanger buiten de keten: Signal, PGP, Tor, een servet. De ontvanger verifieert via deze API. Dat is het hele vertrouwensmodel. Geen voogdij. Geen tussenpersoon. Geen metadataspoor.

Alleen bedrag door permanent ontwerp. De proefsleutel decodeert het exacte betalingsbedrag. Er is geen mechanisme โ€“ geen eindpunt, geen sleutel, geen parameter, geen vlag โ€“ dat de adressen van de afzender of de ontvanger onthult. Dit is geen configuratiekeuze. Het is een architectonische onmogelijkheid. De adressen worden niet opgeslagen in een vorm die met een sleutel kan worden ontgrendeld. Ze zonken in de Zee.

Bedreigingsmodel

โ›จ Wat de server weet (Jack)

Laten we eerlijk zijn over vertrouwensgrenzen. Je raakt een API. De server is een machine en machines kunnen in beslag worden genomen. Dit is precies wat een aanvaller krijgt als hij de box roott:

BEDREIGINGSMODEL: "Ze hebben root op de Explorer"
transacties.json Privรฉ TX van/tot/bedrag = nul Kosten = alleen op bucketniveau (micro/laag/standaard/hoog/prem) Tijdstempel = fuzzed ยฑ120s Blokhoogte = nul โ†’ Oordeel: nutteloos adressen.json Privรฉadressen = cryptografische verplichtingen in รฉรฉn richting Onomkeerbaar. Geen enkele sleutel kan ze herstellen. Er bestaat geen openbaarmakingseindpunt om ze te onthullen. โ†’ Oordeel: ondoorzichtige hashes, geen adressen โ€“ ooit privacy_proofs.json Opgeslagen als SHA256 (proof_key) - hash van de sleutel Sleutel is afgeleid van het quantum Kyber-768-rooster. Niet herstelbaar. Bewijzen decoderen ALLEEN BEDRAG - nooit adressen. Proefsleutels verlopen na 30 minuten. Gegenereerd door het SynX-knooppunt - nooit door client of verkenner. โ†’ Oordeel: verlopen hashes, rekenkundig nutteloos voor aanvallers API-reacties 500 ms constant plafond bij elke oproep (timing orakel dood) "Niet gevonden" == "privรฉ" (identieke antwoordvorm) Geen cookies. Geen sessies. Geen JS-vingerafdrukken. Er bestaat geen eindpunt om de afzender/ontvanger bekend te maken. โ†’ Oordeel: timinganalyse geneutraliseerd, nul roosterlekken, nul adreslekken Adressen van afzender/ontvanger Nooit opgeslagen in leesbare tekst. Nooit geretourneerd door een eindpunt. Geen weergave van belangrijke openbaarmaking. Geen auditeindpunt. Geen uitweg. De API heeft geen mechanisme om te onthullen wie heeft verzonden of ontvangen. โ†’ Oordeel: adressen zijn permanent verdronken

Het eerlijke voorbehoud: Tijdens daemon-synchronisatie ziet de scanner kort onbewerkte adressen voordat deze worden gehasht en de originelen worden weggegooid. Dit is hetzelfde vertrouwensmodel als het externe knooppunt van Monero: de daemon verzendt leesbare tekst naar de scanner. Wat wij garanderen: opgeslagen gegevens en API-reacties lekken nooit onbewerkte adressen of bedragen. Er is geen API-eindpunt dat adressen retourneert โ€“ niet met een view-sleutel, niet met een proof-sleutel, nooit. De hashing is onmiddellijk. Het raam is microseconden. Een knipoog, geen lek.

De timing wordt verzacht. Elke afzonderlijke API-reactie โ€“ GET, POST, succes, mislukking, 404, alles โ€“ is opgevuld tot een 500 ms constant plafond. De server meet de werkelijke verwerkingstijd en slaapt vervolgens precies 500ms - elapsed. Elke reactie duurt precies 500 ms. Niet willekeurig. Constante. Cohen's d tussen geldige en ongeldige paden: 0.015 (getest door GhostReaper โ€“ statistisch onzichtbaar). Het timing-orakel-speelboek van Chainalysis? Dood bij aankomst.

Architectuur

๐ŸŒŠ De Synergy Sea โ€” Twee dieptelagen

Beschouw de keten als een oceaan. Publieke transacties drijven aan de oppervlakte. Privรฉ zinkt. Hoe dieper je gaat, hoe meer je bewijssleutels nodig hebt om iets te zien. En zelfs op maximale diepte kan alleen de hoeveelheid oppervlakken - adresseert nooit.

T H E S Y N E R G Y S E A
OPPERVLAKTE โ€” iedereen kan het zien ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TX-hashes โœ“ Bestaan โ€‹โ€‹โœ“ Fuzzy-tijd ยฑ120s Kostenniveau โœ“ Confs โœ“ Adressen: LEEGTE Hoeveelheid: LEEGTE Blok: LEEGTE DEEP - proof sleutelhouders (SynX Node kwantumverzegelde sleutels) โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“ โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“ Betaling geverifieerd โœ“ Exacte hoeveelheid โœ“ (gedecodeerd uit kwantumroosterafdichting) Tijdvenster ยฑ120s โœ“ Adressen: VOID โ€“ geen enkel eindpunt onthult ze. Ooit. Blok hoogte: LEEGTE Proefsleutel verloopt binnen 30 minuten: verifieer snel. Bewijs gedeeld buiten de keten: PGP, Signal, Tor, dead drop. Kyber-768 + SPHINCS+ + Argon2id afgedicht Het bedrag is het enige dat naar boven komt. Al het andere blijft verdrinken.
DiepteWie zietWat lektBewaker
OPPERVLAKIedereenHash, bestaan, vage tijd, vergoedingsniveau, confsCryptografische verplichtingen
DIEPBewijs sleutelhouderBoven + exacte hoeveelheid (gedecodeerd uit kwantumroosterafdichting) + tijdvensterKyber-768 kwantumroosterversleuteling, AES-256-GCM

Er bestaat geen diepere laag. Er is geen openbaarmaking van de sleutel, geen adrescontrole, geen mechanisme om te onthullen wie heeft verzonden of ontvangen. De proefsleutel โ€“ gegenereerd door het SynX-knooppunt met behulp van quantum Kyber-768-codering โ€“ decodeert het exacte bedrag. Dat is het diepste dat iemand kan gaan. Afzender- en ontvangeradressen zijn permanent verdronken in de zee.

Anticorrelatiepantser: Tijdstempels zijn ยฑ120s wazig. Kosten onderverdeeld in 5 niveaus (micro/laag/standaard/hoog/premium โ€“ nooit het ruwe sat-bedrag). Blokhoogten zijn nul. Reactietijden opgevuld tot een constant plafond van 500 ms. "TX niet gevonden" en "TX is privรฉ" retourneren de identieke vorm. Bewijssleutels verlopen over 30 minuten โ€” beperking van de herhalingsvensters tot bijna nul. Je kunt niet eens opsommen welke hashes echt zijn. Elke oppervlaktequery retourneert dezelfde hoeveelheid informatie, ongeacht of de TX bestaat, niet bestaat of is afgeschermd. Veel succes, Chainanalyse.

Snelstart

โ€”อŸอŸอžอžโ˜… Leveranciersbestendige verificatie โ€” 3 minuten, nul vertrouwen

Je bent een verkoper. Een koper heeft u zojuist betaald in privรฉ SynX. U moet de betaling verifiรซren zonder hun adres of saldo te zien of een derde partij te vertrouwen. Hier is hoe. Geen KYC. Geen voogdij. Bewijs betalingen blind.

Hoe proefsleutels werken: Wanneer een koper privรฉ-SynX verzendt, wordt de SynX-knooppunt genereert automatisch een kwantumverzegelde bewijssleutel met behulp van Kyber-768-roosterversleuteling. Deze proefsleutel is een puzzelsleutel; het is het enige dat het transactiebedrag kan decoderen. De sleutel is wiskundig onvervalst: zonder de interne kwantumroosterparameters van het knooppunt kan geen enkele aanvaller โ€“ klassiek of kwantum โ€“ er een fabriceren. De Node stuurt de proefsleutel terug naar de portemonnee van de afzender. De afzender deelt het met u buiten de keten. Je plugt hem in de API. Bedrag geverifieerd. Er zijn geen adressen onthuld. Ooit.

1

Koper stuurt u tx_hash + proof_key (off-chain)

Na de privรฉverzending genereert de SynX Node automatisch de proefsleutel. De portemonnee van de koper ontvangt het en stuurt het naar jou, samen met de transactie-hash. Signaal, PGP, Tor-chat, geschreven op een servet โ€“ wat dan ook. Kanaal zonder metadata. De API ziet deze overdracht nooit.

# What the buyer sends you (encrypted channel only)
tx_hash:    "a1b2c3d4e5f6789012345678901234567890123456789012345678901234abcd"
proof_key:  "PT-f7e8d9c0b1a23456789012345678901234567890123456789012345678901234"

Tijdsbestek van 30 minuten: Bewijssleutels verlopen over 30 minuten vanaf generatie. De koper dient de proefsleutel onmiddellijk na verzending te delen. U dient dit onmiddellijk na ontvangst te verifiรซren. Dit krappe venster elimineert replay-aanvallen op de lange termijn; de sleutel is van tijdelijke aard. Als het verloopt, kan de afzender een nieuw exemplaar aanvragen bij het SynX-knooppunt.

PT-voorvoegsel: Alle proefsleutels beginnen met PT- โ€” voorkomt plakfouten (u plakt nooit per ongeluk een TX-hash in een proefveld of andersom). De API accepteert beide PT-f7e8... en rauw f7e8... โ€” de server verwijdert het voorvoegsel automatisch. Beide formaten werken.

Ingangslimieten โ€” streng afgedwongen: tx_hash moet zijn precies 64 hexadecimale tekens [a-fA-F0-9]{64}. proof_token maximaal 67 tekens (PT-voorvoegsel + 64 hex). Alles buiten deze grenzen โ†’ direct 400 Bad Request. De API weigert te grote invoer voordat er enige verwerking plaatsvindt. Stuur geen hash van 200 tekens in de hoop dat deze wordt bijgesneden. Dat zal niet gebeuren. Het wordt laten vallen.

2

Raak รฉรฉn eindpunt โ€“ de wiskunde doet het woord

# 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..."
3

Lees het orakel

{
  "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 โ€” betaling bevestigd. Je kent de exacte hoeveelheid (gedecodeerd uit de kwantumroosterafdichting) en de currency. Je kent de afzender, ontvanger of blokkering niet. Niemand doet dat. Niet wij. Niet de server. Geen enkele dagvaarding. Er bestaat geen API-eindpunt om adressen te onthullen โ€“ niet met een weergavesleutel, niet met een proefsleutel, nooit. De sleutel ontgrendelde het bedrag en niets anders. Het zonk in de Zee.

Veldnamen zijn belangrijk: Het eenvoudige eindpunt keert terug "amount" (niet "amount_decoded"). Het Runic Envelope-eindpunt keert terug "amount_decoded". Controleer welk eindpunt u bereikt en lees het juiste veld. Beide eindpunten keren terug "valid": true/false.

Dat is het. Drie stappen. Eรฉn POST. Nul accounts, nul API-sleutels, nul KYC. De bewijssleutel is de auth. Quantum Kyber-768-codering is de rechter. Verzend de goederen.

Vuur-en-vergeet: De SynX Node genereert automatisch de proefsleutel en stuurt deze onmiddellijk naar de verkenner nadat de transactie is verzonden. Dit is een achtergrondproces: als de push mislukt (netwerkstoring, server uitgevallen), slaagt de verzending nog steeds. De bewijssleutel wordt gegenereerd door de interne kwantumroosterparameters van het knooppunt. De registratie gebeurt naar beste vermogen. De verzendstroom blokkeert nooit de beschikbaarheid van API.

๐–ฃ Volledige verificatieritueel

๐–ฃAFZENDERSynX NODE + ZEE๐–ฃ ONTVANGER
โ‘  Privรฉ verzenden (portemonnee)
Kyber-768 ingekapseld
SPHINCS+ ondertekend
โ‘ก SynX-knooppunt genereert
kwantumverzegelde proof-sleutel
Kyber-768-roostercodering
onvervalsbaar โ€” vervalt 30 minuten
โ‘ข Portemonnee ontvangt proefsleutel
PT- voorafgegaan
(sleutel รฉรฉn keer teruggegeven โ€“ bewaar deze)
โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ‘ฃ Deel een beveiligde sleutel buiten de keten
Signaal / PGP / Tor-bericht
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ–บ


(nul metadatapad)


โ•โ•โ–บ
โ‘ค Controleer de afdichting
POST /verify_proof.php
โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ† {"geldig":true,"amount":183,00"}
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ
โœ“ BETAALD. VERZENDEN HET.

Stap โ‘ฃ is de kritische schakel. De proefsleutel moet zender โ†’ ontvanger door een kanaal sturen dat de API nooit ziet. Signaleer verdwijnende berichten. PGP-gecodeerde e-mail. Tor verborgen dienst. Een QR-code weergegeven op een tafel. Een briefje geplakt onder een bankje in het park. Het maakt de API niet uit hoe het geheim daar terechtkomt; hij verifieert de wiskunde alleen als de ontvanger erom vraagt.

De klok tikt. Bewijssleutels verlopen over 30 minuten. Deel onmiddellijk. Verifieer onmiddellijk. Door hun ontwerp zijn proefsleutels kortstondige puzzelsleutels en geen inloggegevens met een lange levensduur. Dit krappe venster betekent dat zelfs als een sleutel wordt onderschept, het venster van de aanvaller om deze te gebruiken microscopisch klein is. Na 30 minuten is de sleutel cryptografisch stof.

Eindpuntreferentie

POST /verify_proof โ€” Verifieer een proefsleutel (aanbevolen)

NA KRIJGEN OPENBAAR โ€” De eenvoudigste manier om een โ€‹โ€‹betaling te verifiรซren. Versturen tx_hash + proof_key in het lichaam (of als GET-params). Retourneert het exacte bedrag. Geen autorisatie Geen API-sleutel. Geen rekening. Begin hier.

NA/explorer/API/verify_proof.php
KRIJGEN/explorer/API/verify_proof.php?tx_hash={hash}&proof_key={sleutel}
// 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...\"}"
  }
}

Dit is het eindpunt om mee te beginnen. Het is de eenvoudigste en meest betrouwbare manier om een โ€‹โ€‹betaling te verifiรซren. Eรฉn POST met twee velden โ†’ exact bedrag. Het runenenvelop-eindpunt hieronder (/rune-verify) retourneert rijkere metagegevens (tijdstempelbereiken, aftelling van de vervaldatum) maar vereist de TX-hash in het URL-pad. Gebruik verify_proof.php tenzij je specifiek de extra velden nodig hebt.

Volledige foutreferentie โ€” verificatie_proof.php

HTTPerror veldWat ging er mis?Repareren
400Missing required parameters: tx_hash and proof_keyLeeg lichaam of ontbrekende veldenStuur beide tx_hash En proof_key in JSON, formuliergegevens of queryparameters
400Invalid tx_hash formatGeen 64 hexadecimale tekensMoet precies 64 hexadecimale tekens bevatten [a-fA-F0-9]{64}
400Invalid proof_key formatGeen 64 hexadecimale tekens (na het strippen van PT-)64 hex, met of zonder PT- voorvoegsel
400tx_hash exceeds maximum length (64 chars)Invoer te lang: hard cap afgedwongenStuur geen te grote invoer in de hoop dat deze wordt bijgesneden. Dat zullen ze niet doen.
400proof_key exceeds maximum length (67 chars)Invoer te lang: hard cap afgedwongenMaximaal 67 tekens: PT- + 64 zeskant
429Rate limit exceeded โ€” maximum 30 verification requests per minuteZee verstikteGa achteruit. Cacheresultaten aan de clientzijde: een geverifieerd zegel verandert niet.
503Verification service temporarily unavailableDaemon wordt gesynchroniseerd of opnieuw opgestartProbeer het over enkele ogenblikken opnieuw. Het SynX-knooppunt is mogelijk bezig met een inhaalslag.
200Proof key does not match this transactionVerkeerde sleutel voor deze TXControleer nogmaals of u de juiste heeft proof_key van de afzender

Foutreacties omvatten altijd hint. De hint veld geeft ontwikkelaarsvriendelijke richtlijnen over wat u kunt oplossen. Parseren valid eerst (altijd aanwezig), daarna controleren error + hint op falen. Over succes, lees amount En currency.

POST /privacy/tx/{hash}/rune-verify โ€” Runenenvelop (rijke metadata)

NA OPENBAAR โ€” Zelfde bewijssleutelverificatie met rijkere metadata: tijdstempelvenster (ยฑ120s vaag), aftelling van de vervaldatum, decoderingsmethode. Gebruik dit als u meer nodig heeft dan alleen de hoeveelheid.

NA/explorer/API/privacy/tx/{hash}/rune-verify

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" }

Belangrijk verschil met verificatie_proof.php: Dit eindpunt keert terug amount_decoded (niet amount), reason bij falen (niet error + hint), en omvat timestamp_range, expires_in_minutes, rune_lattice. De TX-hash komt in het URL-pad terecht, niet in de JSON-body. Kies het eindpunt dat bij uw behoeften past; beide verifiรซren dezelfde bewijssleutel.

Wat de verificateur leert versus wat onder water blijft

GegevenspuntOnthuld?Waarom
Betaling is gebeurdvalid: true
TX in de ketenconfirmed: true
Tijdvensterยฑ120s vaag โ€” niet exact
Exact bedragGedecodeerd uit kwantumroosterafdichting via proefsleutel - geen bereik, het echte getal
Afzender adresVerdronken in de zee
Ontvanger adresVerdronken in de zee
Blok hoogtenull voor alle privรฉ-TX's

Kwantumroosterdecodering: De proefsleutel wordt gegenereerd door het SynX-knooppunt met behulp van Kyber-768-roosterversleuteling โ€“ dezelfde post-kwantumstandaard (FIPS 203) waarop de hele keten is gebouwd. De sleutel is wiskundig gebonden aan het exacte bedrag van de transactie. Verkeerde sleutel? De decodering mislukt volledig: geen gedeeltelijke informatie, geen zijkanaallekken. De roostercodering is opgevuld tot een vaste lengte: een transactie van 0,01 SynX en een transactie van 77.000.000 SynX produceren verzegelde roosters van identieke grootte. De omvang van de hoeveelheid is onzichtbaar zonder de sleutel.

Bewijzen vervallen na 30 minuten. Na het verlopen keert de server terug "reason": "Runic proof has expired". Deze krappe periode geeft ontvangers voldoende tijd om te verifiรซren, terwijl het risico op herhaling op de lange termijn wordt geรซlimineerd. Als het venster sluit, kan de portemonnee van de afzender een nieuwe proefsleutel aanvragen bij het SynX-knooppunt (tot de limiet per TX).

GET /privacy/tx/{hash}/verify โ€” Bestaan โ€‹โ€‹Oracle

KRIJGEN OPENBAAR โ€” Bestaat deze TX? Retourneert een cryptografisch bestaanstoezegging. Onthult niets anders.

KRIJGEN/explorer/API/privacy/tx/{hash}/verify
{
  "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} โ€” Zoeken naar schaduwtransacties

KRIJGEN OPENBAAR - Zoek een TX op. Privรฉ-exemplaren geven de schaduw terug โ€“ hash zichtbaar, al het andere null.

KRIJGEN/explorer/API/privacy/tx/{hash}
// 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
}

Anti-telling afdeling: Een hash opvragen die niet bestaat? Jij krijgt {"status":"not_found_or_private","transaction":null,"message":"Transaction not found or may be shielded"} โ€” identieke antwoordvorm naar een privรฉ-TX (dezelfde sleutels, dezelfde structuur). Chainalysis, Elliptic, CipherTrace: ze weten niet eens welke hashes echt zijn. Dat is geen bug. Dat is de architectuur.

GET /privacy/recent โ€” Surface Ripples

KRIJGEN/explorer/API/privacy/recent?limit=20

Recente TX's. Privรฉvelden verschijnen als schaduwen (nulvelden). Publieke data tonen transparante data. Goed voor dashboards. Vraagparam limit (1-50, standaard 20).

GET /privacy/stats - Zeedieptemetingen

KRIJGEN/explorer/API/privacy/stats

Statistieken over privacy-acceptatie: totaal aantal TX's, privรฉ-TX's, adoptiepercentage, functievlaggen. Geen autorisatie vereist. Bewaak de diepte van de zee vanaf uw eigen infrastructuur.

POST /privacy/batch-proof - Verifieer meerdere proefdrukken in batch

NA OPENBAAR โ€” Verifieer tot 50 proefsleutels in รฉรฉn enkel verzoek. Dezelfde daemonverificatie als de single-proof eindpunten, maar in batches voor efficiรซntie. Ideaal voor marktplaatsen die meerdere bestellingen verwerken of portemonnees die meerdere inkomende betalingen tegelijk verifiรซren.

NA/explorer/API/privacy/batchbestendig
// 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
}

Batchlimieten en foutreferentie

BeperkingBeperkenFout bij overtreding
Max proefdrukken per batch50400 โ€” "Maximum 50 proofs per batch, got N"
Max. verzoektekst256 KB400 โ€” "Request body too large for batch endpoint"
Lege arrayMin. 1400 โ€” "Proofs array is empty"
Ongeldige tx_hash in item64 zeskantOvergeslagen โ€” {"valid":false,"reason":"Invalid tx_hash"} qua resultaten
Ongeldige proof_token in itemMaximaal 67 tekensOvergeslagen โ€” {"valid":false,"reason":"Invalid proof_token (max 67 chars, 64 hex)"}

Batch-gebruik amount_decoded (zoals de Runenenvelop), niet amount. Elk resultaat heeft een index veld dat overeenkomt met de positie van de invoerarray. Mislukte items laten de batch niet crashen, maar keren terug valid: false met een reason terwijl andere bewijzen doorgaan met verifiรซren. Het batcheindpunt deelt de privacy van API (basislijn van 100 vereisten/min + incrementele verboden).

DDoS-poort: Als uw gehashte IP-adres in de buurt van de zeegaslimiet ligt (60%+ van het budget van 100 req/min), weigert het batch-eindpunt alle daemon-RPC-aanroepen om versterking te voorkomen. Eรฉn batchverzoek van 50 bewijzen zou anders de daemon 50 keer raken. Je krijgt {"error": "Proof verification service temporarily unavailable"}. Ga terug en probeer het opnieuw.

Handelsambacht

๐Ÿง… Tor / .onion โ€” Leid alles door de mist

De API wel staatloze REST via HTTPS. Geen koekjes. Geen sessies. Geen JS-vingerafdruk. Geen WebSocket-upgrades. Puur verzoek โ†’ antwoord via TLS. Het werkt standaard via Tor omdat we het op die manier hebben gebouwd. Niet als bijzaak. Als je iets privรฉ aan het bouwen bent en dat ben je niet Als u via .onion routert, lekt u uw IP-adres naar elke DNS-resolver tussen u en de server. Niet doen.

.ui-status: De toegewijde synxexplorer.onion verborgen dienst is binnenkort beschikbaar. Onderstaande URL's gebruiken een tijdelijke aanduiding. Totdat de .onion live is, routeer je clearnet-verzoeken via Tor via torsocks of SOCKS5-proxy. Uw IP blijft hoe dan ook verborgen. We zullen dit document bijwerken zodra de verborgen service live gaat.

krul 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);

Waarom socks5h niet socks5? De h betekent dat DNS-resolutie ook via Tor plaatsvindt. Zonder dit ziet uw lokale DNS-resolver "synxexplorer.onion" - een metadatalek. Altijd socks5h. Altijd.

๐Ÿ“ก Deel proefsleutels via Signal - Geen metadata

De proefsleutel moet van zender naar ontvanger reizen zonder de API aan te raken. Hier is de OPSEC-hiรซrarchie voor die overdracht:

KanaalMetagegevens gelektUitspraak
Signaal (verdwijnende, verzegelde afzender)Telefoonnummer bekend bij Signal, berichtinhoud E2EEGOED voor de meeste bedreigingen
PGP via Tor-e-mail (ProtonMail/Tutanota)Metagegevens van e-mail (provider ziet van/tot/tijd), hoofdtekst E2EEGOED
Tor verborgen service direct berichtNiets. Beide partijen achter .onion.BEST
Telegram (zelfs "geheime chats")Telefoonnummer, cloudmetagegevens, Telegram heeft uw IPMEH
Onenigheid / Slack / E-mail (platte tekst)Alles. Voor altijd geregistreerd. Dagvaarding mogelijk.NO

Tijd is belangrijk: Proefsleutels verlopen na 30 minuten. Gebruik verdwijnende berichten ingesteld op 5 minuten of minder. De koper moet de proefsleutel onmiddellijk verzenden nadat de portemonnee de privรฉverzending heeft bevestigd. De verkoper dient onmiddellijk na ontvangst een verificatie uit te voeren. Kortstondige kanalen voor kortstondige sleutels.

Signaalintegratiehaak (Python-bot)

# 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...")

Het kanaal is niet het probleem van de API. Dat is het mooie. De API verifieert alleen proefsleutels en weet nooit hoe ze zijn gereisd. U kunt de sleutel op een bon afdrukken en deze aan de balie overhandigen. De wiskunde werkt nog steeds. De verificatie is staatloos. De sleutel verloopt na 30 minuten, ongeacht het kanaal.

โš“ Marktplaatsbetalingsritueel

Je bouwt een soevereine marktplaats. Geen streep. Geen PayPal. Geen KYC-middleware. Alleen de Synergy Sea en kwantumverzegelde proof-sleutels. Zo verifieert u betalingen met exacte bedragen met alleen een proefsleutel - er zijn nooit adressen onthuld.

Bewijssleutels decoderen exacte bedragen - niets anders. De SynX Node genereert een kwantumverzegelde proof-sleutel met behulp van Kyber-768-roosterversleuteling die decodeert naar de exact betalingsbedrag โ€” geen adressen, geen blokhoogtes, geen informatie over afzender/ontvanger. Een 300 SynX-bestelling? De sleutel decodeert naar "300.00". Een betaling van 100 SynX? "100,00". Geen onduidelijkheid over het bedrag. Totale dubbelzinnigheid over identiteit. De sleutel verloopt na 30 minuten.

๐–ฃ KOPER UW SERVER Synergy Sea 1. Bestelling plaatsen โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ–บ Unieke order-ID genereren โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Betaalpagina (order_id + prijs) 2. Koper verzendt privรฉ-SynX via portemonnee (isPrivate=true) SynX-knooppunt genereert kwantumverzegelde proof-sleutel Kyber-768 encap โ†’ SPHINCS+ ondertekend โ†’ keten 3. Koper verzendt tx_hash + proof_key (off-chain) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ–บ Opslaan met order_id โš  Tijdsbestek van 30 minuten โ€” onmiddellijk verifiรซren 4. Controleer het bestaan: KRIJG /tx/{hash}/verifieer โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ—„โ”€โ”€โ”€ {"bestaat": waar} 5. Decodeer het exacte bedrag met de proefsleutel: POST /verify_proof.php โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ—„โ”€โ”€โ”€ {"bedrag":300,00"} 6. Vergelijk het gedecodeerde bedrag >= totaal van de bestelling โœ“ MARK BESTELLING: OVERHEDEN BETAALD โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Verzend het / ontgrendel het Totaal API-oproepen: 2 (bestaan โ€‹โ€‹+ verificatie_proof) Gegevens gelekt naar API: 0 adressen โ€“ ooit Exact bedrag geverifieerd: JA (via SynX Node kwantumbestendige sleutel) Afzender/ontvanger onthuld: NOOIT KYC vereist: geen. voor altijd. Proefsleutelvenster: 30 minuten (vergankelijk door ontwerp)
# 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

Alleen op basis van ontwerp. De bewijssleutel decodeert de kwantumroosterafdichting in de exacte hoeveelheid โ€“ en dat is het alle dat doet het. Er is geen eindpunt, geen weergavesleutel, geen mechanisme in deze API om afzender- of ontvangeradressen te onthullen. De marktplaats ziet dat "300,00 SynX is betaald" - nooit WHO betaald of van waar. Dat is het privacycontract. Het is permanent.

โœ—โˆ‘๐Ÿ—ก Code Grimoire - Elke taal, elk patroon

Python โ€” Verifieer een bewijssleutel

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 โ€” Betalingsverificatie (Express Middleware)

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 - Compleet spiekbriefje

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..."}'
De koude wiskunde

โš” SynergyX versus Monero โ€“ de eerlijke vergelijking

Monero was een pionier. Ringhandtekeningen, RingCT, stealth-adressen โ€“ allemaal briljant. Maar ze zijn gebouwd voor een pre-kwantumwereld waarin Ed25519 onbreekbaar was en de exacte tijdstempels op een ontdekkingsreiziger 'prima' waren. Dat tijdperk loopt ten einde. Hier staan โ€‹โ€‹de twee kettingen als je ze naast elkaar legt:

VermogenMonero (XMR)SynergyX (SynX)
Betalingsbewijzencheck_tx_proof (lekken adressen)POST /verify_proof.php (alleen bedrag)
Adres openbaarmaking in bewijzenโŒ adressen zichtbaar in proefdrukGEEN adressen - nooit
Bedragen verborgen (verkenner)โœ… RingCTnull in alle winkels + kwantumbestendige sleutels
Bedrag in bewijsโŒ exact bedrag + adressen zichtbaarExacte hoeveelheid gedecodeerd, nul adressen
Bewijs vervaldatumโŒ bewijzen leven voor altijdTijdsbestek van 30 minuten โ€“ kortstondig van opzet
Bewijs genererenClient-side (aanvallers kunnen reverse-engineeren)SynX-knooppunt (kwantum Kyber-768 - onvervalsbaar)
TijdstempelprivacyโŒ exact tot op de secondeยฑ120s wazig
Vergoeding privacyโŒ exacte sat/byte zichtbaarEmmers met 5 niveaus
Blokhoogte verborgenโŒ zichtbaar in verkennernull voor privรฉ-TX's
Anti-timing orakelโŒ geen API-jitter500 ms constant plafond
Niet van elkaar te onderscheiden 404'sโŒ andere vormnot_found == privรฉ
Post-kwantum handtekeningenโŒ Ed25519 (kort dood)SPHINCS+-SHAKE256-128f
Post-kwantumsleuteluitwisselingโŒ x25519 (kort dood)Kyber-768 (FIPS 203)
Versleuteling van portemonneeschijfChaCha20Argon2id (2GB, 4 passen)
Tor-native APIโœ… RPCโœ… Staatloze RUST
Kwantummigratie nodig?JA - totaal herschrevenOp deze manier geboren. Genesis blok.

Als je in 2026 nog steeds Monero gebruikt, ben je al dood: je hebt het gewoon niet gemerkt.

Jouw ringhandtekeningen? Chainalysis clustert ze als vee. Exacte tijdstempels? De NSA geeft een tijdstempel aan uw koffie. Ed25519? Shor komt eraan: je sleutels zijn stof. Bewijs genereren aan de clientzijde? Decompileer de portemonnee en vervals de hele dag proefdrukken. Dat is archeologie, geen veiligheid.

SynergyX-proefsleutels worden gegenereerd door de SynX-knooppunt met behulp van quantum Kyber-768-roosterversleuteling. De generatiemethode is verzegeld in de kern van het knooppunt: geen enkele client, geen decompiler, geen aanvaller heeft toegang tot de interne kwantumroosterparameters. Zelfs een geavanceerde tegenstander die de portemonnee volledig decompileert, krijgt niets: de portemonnee ontvangt de bewijssleutel van het knooppunt. Het genereert het niet. Het geheim verlaat de Node nooit.

Schaduwtransacties: afzender, ontvanger, bedrag, blok: null. Niet versluierd. Gewist.

Kwantumbestendige sleutels: Kyber-768-puzzelsleutels met traliewerk: bewijs het exacte aantal zonder te lekken wie heeft verzonden, wie heeft ontvangen, wanneer (ยฑ 120s fuzz) of waar. De sleutel decodeert exacte bedragen: 183,00, niet "medium". Geen adressen in het bewijs. Geen adressen in de API. Nergens adressen. Verloopt over 30 minuten.

Geen adres openbaarmaking: Er is geen weergavesleuteleindpunt. Geen auditeindpunt. Geen mechanisme om afzender of ontvanger te onthullen via deze API. Het bedrag is het enige dat naar boven komt. Identiteit blijft verdrinken โ€“ permanent.

Post-kwantum: Kyber-768, SPHINCS+, SHAKE256 - Shor kan je genesisblok kussen. Geen routekaart. Geen "later zal quantum sigs toevoegen." We zijn immuun geboren.

Wil je privacy? Stop met bedelen om restjes. Met Synergy krijg je kwantumstealth en snelheid in de zee van schaduwen. Neem het mes.

De kwantumolifant: De Ed25519-sleutels van Monero zijn Shor-kwetsbaar. Hun โ€˜migratieplanโ€™ houdt in dat elke portemonnee de sleutels opnieuw afleidt onder een nieuw schema โ€“ terwijl de keten live is, terwijl fondsen in gevaar zijn, terwijl de tijdlijn onbekend is. SynergyX heeft geen migratieplan omdat er niets is om van te migreren. Kyber-768 + SPHINCS+ vanaf blok nul. Als de Shor wakker wordt, geeft deze ketting geen krimp. Oude ketens brokkelen af. Dat is het verschil tussen 'we repareren het later' en 'we repareren het eerst'.

Foutcodes

Twee eindpunten, twee foutvormen. verify_proof.php retourneert "error" + "hint" velden. De Runenenvelop (/rune-verify) retourneert "reason". Beide altijd inclusief "valid": false. Parseren valid Controleer eerst het foutveld dat overeenkomt met uw eindpunt.

verificatie_proof.php โ€” HTTP-statuscodes

CodeBetekenisReactie omvat
200Succes โ€“ proefsleutel geverifieerd, exact bedrag gedecodeerdvalid, tx_hash, amount, currency, confirmed_at, message
200Ongeldig bewijs: verkeerde sleutel voor deze TX (geen HTTP-fout)valid: false, tx_hash, error, hint
400Slecht verzoek: ontbrekende velden, onjuist opgemaakte hash, ongeldig formaat, te grote invoervalid: false, error, hint, soms example
429Zee gesmoord โ€” 30 vereist/min per IP-adres. Ga terug en cache de resultaten.valid: false, error, hint
503SynX-knooppunt niet beschikbaar: daemon wordt gesynchroniseerd of opnieuw opgestart. Probeer het over enkele ogenblikken opnieuw.valid: false, error, hint

Runenenvelop (/rune-verify) โ€” HTTP-statuscodes

CodeBetekenis
200Succes โ€“ proof-sleutel geverifieerd, hoeveelheid gedecodeerd met rijke metadata
200Ongeldig bewijs โ€” "reason": "Proof token does not match any registered runic proof"
200Verlopen - "reason": "Runic proof has expired"
404TX niet gevonden or TX is privรฉ (je weet nooit welke - door het ontwerp)
429Zeebeperking: oplopende verbodsniveaus (100 โ†’ gas, 500 โ†’ 5 minuten verbod, 1500 โ†’ 1 uur verbod)
500Interne storing โ€” controleer serverlogboeken

429 Zeegaspedaal - Reactielichaam

Alle 429 antwoorden (beide eindpunten) omvatten: Retry-After HTTP-header (RFC 7231) en een gestructureerde JSON-body met laaginformatie:

// 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."
}

Parseren retry_after of de Retry-After koptekst โ€” beide geven dezelfde waarde in seconden. De throttle_tier veld vertelt u welk escalatieniveau u heeft bereikt. Als je het ziet "active_ban", je bent al geรซscaleerd โ€” de message vertelt je hoe lang je verdrinkt. verify_proof.php heeft zijn eigen eenvoudigere snelheidsbegrenzer van 30 req/min die een duidelijke foutmelding retourneert zonder niveau-informatie.

Invoerformaten (beide eindpunten): TX-hash = precies 64 hexadecimale tekens [a-fA-F0-9]{64}. Proefsleutel = max. 67 tekens (met PT- voorvoegsel) of precies 64 hex (onbewerkt). De API accepteert beide formaten: serverstrips PT- automatisch. verify_proof.php accepteert de veldnaam proof_key or proof_token (alias). Alles buiten deze grenzen krijgt een harde 400. Er wordt niet bijgesneden. Geen genade.

Snelheidslimieten verschillen per eindpunt. verify_proof.php dwingt af 30 vereist/min per IP-adres. De Runic Envelope maakt gebruik van de privacy API's zeegas: 100 vereist/min basislijn met incrementele escalatie van het verbod (500 โ†’ 5 min, 1500 โ†’ 1 uur). Cacheproof resultaten aan de clientzijde gedurende een periode van 30 minuten: een geverifieerd zegel verandert niet wanneer het actief is. Eenmaal valid: true, het bedrag is het bedrag.

Beveiligingsreferentie voor ontwikkelaars

๐Ÿ•ณ Zero Metadata-garanties: wat ontwikkelaars moeten weten

Als u deze API integreert, is hier het harde bewijs daarvan geen metadatalekken. Elke claim hieronder is door GhostReaper gecontroleerd (meer dan 100 aanvalsvectoren, 0 niet-gepatchte bevindingen).

Beveiligingseigenschappen โ€” Controlelijst voor ontwikkelaars

EigendomGarantieHoe
Bewijssleutels onvervalsbaarGegenereerd door SynX Node met behulp van quantum Kyber-768-roosterversleuteling. Interne parameters verlaten het knooppuntproces nooit. Kan niet worden vervalst, zelfs niet door de portemonnee te decompileren.
Bewijssleutels zijn kortstondigElke proefsleutel vervalt over 30 minuten. Na het verstrijken van de geldigheidsduur wordt de verzegeling definitief verbroken. Geen "forever tokens" - minimaliseert het risico op herhaling en onderschepping.
Bedrag nooit op de draadServer slaat kwantumverzegelde roostercodering op. Ruw bedrag dat nooit in leesbare tekst is verzonden, ontvangen of opgeslagen. Alleen de proefsleutel kan het decoderen.
Roostergrootte = constantAlle roosterafdichtingen zijn opgevuld tot een vaste lengte. Een 0,01 SynX TX en een 777.000.000 SynX TX produceren afdichtingen van identiek formaat. De omvang van de hoeveelheid is onzichtbaar.
Timingorakel dood500 ms constant plafond voor elke reactie. Cohen's d = 0,015 tussen geldige/ongeldige paden (GhostReaper bevestigd). Statistisch onzichtbaar.
Bewijssleutel nooit onbewerkt opgeslagenServerwinkels SHA256(proof_key) alleen. Als DB lekt โ†’ hashes + afgedichte roosterruis. Computationeel nutteloos zonder de sleutel.
Afzender/ontvanger heeft nooit verzondenEr bestaat geen eindpunt dat adressen accepteert of retourneert. Geen weergavesleutels. Geen identiteitsgegevens. Architectuur met alleen bedragen.
Geen antwoorddifferentiatie"TX niet gevonden" en "TX is privรฉ" retourneren identieke antwoordvormen. Geen informatielek.
Zeegas geldt onder gelijktijdigheidOp bestanden gebaseerde zeegasbegrenzer met LOCK_EX serialisatie. 200 gelijktijdige verzoeken โ†’ 0 zijn doorgekomen (GhostReaper). TOCTOU-venster is gesloten. Oplopende banniveaus (500 โ†’ 5 min, 1500 โ†’ 1 uur) escaleren zelfs tijdens actieve bans โ€“ de teller stopt nooit. Boven de 60% van het budget worden daemon-RPC-aanroepen geweigerd om DDoS-versterking te voorkomen. IP's opgeslagen als SHA-256-hashes.

Wat u MOET doen als integrator

1. Log nooit proefsleutels in. De bewijssleutel is de puzzelsleutel voor het bedrag. Als uw applicatie dit registreert, heeft u het privacymodel geschonden. Behandel het als een privรฉsleutel.
2. PT-voorvoegsel geaccepteerd, maar valideer uw invoer. De API accepteert beide PT-f7e8... en rauw f7e8... formaten โ€” de server verwijdert het automatisch. Maar tx_hash moet precies 64 hexadecimale tekens bevatten en proof_token maximaal 67 tekens. Extra grote ingangen krijgen een harde 400.
3. Verifieer binnen 30 minuten. Bewijssleutels verlopen. Zorg ervoor dat uw verificatiestroom onmiddellijk is, en niet dat er batchverwerking op de volgende dag plaatsvindt.
4. Deel proefsleutels alleen via kanalen zonder metadata. Signaal (verdwijnt), PGP via Tor, .onion DM's. Nooit onenigheid. Nooit slap. E-mail nooit zonder PGP.
5. Cache-geverifieerde bewijzen aan de clientzijde. Eenmaal "valid": true, sla het resultaat op. Verifieer niet opnieuw: u lekt timingpatronen en de sleutel kan tussen controles verlopen.
6. Implementeer nginx-verharding in de productie. De API wordt geleverd met nginx_privacy_hardening.conf โ€” Time-outs van 5 s, 20 conn/IP, 100 req/min zeegasbeperking, blokkering van paddoorgang. Actieve langzame loris-verdediging.

Het Manifest

๐–ฃ Codeer het. Test het. Bezit het donker.

Slechts รฉรฉn hoofdnet vandaag. Geen voorverkoop. Geen VC-dump. Geen toewijzing van influencers. Geen stichtingskas waar 6 mensen 40% van het aanbod controleren. Geen persberichten over 'strategisch partnerschap'. Gewoon een ketting, een gemeenschap en wiskunde die niet buigt.

Je hebt nu alles. Zes eindpunten. Echte code. Tor-routering. Signaal haken. Een dreigingsmodel dat eerlijk is over wat lekt en wat niet. Quantum Kyber-768-proof sleutels gegenereerd door de SynX Node - onvervalste puzzelsleutels die exacte hoeveelheden decoderen en niets anders. Geen adresopenbaarmaking โ€“ niet met een weergavesleutel, niet met een proefsleutel, nooit. Tijdstempelfuzzing die timinganalyse statistisch betekenisloos maakt. En daaronder bevindt zich een roostercryptografie die elke bekende kwantumaanval overleeft โ€“ niet omdat we zijn gemigreerd, maar omdat we daar zijn begonnen.

We maken nooit de afzender of ontvanger bekend, omdat privacy en open source meestal niet samengaan โ€“ het is alsof je olie in de zee mengt. We hebben synergie omdat we schaduwen laten verdwijnen en niet verstikt raken en vast komen te zitten door olie- of gaslekken (metadata). De zee absorbeert. De schaduwen lossen op. Het bedrag fluistert naar de proefsleutelhouder, en alleen naar hen. Al het andere is stilte. โ€” SynX PRIVACYDOCTRINE

De Synergy Sea is de post-kwantumoceaan waar schaduwen nooit aan de oppervlakte komen. Geen enkel datacenter kan koning zijn als SynergyX ze onttroont en de gebruiker op de troon zet. Elke privรฉtransactie zinkt weg in de Kyber-768-inkapseling, verzegeld door SPHINCS+-hypertrees, geรฏndexeerd door kwantumroosterverplichtingen. Bedragen fluisteren door proefsleutels โ€“ onzin voor waarnemers, exacte decimalen voor sleutelhouders. De ontdekkingsreiziger ziet rimpelingen. De API retourneert nul waar het er toe doet. De bewijssleutel is de enige rode draad naar het bedrag โ€“ en het bedrag is dat ook alle dat oppervlak. Afzender en ontvanger? Verdronken. Permanent. Geen eindpunt, geen sleutel, geen dagvaarding brengt ze terug.

Geen KYC. Geen voogdij. Geen ketenanalyse. Geen adres openbaarmaking. Geen centraal faalpunt. Geen migratieroutekaart omdat er niets is om van te migreren. First mover in het kwantumeindspel.

Dit is geen documentatie. Dit is een wapen. Gebruik het.



๐“ข๐”
Codeer het. Test het. Bezit de donkere getijden.

SynergyX Privacy API v2.0 โ€” Kwantumbestendige sleutels โ€” De Synergy Sea
De post-kwantumoceaan waar schaduwen nooit aan de oppervlakte komen.