🚀 Socket Launch Week Day 4:Socket MCP Adds Org Alerts, Threat Feed Review, and Package Inspection.Learn more
Sign In

@powforge/identity

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@powforge/identity

Depth-of-Identity SDK for Nostr. Measures accumulated irreversible work across five dimensions to produce a single identity weight score.

Source
npmnpm
Version
0.4.2
Version published
Weekly downloads
40
-16.67%
Maintainers
1
Weekly downloads
 
Created
Source

@powforge/identity

npm version license tests

Depth-of-Identity SDK for Nostr. Measures accumulated irreversible work across five dimensions to produce a single identity weight score.

Not human vs bot. Invested vs uninvested. It is about measuring intentions.

Install

npm install @powforge/identity

Quick Start

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

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

console.log(report.weight);      // total identity depth score
console.log(report.dimensions);  // breakdown by dimension

What It Measures

Five dimensions of identity depth:

DimensionWhat It ScoresEvent Kinds
SpatialCyberspace movement proofs, unique regions exploredkind:3333
SocialNotes published, reactions given, unique peers interacted withkind:1, kind:7
AccessNIP-13 proof-of-work accumulated across all eventsnonce tags
VouchInbound vouches from other identities, weighted by voucher depth with sqrt dilutionkind:33335

API

getIdentityDepth(pubkey, options?)

Returns a full identity report for a hex pubkey.

Options:

OptionDefaultDescription
relays['ws://localhost:3088']Array of relay WebSocket URLs to query
timeout5000Query timeout per relay in ms
dimensions['spatial', 'social', 'access', 'vouch']Which dimensions to score

Returns:

{
  "pubkey": "93da4435...",
  "totalEvents": 3,
  "weight": 24,
  "activeDimensions": 2,
  "dimensionMultiplier": 1.2,
  "dimensions": {
    "spatial": { "events": 3, "uniqueRegions": 3, "proofsVerified": 3, "score": 21 },
    "social": { "notes": 0, "reactions": 0, "uniquePeers": 0, "score": 0 },
    "access": { "totalEvents": 3, "totalPowBits": 0, "maxDifficulty": 0, "score": 3 },
    "vouch": { "inboundVouches": 0, "uniqueVouchers": 0, "totalWeight": 0, "score": 0 }
  },
  "firstActivity": "2026-04-12T17:25:47.000Z",
  "lastActivity": "2026-04-13T21:01:16.000Z",
  "relaysQueried": 1
}

queryRelay(relayUrl, filters, timeout?)

Low-level function to query a single relay for events matching NIP-01 filters.

How Scoring Works

Each dimension uses log2 scaling to prevent grinding attacks. You can't just spam events to inflate your score -- each additional unit of work yields diminishing returns, just like real proof-of-work.

  • Spatial: log2(events+1) * 2 + log2(uniqueRegions+1) * 5
  • Social: log2(notes+1) * 3 + log2(reactions+1) + log2(bidirectionalPeers+1) * 15 + log2(unidirectionalPeers+1) * 5
  • Access: totalPowBits * 2 + log2(powEvents+1) (PoW bits are already exponential, so they stay linear)
  • Vouch: log2(totalWeight+1) * 3 + log2(uniqueVouchers+1) * 20 (sqrt dilution prevents vouch farming)

A dimension multiplier rewards spreading across dimensions: having depth in 2 dimensions gives 1.2x, 3 gives 1.4x, all 4 gives 1.6x. One-trick ponies get no bonus.

The total weight is the sum of all dimension scores times the multiplier. Higher weight means more accumulated, irreversible work.

Why Not Just Check Follower Count?

Follower counts are trivially faked. This SDK measures things that cost real resources to produce: computation (PoW), time (event history), movement (spatial proofs), and social commitment (vouches backed by depth). Every dimension requires irreversible expenditure to increase.

License

MIT

Keywords

identity

FAQs

Package last updated on 17 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts