Ledger Quick Start
Create immutable records in 5 minutes.
Prerequisites
- Python 3.10+
- QCOS API key (get one here)
- pip
Step 1: Install the SDK
pip install qcos-sdk[ledger]
Step 2: Configure API Key
export QCOS_API_KEY="qcos_live_your_key_here"
Step 3: Append Your First Record
from qcos.ledger import LedgerClient
ledger = LedgerClient()
# Append a record
record = ledger.append(
data={
"event": "user_login",
"user_id": "user_123",
"ip_address": "192.168.1.100"
}
)
print(f"Record ID: {record.record_id}")
print(f"Sequence: {record.sequence}")
print(f"Hash: {record.hash}")
Expected Output:
Record ID: rec_abc123
Sequence: 1
Hash: sha3-256:7f83b165...
Step 4: Retrieve a Record
from qcos.ledger import LedgerClient
ledger = LedgerClient()
# Get a record
record = ledger.get("rec_abc123")
print(f"Data: {record.data}")
print(f"Created: {record.timestamp}")
print(f"Sequence: {record.sequence}")
Step 5: Verify a Record
from qcos.ledger import LedgerClient
ledger = LedgerClient()
# Verify integrity
verification = ledger.verify("rec_abc123")
print(f"Valid: {verification.valid}")
print(f"Checks:")
print(f" Chain: {verification.chain_valid}")
print(f" Signature: {verification.signature_valid}")
print(f" Timestamp: {verification.timestamp_valid}")
Expected Output:
Valid: True
Checks:
Chain: True
Signature: True
Timestamp: True
Step 6: Get Merkle Proof
from qcos.ledger import LedgerClient
ledger = LedgerClient()
# Get proof for third-party verification
proof = ledger.get_proof("rec_abc123")
print(f"Record hash: {proof.record_hash}")
print(f"Merkle root: {proof.merkle_root}")
print(f"Proof path: {len(proof.path)} nodes")
# Export proof for auditor
proof.export("audit_proof.json")
Step 7: List Records
from qcos.ledger import LedgerClient
ledger = LedgerClient()
# List recent records
records = ledger.list(
limit=10,
order="desc"
)
for rec in records:
print(f"{rec.sequence}: {rec.record_id} - {rec.timestamp}")
Step 8: Append with Metadata
from qcos.ledger import LedgerClient
ledger = LedgerClient()
# Add categorization and tags
record = ledger.append(
data={
"event": "file_access",
"file": "/data/sensitive.csv",
"action": "read"
},
metadata={
"category": "security",
"severity": "info",
"tags": ["audit", "file-access"]
}
)
print(f"Record ID: {record.record_id}")
Complete Example
#!/usr/bin/env python3
"""Ledger Complete Example"""
from qcos.ledger import LedgerClient
def main():
ledger = LedgerClient()
# 1. Append audit records
print("Appending audit records...")
records = []
for i in range(3):
record = ledger.append(
data={
"event": f"action_{i}",
"timestamp": f"2026-02-06T12:0{i}:00Z"
},
metadata={"category": "demo"}
)
records.append(record)
print(f" Created: {record.record_id} (seq: {record.sequence})")
# 2. Verify chain integrity
print("\nVerifying chain integrity...")
for record in records:
result = ledger.verify(record.record_id)
status = "✅" if result.valid else "❌"
print(f" {status} {record.record_id}")
# 3. Get Merkle proof
print("\nGenerating Merkle proof...")
proof = ledger.get_proof(records[-1].record_id)
print(f" Record hash: {proof.record_hash[:32]}...")
print(f" Merkle root: {proof.merkle_root[:32]}...")
print(f" Proof depth: {len(proof.path)} nodes")
# 4. Verify with Merkle proof
print("\nVerifying with Merkle proof...")
verified = proof.verify()
print(f" Proof valid: {verified}")
# 5. Export for audit
print("\nExporting audit report...")
proof.export("audit_report.json")
print(" Saved to audit_report.json")
print("\n✅ Ledger workflow complete!")
if __name__ == "__main__":
main()
REST API Direct Usage
Append Record
curl -X POST https://api.softquantus.com/api/v2/ledger/append \
-H "Authorization: Bearer $QCOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": {"event": "user_login", "user_id": "user_123"},
"metadata": {"category": "audit"}
}'
Get Record
curl https://api.softquantus.com/api/v2/ledger/rec_abc123 \
-H "Authorization: Bearer $QCOS_API_KEY"
Verify Record
curl https://api.softquantus.com/api/v2/ledger/rec_abc123/verify \
-H "Authorization: Bearer $QCOS_API_KEY"
Get Merkle Proof
curl https://api.softquantus.com/api/v2/ledger/rec_abc123/proof \
-H "Authorization: Bearer $QCOS_API_KEY"
Next Steps
- API Reference - All Ledger endpoints
- Record Schema - Understand record structure
- Verification Guide - Deep dive into verification
- Compliance Guide - Meet regulatory requirements
© 2024-2026 SoftQuantus Innovative OÜ