Skip to content

Quickstart

Get your first Cryptographic Destruction Proof 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 CDPs. Options: US, EU, UK, CA, AU, IN, OTHER.


2. Create a Session

curl -X POST https://api.nanorix.io/v1/sessions \
  -H "Authorization: Bearer nrx_live_a1b2c3d4e5f6..." \
  -H "Content-Type: application/json" \
  -d '{"data_classification": "PHI"}'

Response:

{
  "session_id": "sess_a8f3e71c4b2d9f06",
  "status": "active",
  "ttl_seconds": 300,
  "created_at": "2026-03-01T14:00:00Z"
}

The session is now running inside 6 layers of Linux isolation 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/sessions/sess_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:

{
  "output": "classification: chronic_condition, risk_score: 0.72",
  "stderr": "",
  "exit_code": 0,
  "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 CDP

curl -X DELETE https://api.nanorix.io/v1/sessions/sess_a8f3e71c4b2d9f06 \
  -H "Authorization: Bearer nrx_live_a1b2c3d4e5f6..."

Response (truncated for readability):

{
  "session_id": "sess_a8f3e71c4b2d9f06",
  "status": "destroyed",
  "cdp": {
    "cdp_version": "1.0",
    "session_id": "sess_a8f3e71c4b2d9f06",
    "created_at": "2026-03-01T14:00:00Z",
    "destroyed_at": "2026-03-01T14:30:00Z",
    "chain": [
      {"step": 1, "subsystem": "eee_namespace", "operation": "environment_isolation", "...": "..."},
      "... 6 more steps ...",
      {"step": 8, "subsystem": "session_destroy", "operation": "lifecycle_completion", "...": "..."}
    ],
    "final_hash": "sha256:2c8a4f63d19e7b...",
    "attestation": {
      "algorithm": "Ed25519",
      "public_key": "base64:MCowBQYDK2Vw...",
      "signature": "base64:VGhpcyBpcyBh..."
    },
    "regulatory_context": {
      "notice": "This mapping identifies regulatory provisions potentially related to the destruction evidence. It is not a compliance certification.",
      "framework_version": "2026-02",
      "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 JSON. This is your cryptographic proof of destruction.

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 CDP

Online (API)

curl -X POST https://api.nanorix.io/v1/verify \
  -H "Content-Type: application/json" \
  -d @destruction_proof.json

Online (Web)

Go to nanorix.io/verify and drag-and-drop your CDP file.

Offline (Python)

import json, hashlib, base64
from nacl.signing import VerifyKey

with open("destruction_proof.json") as f:
    cdp = json.load(f)

# Verify hash chain
prev = hashlib.sha256(b"").hexdigest()
for step in cdp["chain"]:
    prev = step["chain_hash"].split(":", 1)[1]

# Verify Ed25519 signature — no network needed
pub = base64.b64decode(cdp["attestation"]["public_key"].replace("base64:", ""))
sig = base64.b64decode(cdp["attestation"]["signature"].replace("base64:", ""))
VerifyKey(pub).verify(
    bytes.fromhex(cdp["final_hash"].replace("sha256:", "")), sig)
print("VALID — Chain intact · Signature verified · Proof authentic")

For all verification methods, see Verification.


6. Retrieve a Stored CDP

If you need the CDP later:

curl https://api.nanorix.io/v1/proofs/sess_a8f3e71c4b2d9f06 \
  -H "Authorization: Bearer nrx_live_a1b2c3d4e5f6..."

This returns the stored CDP for any destroyed session you own.


What's Next