Built and Shipped on Solana Network

Privacy First's Identity Layerfor Solana.

Private by design. Verifiable on demand. Zero personal data stored — anywhere. Nigeria's first ZK identity protocol, built for dApps on Solana.

  • NIN never leaves your device
  • Proof verified on Solana
  • 0 bytes of personal data stored
althea · live verification flow
NIN●●●●●●●●●●●
DOB●●/●●/●●●●

Entered by user · stays on device

The Problem

Every Nigerian dApp reinvents KYC. And gets it wrong.

Storing Sensitive Data

Every app that collects NIN or BVN becomes a target. One breach exposes thousands of Nigerians. The liability is enormous. The trust damage is permanent.

Verify Again. And Again.

Users submit the same documents to every new dApp. Every platform builds its own KYC pipeline. The ecosystem fragments. Users burn out. Adoption suffers.

No Shared Infrastructure

There is no shared identity layer for African dApps on Solana. Every team solves the same problem independently, expensively, and badly.

Althea solves all three. permanently.

The Solution

Verify for each app. The proof lives on Solana. Forever.

Althea is not an app. It is infrastructure. A ZK identity protocol any Solana dApp plugs into. One SDK. Five functions. Zero data stored.

User

Enters NIN or BVN

Althea Backend

Verifies with our KYC provider · Signs credential · Stores nothing

ZK Circuit

Runs in browser · Generates proof · Wipes credential

Anchor program

Verifies proof · Stores nullifier · Issues attestation

User Wallet

Holds AttestationRecord · Portable · Permanent

Any dApp

Reads attestation · User is in · Zero data seen

User

Enters NIN or BVN

Althea Backend

Verifies with our KYC provider · Signs credential · Stores nothing

ZK Circuit

Runs in browser · Generates proof · Wipes credential

Anchor program

Verifies proof · Stores nullifier · Issues attestation

User Wallet

Holds AttestationRecord · Portable · Permanent

Any dApp

Reads attestation · User is in · Zero data seen

What never leaves your device: your NIN, your BVN, your name, your date of birth, your face.

What goes on-chain: a mathematical proof. Nothing else.

Zero-Knowledge Explained

Prove everything. Reveal nothing.

Zero-Knowledge proofs let you prove a statement is true without revealing the underlying information. Althea uses Groth16 proofs with Poseidon hashing — the same cryptography securing billions in DeFi.

Your credential stays private

When your NIN is confirmed by the provider, Althea creates a signed credential in your browser's memory. It contains your verified facts — nationality, age, ID type. It is signed with Althea's EdDSA private key. It never leaves your device.

credential
credential = {
  idHash: Poseidon(NIN),
  age: 24,
  idType: 1,            // 1 = NIN, 2 = BVN
  signature: AfricaZK.sign(credentialHash),
}

The circuit asks one question

A Groth16 ZK circuit runs inside your browser. It takes your private credential and checks three things: Was this signed by Althea? Is the person eligible? Is the ID type valid? If all three pass, it outputs a proof and a nullifier. Your credential is then wiped from memory.

EdDSA signature valid
age >= 18
idType is 1 or 2

The proof reveals nothing

The output is a set of mathematical values — pi_a, pi_b, pi_c — that a verifier can check against a public verification key. They confirm the circuit ran correctly. They contain zero personal information. The nullifier is a one-way hash — it identifies you uniquely without revealing who you are.

proof
proof = { pi_a: [...], pi_b: [...], pi_c: [...] }
publicSignals = ['1', '0x8f3a…c291']
// valid = 1, nullifier = 0x8f3a…c291
// Nothing else. Ever.
For Developers

One SDK. Five functions. Your users are verified.

  • npm install @africazk/identity

    One package. Everything included.

  • Five clean functions

    verifyIdentity, generateProof, submitProof, checkAttestation, wipeCredential. That is the entire surface area.

  • Wallet adapter compatible

    Works with Phantom, Backpack, and any @solana/wallet-adapter compatible wallet.

  • Devnet and mainnet support

    Pass network: 'devnet' or 'mainnet-beta'. Switch with one parameter.

  • TypeScript first

    Full type definitions included. Autocomplete for everything.

  • Zero data responsibility

    You never touch NIN or BVN. You never store personal data. You have zero compliance liability.

npm install @africazk/identity

< 0.001 SOL

Cost per verification

< 30 seconds

Time to verify

0 bytes

Personal data stored

Read the full docs →
Protocol Architecture

Built on proven cryptography.

Circom + SnarkJS

Groth16 Zero-Knowledge Proofs

The Althea circuit is written in Circom — the industry standard for ZK circuit development. It uses the Groth16 proving scheme with Poseidon hashing, optimised for browser performance via WebAssembly. Proof generation runs entirely on the user's device.

Circuit: africazk.circom · 4 private inputs · 2 public outputs

EdDSA · circomlib

Backend Credential Signing

Althea's backend signs every credential with an EdDSA private key using circomlib's EdDSAPoseidon implementation. The circuit verifies this signature on-chain. Only credentials signed by Althea's trusted key can produce valid proofs — making it impossible to submit a fake credential.

Public key embedded in circuit · Private key never exposed

Anchor Framework

On-Chain Verification & Attestation

The Althea Anchor program receives proofs, validates public signals, checks the NullifierRecord PDA to prevent duplicate registrations, and creates an AttestationRecord PDA that any dApp can read. Light Protocol ZK verification integrates in a future upgrade.

Two PDAs: NullifierRecord · AttestationRecord

Dojah API · NIMC · CBN

Nigerian ID Infrastructure

NIN verification runs through Dojah — a licensed Nigerian KYC provider with direct NIMC database access. BVN verification uses CBN-licensed infrastructure. The raw ID is hashed immediately after confirmation and the original is never stored anywhere in the Althea system.

Supports: NIN · BVN

Trust & Privacy

What we know. What we don't.

What Althea Knows
What Althea Never Knows
  • A wallet passed verification
    Who the wallet belongs to
  • Verification happened on a date
    The user's name
  • The user is 18 or older
    The user's actual age
  • The user is Nigerian
    The user's NIN or BVN
  • The nullifier (one-way hash)
    Anything reversible

Althea runs no database. The backend processes one request and immediately discards the input. No logs. No analytics on personal data. No way to connect a wallet address to a real identity — by design, not policy.

Built for what comes next

The foundation for African DeFi.

Composable Identity

Every dApp that integrates Althea contributes to a shared identity layer. As the ecosystem grows, wallet holders can verify independently with each app they use.

Expanding ID Support

Althea is designed to extend beyond Nigeria. Ghana Card, Huduma Namba (Kenya), South African ID — the same ZK architecture, localised for each country's ID infrastructure.

Light Protocol Integration

The Althea Anchor program is architectured to plug in Light Protocol's on-chain Groth16 verification in a future upgrade — bringing full trustless proof verification to the protocol without changing the developer interface.

Build the verifiedNigerian internet.

Althea is open infrastructure. Integrate it. Fork it. Build on it. Africa's identity layer belongs to everyone.