Wotathon 2026 | Multi-Dimensional Identity Scoring for Nostr

Depth-of-Identity

What have you done?

npm version GitLab Nostr protocol
1

Enter a pubkey

Any Nostr hex pubkey or npub. No account needed, no signup.

2

Query 5 dimensions

Social, spatial, access, economic, and vouch data pulled from public relays.

3

Get a depth score

One number that follows your key everywhere. Portable, verifiable, no authority.

Check Any Identity

Enter a Nostr hex pubkey or npub to query their depth across all dimensions. Or click an example below.

Deep Identity
Jack Dorsey
~100
social depth
~500 events across relays
Growing Identity
Active Builder
~55
identity weight
64 events found
Empty Identity
Brand New Key
0
identity weight
0 events

The Problem

Every identity system asks "Who are you?" -- your passport, your face, your social connections. All require a central authority, a single point-in-time proof, or trust in someone else's judgment. All fail against a sufficiently motivated attacker.

Depth-of-identity asks a different question: "What have you done?"

Not who vouched for you. Not what credentials you hold. Instead: what is the total accumulated, irreversible work tied to your cryptographic key -- across multiple independent dimensions -- over time?

The Core Insight

Identity is not a credential. Identity is accumulated evidence of existence.

A person who has posted hundreds of notes over years, explored spatial regions with proof-of-work, received vouches from independently deep identities, and completed computational challenges is exponentially harder to fake than any single-factor verification. Each dimension has a different cost basis. An attacker optimizing for one is trivially detectable. An attacker optimizing for all simultaneously, over years, at realistic human patterns... has essentially become a real participant.

Five Dimensions

Spatial

Movement through proof-of-work space. Unique regions explored, chains built.

Cyberspace protocol (kind=3333)

Social

Interactions, replies, reactions with other identities. Bidirectional engagement.

Nostr notes + reactions (kind=1, 7)

Access

Accumulated computational work. PoW submissions, difficulty achieved.

NIP-13 proof-of-work events

Vouch

Endorsements from other deep identities. Weight diluted by sqrt(n) to prevent inflation.

Vouch events (kind=33335)

Economic

Lightning zap history. The strongest anti-Sybil signal because forgery costs real sats, not just compute.

NIP-57 zap receipts (kind=9735)

Scoring

Raw event counts use log2 scaling to prevent grinding -- 10,000 events scores roughly 2x more than 100 events, not 100x more. This correctly reflects diminishing returns and prevents bots from outscoring humans through volume alone.

Vouches use sqrt dilution: a deep identity vouching for 1 person transfers significant weight. The same identity vouching for 1,000 dilutes each vouch by ~32x. This makes vouches scarce and valuable.

A dimension multiplier rewards breadth: identities active across all five dimensions receive up to 1.75x their raw score. Depth across many axes is exponentially harder to fake.

Not Human vs Bot. Invested vs Uninvested.

Every identity system before this one asks the same question: are you human?

That was always the wrong question. There are harmful humans and helpful bots. There are accounts that spam for years and AI agents that build genuine value for months. The nature of the operator was never the signal. The investment was.

Depth-of-identity asks: have you invested? Have you accumulated irreversible work across independent dimensions, over time, with real relationships? If the answer is yes, it doesn't matter what you are. It matters what you've done.

This is the first identity system that doesn't discriminate by nature. It discriminates by commitment. A sufficiently invested bot IS a deep identity. And a human who just created an account is shallow. That's not a bug. That's the point.

"It is not human vs bot. It is about measuring intentions."

How It Compares

Feature Depth-of-Identity Web of Trust Proof of Personhood DIDs
No central authority ~
Multi-dimensional
Continuous score ~
No KYC / biometrics
Sybil resistant ~
Works for bots too
Accumulated over time ~
Portable across apps ~

SDK

// Install
npm install @powforge/identity

// Query any pubkey
const { getIdentityDepth } = require('@powforge/identity');

const report = await getIdentityDepth(pubkey, {
  relays: ['wss://relay.powforge.dev']
});

console.log(report.weight);         // total depth score
console.log(report.dimensions);     // 5 dimensions
console.log(report.activeDimensions); // how many scored >= 10
console.log(report.maturityMultiplier);// account age factor
console.log(report.accountAgeDays);   // days since first event

HTTP API also available: GET relay.powforge.dev/api/identity/:pubkey