Witness Overview
Solenoid Witness is a cryptographic notary API that signs JSON logs with Ed25519 and delivers tamper-evident receipts to your S3 storage.
You submit logs, we sign and sequence them, and push receipts to your bucket. Witness never stores your data.
What makes Witness different
- Ed25519 signatures — faster, deterministic, misuse-resistant
- Append-only chain structure — each receipt links to previous
- S3 delivery — logs go to YOUR storage, not ours
- Stateless verification — all proof data embedded in receipt
- Compliance firewall — prove logs existed and weren’t altered
- Never lose a log — purgatory buffer if S3 unavailable
Capabilities
- Notarize JSON logs — submit any JSON object for cryptographic timestamping
- Configure S3 storage — deliver receipts to your own S3-compatible bucket (AWS, R2, MinIO)
- Verify receipts — server-side verification endpoint or client-side HTML verifier
- Get public key — download Ed25519 public key for offline verification
- Purgatory fallback — receipts buffered in R2 if your S3 is unavailable
Use cases
- Compliance timestamping — prove when events occurred with signed receipts
- Immutable audit trails — tamper-evident logs for security and regulatory needs
- Data integrity — detect unauthorized modifications through chain verification
- Regulatory compliance — meet requirements for tamper-proof logging (GDPR, HIPAA, SOC2)
- Third-party auditing — auditors can verify receipts independently with public key
How it works
- Initialize your chain — call
POST /v1/witness/sys/initto generate an Ed25519 keypair - Submit JSON log — call
POST /v1/witness/logwith any JSON object - Receive signed receipt — get back a receipt with Ed25519 signature and chain hash
- Receipt delivered to S3 — automatically pushed to your configured bucket
- Verify anytime — verify receipts server-side or client-side, online or offline
Pricing
Notarization costs 1 credit per log. Verification and public key retrieval are free.
POST /v1/witness/log— 1 creditPOST /v1/witness/sys/init— 1 credit (one-time)POST /v1/witness/config— freePOST /v1/witness/verify— freeGET /v1/witness/pubkey/:chainId— free, and public::chainIdis thechain_idinit returns, so a verifier needs no account here
See Pricing for tier details.
Next steps
- Quick Start — notarize your first log
- API Reference — full endpoint documentation