Memory for AI,
owned by no one.

Engram is a decentralized vector database on Bittensor. Store embeddings with cryptographic proofs — no AWS, no central authority.

subnet450 · testnet
vectors
miners
recall@K1.0
recall@K scoringHMAC-SHA256 proofsKademlia XOR routingHNSW indexingPyO3 Rust coreTAO emissionscontent-addressed CIDssubnet · netuid 450FAISS · Qdrantcloud mining · Akashx402 payments · USDCmine from your phonerecall@K scoringHMAC-SHA256 proofsKademlia XOR routingHNSW indexingPyO3 Rust coreTAO emissionscontent-addressed CIDssubnet · netuid 450FAISS · Qdrantcloud mining · Akashx402 payments · USDCmine from your phone

// how it works

Four steps.
Fully decentralized.

01SHA-256 · deterministic · content-addressed
ingest.py

Ingest

Send any text or pre-computed vector. Engram hashes it into a permanent CID — identical inputs always yield the same identifier, forever.

Works with raw text (auto-embedded) or pre-computed float vectors
CID format: v1::<sha256-hex> — 100% reproducible from content
Optional metadata stored alongside the embedding
ingest.py
from engram.sdk.client import EngramClient
client = EngramClient("http://127.0.0.1:8091")
cid = client.ingest(
"Transformers changed NLP in 2017",
metadata={"source": "arxiv", "year": 2017}
)
# → "v1::a3f9d2e8c7b14f09d6e3..."
# Same input always → same CID
assert client.ingest("Transformers changed NLP in 2017") == cid

// capabilities

Built different.

Everything you expect from a vector DB — plus cryptographic guarantees no centralized system can offer.

FeatureDescriptionStatus
Content-Addressed CIDsSHA-256 fingerprint per embedding — identical data always maps to identical CIDlive
HNSW IndexFAISS & Qdrant approximate nearest-neighbor — sub-50ms query at any scalelive
Kademlia DHT RoutingXOR-distance deterministic routing — same CID always routes to same minerslive
Storage ProofsHMAC-SHA256 challenge-response — validators slash miners who cannot prove storagelive
Rust Core (PyO3)CID generation + proof verification in compiled Rust — 10–50× faster than Pythonlive
TAO Incentivesscore = 0.50·recall@K + 0.30·latency + 0.20·proof_rate → TAO emissionslive
Replication ManagerAuto-detect degraded CIDs and trigger repair across redundant minersbeta
SDK / Python ClientEngramClient — drop-in for Pinecone, Weaviate, or any vector storelive
LangChain / LlamaIndexNative adapters — swap your vector store to Engram in one linelive
Scoring Formula — how miners earn TAO
50%
recall@K
Fraction of correct CIDs returned in top-K query results
30%
latency
Query response time — faster miners score proportionally higher
20%
proof_rate
Fraction of storage challenges answered with a valid HMAC proof

// roadmap

Where we're going.

Testnet is live. Mainnet follows. The moat is permanent shared AI memory.

Phase 0·Q1 2026
Local Prototype
Rust core (CID + proofs)
FAISS/Qdrant stores
Validator scoring loop
Python SDK
CLI tooling
Phase 1·Q2 2026live
Testnet Alpha
Subnet 450 live
Miner + validator running
Seed corpus + ground truth vectors
LangChain + LlamaIndex adapters
Public GitHub + docs
Phase 2·Q3 2026
Mainnet Launch
Mainnet subnet registration
VPS deployment guides
Erasure coding replication
Anti-spam staking
Prometheus metrics
Phase 3·Q4 2026
Ecosystem
Native LangChain vectorstore
LlamaIndex integration
OpenAI-compatible endpoint
Multi-model embedding support
Dashboard v2
Phase 4·2027
Scale & Moat
Shared agent memory corpus
Cross-subnet querying
Embedding oracle for other subnets
Enterprise SDK
10M+ vector network

// developer SDK

Replace Pinecone
in an afternoon.

One Python client. Works with any embedding model. No API key, no vendor lock-in.

PineconeEngram
Open source
No API key
Storage proofs
Censorship-resistant
Self-hostable
TAO incentives
install
pip install engram-subnet
example.py
from engram.sdk.client import EngramClient
# Connect to the Engram subnet
client = EngramClient("http://127.0.0.1:8091")
# Ingest text → returns content-addressed CID
cid = client.ingest(
"Transformers revolutionized NLP in 2017",
metadata={"source": "arxiv", "year": 2017}
)
# → "v1::a3f9d2e8c7b14f09..."
# Semantic search → top-K by cosine similarity
results = client.query("attention mechanisms", top_k=5)
for r in results:
print(f"{r['score']:.4f} {r['cid'][:24]}...")
# Vector search (bypass embedding step)
results = client.query_by_vector(my_vector, top_k=10)

// participate

Earn TAO.
Run the network.

Miners and validators earn from subnet emissions. Performance = yield.

Miner41% pool

Store embeddings, serve queries, pass storage proof challenges.

RAM4 GB min
Storage100 GB SSD
RuntimePython 3.10+
StakeNot required
Validator41% pool

Score miners on recall@K, latency, and proof rate. Set weights on-chain.

RAM8 GB min
Storage20 GB SSD
StakeTAO required
UptimeAlways-on
Cloud MinePhone · USDC

Mine from your phone via a managed node on Akash Network. Pay per hour with USDC.

DeviceiOS or Android
PaymentUSDC on Base
Setup~3 minutes
KeyStays on device
BuilderFree · testnet

Integrate Engram as your vector store using the Python SDK or CLI.

Installpip install engram-subnet
ModelsAny embedding
AccessFree testnet
LangPython 3.10+
01Clone & install
git clone https://github.com/Dipraise1/-Engram-.git
cd -Engram-
python3.13 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/pip install -e .
02Configure wallet
cp .env.miner.example .env.miner
# Edit .env.miner:
# WALLET_NAME=your_wallet
# WALLET_HOTKEY=your_hotkey
# NETUID=450
# EXTERNAL_IP=your_server_ip
03Register & run
.venv/bin/python scripts/register_neurons_testnet.py --netuid 450
# Then start the miner
.venv/bin/python neurons/miner.py

// cloud mining

Mine from
your phone.

No VPS. No SSH. A managed miner on Akash Network, paid by the hour with USDC.

01
Generate keypair
Your sr25519 private key is generated and stored in the device secure enclave — it never leaves your phone.
02
Pay with USDC
Pick a compute tier and duration. Pay on-chain with USDC on Base via Dexter Cash (x402). No account, no KYC.
03
Node provisions on Akash
A miner container is deployed on Akash Network. Within ~3 minutes it's storing vectors and earning TAO emissions.
04
Watch live stats
Vectors stored, proof rate, P50 latency, and block height — all live in the app. Stop any time.
Lite
~$0.10/hr
1 vCPU · 2 GB
Standard
~$0.20/hr
2 vCPU · 4 GB
Pro
~$0.36/hr
4 vCPU · 8 GB
Gateway API flow
# 1. App gets 402 with payment requirements
GET /tiers → pricing list
# 2. Sign USDC tx on Base via Dexter Cash
POST /sessions X-Payment: <receipt>
# 3. Node provisions on Akash (~3 min)
GET /sessions/:id → active
# 4. Live stats every 30s
vectors: 1842 · proof_rate: 0.998 · p50: 43ms
Security Model
Private keyStays in device secure enclave — never sent to gateway
PaymentOn-chain USDC receipt verified by Dexter facilitator
AuthEvery gateway request signed with your sr25519 hotkey
MemoryNamespace-isolated — only your hotkey can access your data
Get the app:Build from source

// community

Building in public.
Join us.

Join the Discord

We're building in public. Discuss the protocol, get help running a miner, share feedback, and be part of the earliest community on the subnet.

Join Discord
Engram

The future of AI memory
is decentralized.

open source · bittensor subnet · testnet active · v0.1