diff --git a/README.md b/README.md index 1cc6d9b..755d8c6 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ const full = await aere.proof('0x' + sha256Hex); // { block, txHash, finality // quantum readiness of a domain's public TLS edge (free, no key); attest:true notarizes the report digest on chain const scan = await aere.readiness('example.com'); // { score, verdict, summary, findings, … } const attested = await aere.readiness('example.com', { attest: true }); // + attestation: { reportHash, txHash, proof, … } +const fin = await aere.pqFinality('latest', 'testnet', 'both'); // AIP-21: { finality, agreement, postQuantumConfirmedByBoth, besu: {…}, nethermind: {…} } // pqVerify: pass interface:'external' to verify a standard FIPS 204/205 signature (the precompile implements the // internal interface; the gateway builds M' = 0x00 || len(ctx) || ctx || message for you) diff --git a/index.mjs b/index.mjs index 92280a7..f46284d 100644 --- a/index.mjs +++ b/index.mjs @@ -87,6 +87,13 @@ export class AereCloud { } readinessReport(domain) { return this._req('GET', `/pq/readiness/${encodeURIComponent(domain)}`, { auth: false }); } + // AIP-21 (2026-09-18): the per-block post-quantum finality record (seals heard by a validator, re-verified, quorum + // verdict). Free, no key. Testnet 28001 first; `network` is reserved for chain 2800 once the method reaches its validators. + // `client`: 'besu' (default), 'nethermind', or 'both' (two independent implementations, with `agreement` computed by the gateway). + pqFinality(block = 'latest', network = 'testnet', client = 'besu') { + return this._req('GET', `/pq/finality/${encodeURIComponent(block)}?network=${encodeURIComponent(network)}&client=${encodeURIComponent(client)}`, { auth: false }); + } + // audit log of every keyed request of this account for one UTC day (append-only, paged), with the day file's sha256 auditLog({ day, offset = 0, limit = 1000 } = {}) { const q = new URLSearchParams({ offset: String(offset), limit: String(limit) }); diff --git a/package.json b/package.json index aa4dd44..0fe451d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@aere/cloud", - "version": "1.2.0", + "version": "1.2.1", "description": "Official client for the Aere Cloud API: keyed RPC, post-quantum verification, chain data, notarization, webhooks and gas sponsorship on Aere Network (chain 2800).", "type": "module", "main": "index.mjs",