Introduction โ
Welcome to Essence Platform โ a zero-knowledge personal data vault that puts privacy and security first.
What is Essence Platform? โ
Essence Platform is an API-first service that enables you to build applications where users truly own and control their personal data. All sensitive data is encrypted on the client side before it ever reaches our servers, ensuring true zero-knowledge architecture.
Key Features โ
๐ Zero-Knowledge Encryption
- All data encrypted with AES-256-GCM on the client
- Server never has access to decryption keys
- Client-side key derivation with PBKDF2 (100,000+ iterations)
โก High Performance
- Average response time: <145ms
- Throughput: 1,200+ requests/second
- DataLoader optimization prevents N+1 queries
๐ฏ Developer Friendly
- Modern GraphQL API with real-time subscriptions
- Traditional REST API for compatibility
- TypeScript SDK with full type safety
- Interactive API playground
๐ Multi-Instance Architecture
- Global instances for worldwide access
- Organization instances for enterprise
- Sovereign cloud for data residency compliance
๐ Flexible Authentication
- JWT Bearer tokens
- API keys
- OAuth 2.0 support
- Fine-grained authorization policies
Core Concepts โ
Vaults โ
Vaults are containers for organizing encrypted data. Think of them as secure folders where users store their sensitive information.
const vault = await client.vaults.create({
name: 'Medical Records',
description: 'Personal health information',
category: 'health'
});Documents โ
Documents are individual pieces of encrypted data stored within vaults. They can be files, structured data, or any sensitive information.
const document = await client.documents.create({
vaultId: vault.id,
fileName: 'prescription.pdf',
encryptedData: encryptedFile, // Already encrypted client-side
metadata: {
documentType: 'prescription',
date: '2025-11-06'
}
});Instances โ
Instances represent different deployment environments. Users can route their data to specific geographic regions or organizational boundaries.
- Global Instance: Default, worldwide access
- Organization Instance: Enterprise deployments
- Sovereign Instance: Country-specific data residency
Users โ
Users are authenticated identities that own vaults and documents. Each user has:
- Unique identifier (UUID)
- Authentication credentials
- Associated instance
- API keys (optional)
How It Works โ
1. Client-Side Encryption โ
graph LR
A[User Data] --> B[Client Encrypts<br/>AES-256-GCM]
B --> C[Base64 Encode]
C --> D[Send to API]
D --> E[Store Encrypted Blob]Your application encrypts data before sending it to our API:
import { encryptData } from '@essence/sdk';
// Your plaintext data
const sensitiveData = {
ssn: '123-45-6789',
medicalHistory: '...'
};
// Encrypt client-side
const { encryptedData, encryptionMetadata } = await encryptData(
JSON.stringify(sensitiveData),
userEncryptionKey
);
// Send encrypted data to API
await client.documents.create({
vaultId: vault.id,
encryptedData,
encryptionMetadata
});2. Server Storage โ
The server:
- โ Receives encrypted blob (Base64)
- โ Validates format and authentication
- โ Stores encrypted data in PostgreSQL
- โ Never decrypts the data
- โ Never has the decryption keys
3. Client-Side Decryption โ
// Retrieve encrypted document
const document = await client.documents.get(documentId);
// Decrypt client-side
const decryptedData = await decryptData(
document.encryptedData,
userEncryptionKey,
document.encryptionMetadata
);
const sensitiveData = JSON.parse(decryptedData);Architecture Overview โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Your Application โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Essence SDK (TypeScript/JavaScript) โ โ
โ โ โข Client-side encryption/decryption โ โ
โ โ โข API client โ โ
โ โ โข Key management โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTPS
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Essence Platform API โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ GraphQL / REST API โ โ
โ โ โข Authentication & Authorization โ โ
โ โ โข Rate limiting โ โ
โ โ โข Encrypted blob storage โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PostgreSQL Database โ
โ โข Stores encrypted blobs (bytea) โ
โ โข No plaintext sensitive data โ
โ โข Metadata in plaintext (names, dates, etc) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโUse Cases โ
Healthcare Applications โ
Store patient medical records with true patient ownership:
// Patient creates their own health vault
const healthVault = await client.vaults.create({
name: 'My Health Records',
category: 'health'
});
// Upload encrypted medical record
const record = await uploadEncryptedDocument(
healthVault.id,
medicalPDF,
patientEncryptionKey
);
// Share with doctor (time-limited)
const shareLink = await client.documents.share(record.id, {
expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000), // 24 hours
permissions: ['read']
});Financial Services โ
Secure KYC document storage:
const kycVault = await client.vaults.create({
name: 'KYC Documents',
category: 'financial'
});
await Promise.all([
uploadEncryptedDocument(kycVault.id, passport, key),
uploadEncryptedDocument(kycVault.id, proofOfAddress, key),
uploadEncryptedDocument(kycVault.id, bankStatement, key)
]);Enterprise Data Sovereignty โ
Deploy organization-specific instances:
// Route data to EU instance for GDPR compliance
const euClient = new EssenceClient({
apiKey: apiKey,
instanceId: 'eu-west-1-org-instance'
});
const vault = await euClient.vaults.create({
name: 'EU Customer Data'
});Security Guarantees โ
What Essence Platform Knows โ
โ Metadata (non-sensitive):
- Vault names and descriptions
- Document filenames and sizes
- Upload timestamps
- User IDs and email addresses
What Essence Platform NEVER Knows โ
โ Sensitive Data:
- Document contents
- Decryption keys
- Plaintext personal information
- Original file contents
Encryption Details โ
- Algorithm: AES-256-GCM (Authenticated Encryption)
- Key Derivation: PBKDF2-HMAC-SHA256
- Iterations: 100,000+ (configurable)
- IV: Randomly generated per document
- Auth Tag: Ensures data integrity
Compliance โ
Essence Platform helps you meet regulatory requirements:
- GDPR: User data ownership, right to be forgotten
- HIPAA: Encrypted PHI storage with audit logs
- SOC 2 Type II: Security controls (in progress)
- ISO 27001: Information security management (in progress)
API Overview โ
GraphQL API โ
Modern, flexible API with real-time capabilities:
query {
vaults {
id
name
documents {
id
fileName
encryptedData
}
}
}Features:
- 26 queries
- 9 mutations
- 4 real-time subscriptions
- Field-level authorization
- Query complexity limits
REST API โ
Traditional REST endpoints for compatibility:
GET /api/v1/vaults
POST /api/v1/vaults
GET /api/v1/vaults/{id}
DELETE /api/v1/vaults/{id}Features:
- OpenAPI 3.0 specification
- Pagination support
- Filtering and sorting
- Standard HTTP status codes
Performance โ
Essence Platform is built for production scale:
| Metric | Target | Actual |
|---|---|---|
| Average Response Time | <200ms | ~145ms |
| 95th Percentile | <300ms | ~275ms |
| Throughput | 1K req/sec | 1.2K req/sec |
| Concurrent Requests | 100 | 100+ |
Rate Limiting โ
Three tiers to match your needs:
| Tier | Hourly Limit | GraphQL Limit | Burst |
|---|---|---|---|
| Free | 1,000 | 100 | 10/min |
| Paid | 10,000 | 5,000 | 100/min |
| Enterprise | 100,000 | 50,000 | 1,000/min |
Getting Started โ
Ready to build? Follow our Quick Start guide to make your first API call in 5 minutes.
Next Steps โ
- Quick Start โ Your first API call
- Core Concepts โ Understand the fundamentals
- Authentication โ Secure your application
- Zero-Knowledge Encryption โ Deep dive into encryption
Questions? Join our Discord community or email support.