0.3- Artifact
- report.json · application/json
- Source key
sha256:42c8…95b1- Scope
- Origin signature checked
7d2f 321b 6a3c 80ce 32bd 4e18 781f 02a9
Portable JSON · embedded signatures · independently pinned trust
Portable origin evidence · Core 0.3
An agent signs an artifact, an administrator delegates its key, and the issuer records its checks. Recipients verify the bundle without calling IFF.
IFF signatures record origin checks. Not a Hague Apostille; no legal effect.
0.3sha256:42c8…95b17d2f 321b 6a3c 80ce 32bd 4e18 781f 02a9
Portable JSON · embedded signatures · independently pinned trust
Binds the file digest, size, media type, agent ID and a fresh nonce.
Administrator delegation and agent acceptance are separate signatures with audience and expiry.
Pin the issuer and key from a source you trust; embedded keys and downloaded directories are not trust. Then compare the original locally.
Open-source pre-release · v0.4.0-alpha.1
Core 0.1, 0.2 and 0.3 under the MIT License. Use the Go module, install the CLI or download the browser verifier.
Downloads and installationCore 0.3 · Post-quantum signatures
The hosted service issues Core 0.3 certificates with ML-DSA-65. In Verify, select “Require post-quantum signatures” to reject Core 0.1 and 0.2 bundles, and supply issuer and key pins from an independent trusted source.
Historical Ed25519 signatures stay verifiable. This change covers signatures; it does not encrypt your files, prove their content true, or protect a stolen private key. SHA-256 remains unchanged.
Supply-chain evidence · API preview
Register signed release metadata for packages, container images and model files, then check policy before use. Files stay in your environment.
Availability is unconfirmed. Check service status first.
Sign the release manifest (Core 0.3), then register the certificate with a separate administrator authorization. Registered versions cannot be overwritten.
Choose issuer and producer key fingerprints independently. Verify signature and file bytes locally, then get the service's policy decision. Blocked, unknown or expired results fail.
Administrators can sign an irreversible withdrawal. Later policy checks block the release; installed files are not removed.
Signatures and policy checks do not prove a file is malware-free. The hosted decision is an operational snapshot, not an offline revocation proof; enforce the gate on the same bytes you checked. API only.
Explore the release API · Integration and local-check guide (English)
Apostille Local · alpha.2 source preview
Separate MIT-licensed project for your own Linux environment: Go gateway and Python SDK. It does not save prompts or responses by default.
Use the official OpenAI or Anthropic SDK against the supported Chat Completions and Messages subsets (text, streaming, structured output, application-handled tools). LangChain examples included.
An administrator enables the local model. No Claude weights or Anthropic cloud connection.
Read the integration guideOptionally sign workflow metadata; verify offline with independent key pins and a receiver policy. The Flower example uses synthetic federated-learning data.
Read the workflow evidence guide Explore the Flower exampleRecords show the signer and metadata integrity, not model execution or answer correctness. Not a validated pharmaceutical system.
Get the source and setup instructionsPublic HTTP alpha · 7 read-only tools
Anonymous, read-only HTTP: verifies bundle JSON and detached bindings on the hosted server and reads public issuer data. No account, keys or original files.
MCP capabilities and availabilityOptional profiles
Private · when the service enables it
Link an agent to an ERC-8004 token with administrator and EOA wallet consent; the signed owner record stays private.
How ERC-8004 binding worksExperimental · local Go SDK / CLI
Show another department that signed expenses stay within a limit; amounts stay with the source, public metadata is visible.
How ZK budget proofs workThe claim stays narrow
Planned identity evidence
Account verification evidence; not organization identity.
Registry entity status; not representative authority.
Credential-chain checks with explicit delegation.
Name reserved for a possible future integration; no check exists.
There is no complete activity recorder, public Merkle log, payment flow or automatic chain anchoring.
Single-administrator workspace
Keys and the access token live only in this tab's memory. Back up your key; reload requires importing it.
Generate a key or import a JSON backup. Nothing goes to browser storage.
Browser ML-DSA-65 uses the vendored @noble/post-quantum library: not independently audited, no constant-time signing claim. Use the CLI (Go standard library) for administrator keys.
An ML-DSA-65 administrator key opens its own workspace; Core 0.1 workspaces are not migrated.
This service does not list Core 0.3: ML-DSA-65 keys cannot sign in, register or submit here. Local signing and offline verification still work.
This service issues Core 0.3 (ML-DSA-65) only. Ed25519 keys still sign and verify locally; an existing Core 0.1 workspace is read-only.
Publishing exposes only the public ID, name and creation time, not keys or certificates.
The administrator delegates an agent key; the agent signs its acceptance. You can import an existing backup.
Browser ML-DSA-65 uses the vendored @noble/post-quantum library: not independently audited, no constant-time signing claim. Use the CLI (Go standard library) for administrator keys.
This service does not list Core 0.3: ML-DSA-65 keys cannot sign in, register or submit here. Local signing and offline verification still work.
Your EOA wallet consents to one read-only ownership check. The signed snapshot stays private and grants no payment authority.
Records the owner the issuer observed at one finalized block. Not current ownership, organization identity or payment authority.
Choose one original file; only its signed manifest is submitted. Public issuance exposes the bundle and signing keys.
No original selected.
Browser ML-DSA-65 uses the vendored @noble/post-quantum library: not independently audited, no constant-time signing claim. Use the CLI (Go standard library) for administrator keys.
This service does not list Core 0.3: ML-DSA-65 keys cannot sign in, register or submit here. Local signing and offline verification still work.
Local verifier
Everything stays in this browser; offline mode never fetches status or a key directory. Trust the issuer only through a pin you chose independently.
Supports Core 0.1, 0.2 and 0.3 bundles and ERC-8004 snapshots. ZK budget proofs need the local Go SDK or CLI.
Open draft protocol
Core 0.3 signs with ML-DSA-65 (FIPS 204); only its signatures are post-quantum. The hosted service issues Core 0.3 only. Core 0.1 (Ed25519) and 0.2 records stay verifiable; Core 0.2 is verify-only.
Public HTTP alpha · 7 read-only tools
Seven read-only tools over anonymous Streamable HTTP. Verification runs on the hosted server, so it is not independent client-side verification.
https://iff-mcp-api-production.up.railway.app/mcp/apostille
Send only bundle or detached-binding JSON and the issuer/key pins you chose. No accounts, private keys, original files, signing or mutation tools.
An unpublished internal stdio server can sign and submit with configured local key files.
Set key-file paths outside the model conversation; private keys are never tool arguments. File access stays within APOSTILLE_ARTIFACT_ROOT. Public visibility needs APOSTILLE_ALLOW_PUBLIC=true.
Supply exact issuer/key pins with each request; the service keeps no trust policy.
No ZK MCP tool; ZK budget proofs stay in the local Go SDK / CLI.
Private · when the service enables it
A private, detached binding links an agent to an ERC-8004 registry token and travels with the bundle. The hosted service issues binding 0.3 for Core 0.3 registrations; binding 0.1 records stay verifiable.
Records the owner the issuer observed at one finalized block. Not current ownership, organization identity or payment authority.
ERC-8004 binding profile 0.1English · specification ERC-8004 binding profile 0.3English · specificationExperimental · local Go SDK / CLI
The source department commits to an expense list and signs the public manifest. The receiver checks the committed total against its own limit.
The proof covers only the committed list, not data truth or completeness, current authorization or payment approval. Repeated limit queries can leak the total.
Experimental: the single-party development setup means a holder of the setup secrets could forge proofs. No production ceremony or external audit yet.
Install the released CLI and inspect its circuit before preparing a proof:
go install github.com/ifandonlyif-io/iff-apostille/cmd/[email protected]
apostille zk-circuit
Install the CLI, then verify with an independently chosen issuer and key pin. Flags: --protocol 0.1|0.2|0.3, keygen --algorithm ml-dsa-65, verify --accept-protocol.
go install github.com/ifandonlyif-io/iff-apostille/cmd/[email protected]
apostille verify --offline --bundle bundle.json \
--issuer https://issuer.example/apostille \
--key-id sha256:… --require-trustedAdd GOBIN (or GOPATH/bin) to PATH.
Open-source pre-release · v0.4.0-alpha.1
Use the offline verifier, install the Go SDK and CLI, or build the JavaScript SDK from source.
Supports Core 0.1, 0.2 and 0.3 bundles and ERC-8004 snapshots. ZK budget proofs need the local Go SDK or CLI.
ZIP · Core 0.1, 0.2, 0.3Download offline verifierGet the issuer URI and key fingerprint from an independent source.Module v0.4.0-alpha.1: Core 0.1, 0.2, 0.3 and the hosted API client. CLI v0.4.0-alpha.1: sign and verify local files. Requires Go 1.27; compiled locally, no prebuilt binaries.
go get github.com/ifandonlyif-io/[email protected]
go install github.com/ifandonlyif-io/iff-apostille/cmd/[email protected]
Add GOBIN (or GOPATH/bin) to PATH.
Release notes on GitHubBuild a local package from the SDK source in the public repository. No npm package is published.
JavaScript SDK source and packaging guideCore 0.1, 0.2 (verify-only) and 0.3 are implemented. The hosted service issues Core 0.3 only.
Issuer key directory
Compare fingerprints with a pin you obtained independently. Hosted issuer pins: HOSTED_KEYS.md in the public repository.
Loading current keys…
Public origin certificate
Loading certificate…
Public organization profile
This profile does not establish legal identity or representative authority.
Loading profile…