Privacy by Design
Sellat registers the file fingerprint, not its content. In API v2, the original file is never sent to Sellat or published on blockchain.
Register SHA-256 hashes for logs, files or digital evidence and get a verifiable proof without sending the original content.
Sellat registers the file fingerprint, not its content. In API v2, the original file is never sent to Sellat or published on blockchain.
The fingerprint is recorded on a public blockchain, so the proof does not depend on Sellat's database alone.
Create and revoke keys from your dashboard, and follow each proof and its status.
Talk to the engineers who built the code, not a bot.
Generate a SHA-256 locally, for example: openssl dgst -sha256 file.zip.
Send the hash, a label and optional metadata to Sellat.
The proof joins a Merkle batch and is anchored on Polygon within minutes; the same batch is attested on Bitcoin too. Ask for it and the FNMT qualified seal is issued in the same call.
Get the id, the state, a downloadable proof.json, the certificate and the evidence package. All of it verifies without relying on Sellat.
API v2 does everything the web does: it registers a hash you already computed, anchors it on Polygon and Bitcoin, issues the FNMT qualified seal when you ask for it and, optionally, keeps the original in custody. Your system keeps the file; Sellat records only the fingerprint. To verify later, recompute the SHA-256.
*Polygon Gas included* Read the full API reference →Request
POST /api/v2/proofs
Authorization: Bearer sellat_...
Content-Type: application/json
{
"hash": "a8f5f167f44f4964e6c998dee827110c...",
"name": "contract.pdf",
"qualified": true,
"metadata": { "ref": "case-2026-0142" }
} Response
{
"id": "6f2c9b1e-0d1a-4b9f-8e7c-2a4d5b6c7d8e",
"created": true,
"state": "queued",
"anchors": [],
"bitcoin": null,
"qualified": {
"state": "issued",
"authority": "FNMT-RCM",
"time": "2026-09-15T10:12:05Z",
"tsr_url": ".../qualified.tsr"
},
"urls": {
"proof_json": ".../api/v2/proof/6f2c9b1e....json",
"certificate": "https://sellat.app/certificate/...",
"evidence_zip": ".../evidence.zip"
}
} The terminal client and the independent verifier are public. The proof format is specified and anyone can verify a proof without depending on Sellat.
github.com/skanthemore/sellat-cli →
sellat-cli — command-line client and examples (log sealing included)
github.com/skanthemore/sellat-verify →
sellat-verify — offline verifier and format specification
These capabilities are part of the next version’s design. We do not present them as available.
Frequently asked questions
Each account can create 10 API proofs a day on the free account and 5,000 on the Pro account, across all its keys; proofs made on the web do not count. At the limit, the API answers 429 with Retry-After until 00:00 UTC. If you need more volume, write to us.
The fingerprint anchored on the public blockchain does not depend on Sellat's database. Every proof has a downloadable proof.json in the public sellat-proof/2 format and an open-source verifier (sellat-verify): even if Sellat stopped operating, anyone could check it with the file, that proof.json and a public explorer.
Sellat creates technical proof of existence and integrity. Its legal value depends on the country, procedure and evidentiary context, so local legal advice is recommended. It does not replace a contract, a notary or an official registry.
Your free account includes 10 API proofs a day and a welcome qualified seal, so you can try the whole flow, FNMT seal included.
Create an API key Sellat for systems →