Quickstart¶
Get your first AuditProof in 5 minutes.
1. Sign Up¶
curl -X POST https://api.nanorix.io/v1/signup \
-H "Content-Type: application/json" \
-d '{"email": "you@company.com", "jurisdiction": "US"}'
Response:
{
"customer_id": "cust_8a3f...",
"api_key": "nrx_live_a1b2c3d4e5f6...",
"tier": "free",
"message": "Save your API key — it cannot be retrieved later."
}
Save your API key
The API key is shown exactly once. Nanorix stores only a SHA-256 hash. If you lose it, you'll need to contact support for a key rotation.
The jurisdiction field determines which regulatory frameworks appear in your AuditProofs. Options: US, EU, UK, CA, AU, IN, OTHER.
2. Create a Capsule¶
curl -X POST https://api.nanorix.io/v1/capsules \
-H "Authorization: Bearer nrx_live_a1b2c3d4e5f6..." \
-H "Content-Type: application/json" \
-d '{"data_classification": "PHI"}'
Response:
{
"id": "cap_a8f3e71c4b2d9f06",
"status": "active",
"ttl_seconds": 300,
"created_at": "2026-03-01T14:00:00Z",
"expires_at": "2026-03-01T14:05:00Z"
}
The capsule is now running inside a sealed ephemeral environment with volatile-memory-only storage. The data_classification field is your declaration of what kind of data you'll process. Options: PHI, PII, financial, credentials, general.
3. Execute a Command¶
curl -X POST https://api.nanorix.io/v1/capsules/cap_a8f3e71c4b2d9f06/exec \
-H "Authorization: Bearer nrx_live_a1b2c3d4e5f6..." \
-H "Content-Type: application/json" \
-d '{
"command": "python classify.py",
"input_data": "{\"record_id\": \"P-1234\", \"diagnosis\": \"Type 2 diabetes\"}",
"timeout": 30
}'
Response:
{
"capsule_id": "cap_a8f3e71c4b2d9f06",
"stdout": "classification: chronic_condition, risk_score: 0.72",
"stderr": "",
"exit_code": 0,
"executed_at": "2026-03-01T14:01:00Z",
"timed_out": false
}
The input_data is written to a file inside the sealed sandbox before execution. Your command reads it from {tmpfs}/input/data. The data never touches persistent disk and never appears in command-line arguments.
4. Destroy and Get Your AuditProof¶
curl -X DELETE https://api.nanorix.io/v1/capsules/cap_a8f3e71c4b2d9f06 \
-H "Authorization: Bearer nrx_live_a1b2c3d4e5f6..."
Response (truncated for readability):
{
"capsule_id": "cap_a8f3e71c4b2d9f06",
"status": "destroyed",
"cdp": {
"cdp_version": "2.1",
"capsule_id": "cap_a8f3e71c4b2d9f06",
"created_at": "2026-03-01T14:00:00Z",
"destroyed_at": "2026-03-01T14:04:58Z",
"chain": [
{"step": 1, "subsystem": "eee_namespace", "operation": "environment_isolation", "evidence_hash": "sha512:...", "chain_hash": "sha512:..."},
{"step": 8, "subsystem": "capsule_destroy", "operation": "lifecycle_completion", "evidence_hash": "sha512:...", "chain_hash": "sha512:..."}
],
"final_hash": "sha512:2c8a4f63d19e7b...",
"attestation": {
"algorithm": "Ed25519",
"public_key": "base64:MCowBQYDK2Vw...",
"signature": "base64:VGhpcyBpcyBh..."
},
"regulatory_context": {
"notice": "This mapping identifies regulatory provisions related to the destruction evidence. It is not a compliance certification. Compliance determinations should be made by qualified legal and compliance professionals.",
"framework_version": "2026-02",
"jurisdiction": "US",
"mappings": [
{
"step": 3,
"subsystem": "eee_memory",
"frameworks": [
{
"regulation": "HIPAA",
"provision": "§164.310(d)(2)(i)",
"description": "Device and media controls — disposal",
"relationship": "related_to"
}
]
}
]
}
}
}
Save the cdp object as auditproof.json. This is your AuditProof — signed evidence of the capsule's full lifecycle.
The regulatory_context section maps each destruction step to relevant regulatory provisions. This is a factual reference mapping, not a compliance certification. Your compliance team uses it as evidence alongside their own controls.
5. Verify the AuditProof¶
Online (API)¶
curl -X POST https://api.nanorix.io/v1/verify \
-H "Content-Type: application/json" \
-d @auditproof.json
Online (Web)¶
Go to nanorix.io/verify and drag-and-drop your AuditProof file.
Offline (Python)¶
import json
from nanorix.verifier import verify
with open("auditproof.json") as f:
proof = json.load(f)
result = verify(proof) # recomputes the full hash chain + checks the Ed25519 signature, offline
print("chain valid:", result.chain_valid)
print("signature valid:", result.signature_valid)
print("ok:", result.ok)
if not result.ok:
print("failed step:", result.failed_step, "-", result.failure_reason)
The full manual algorithm (for verifying with no Nanorix code at all) is in Verification.
For all verification methods, see Verification.
6. Retrieve the Stored Record¶
If you need the record later:
curl https://api.nanorix.io/v1/proofs/cap_a8f3e71c4b2d9f06 \
-H "Authorization: Bearer nrx_live_a1b2c3d4e5f6..."
This returns the stored AuditRecord — your private complete record — for any destroyed capsule you own.
What's Next¶
- Read the AuditProof Specification for the complete format reference
- Explore the API Reference for all endpoints
- Understand the Security Architecture
- Learn about Regulatory Context mappings in AuditProofs