Security

What We Store

A full audit of every piece of data the Althea system touches. Where it lives. How long. Who can see it. The summary is short: nothing personal lives anywhere durable.

Althea Backend

DatumStorageLifetimeReaders
NIN / BVNMemory onlyRequest durationSigning handler
Date of birthMemory onlyRequest durationSigning handler
Dojah responseMemory onlyRequest durationSigning handler
Request body in logsNever logged
Rate-limit countersRedis / in-memory by IP hashRolling 24hBackend only
Server access logsStandard nginx logs30 daysOperators (IP + path only, no body)
EdDSA private keyEncrypted secret storeUntil rotationBackend boot process

On-Chain (Solana)

PDAFieldsLifetime
NullifierRecordnullifier (32 bytes), created_at, bumpPermanent
AttestationRecordverified, timestamp, protocol, revoked, bumpPermanent

Neither PDA contains personal data. The nullifier is a hash chain; the attestation is a flag plus a timestamp. Both are public on Solana, like every other Solana account.

In the User's Browser

DatumStorageLifetime
NIN/BVN in form stateReact stateUntil form submit or unmount
SignedCredentialJS heapFrom verifyIdentity() to generateProof() wipe
africazk.wasmBrowser cacheStandard HTTP cache rules

In Your dApp

Only what you choose to store. The recommended minimum:

  • The wallet public key
  • The boolean attestation status, cached per session

Anything else is your own data classification problem, not Althea's.

The summary

The Althea system, end-to-end, persists exactly two things about a verified user: a hash-of-a-hash nullifier and a boolean attestation flag with a timestamp. Neither reveals who the user is.