npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@inversealtruism/csd-registry

v0.1.5

Published

Compute Substrate L3 registries — peer/gateway/identity discovery built entirely on the Propose/Attest primitive. Pure deterministic resolvers (replay an epoch set → identical result anywhere) + commit-reveal identity + client-side or indexer-served disco

Readme

@inversealtruism/csd-registry

L3 of the Compute Substrate no-fork ecosystem. Peer / gateway / identity registries built entirely on CSD's Propose/Attest primitive — no new transaction types, no fork. The chain provides ordering + sybil-priced weight; the resolvers turn that into discovery and names by a deterministic convention.

The golden rule

The chain provides ordering + fee-weight. It does not provide uniqueness. Uniqueness is a resolver conventionfirst-resolvable-verified-anchor wins; weight only ranks. Any independent indexer (or a client running this package) re-derives the identical result by replaying epochs in anchor order. That determinism is the trust model.

Resolvers (pure, deterministic)

import { resolvePeers, resolveGateways, resolveIdentity, reverseIdentity } from "@inversealtruism/csd-registry";

const peers    = resolvePeers(records, { nowEpoch });                 // ranked bootstrap list
const gateways = resolveGateways(records, { nowEpoch, freshWithin });// uptime-attested gateways
const who      = resolveIdentity(records, "alice", { nowEpoch });    // name → address
const name     = reverseIdentity(records, "0x…", { nowEpoch });      // address → primary name

records is a ChainRecord[] — the normalized Propose + its Attests for the registry domains, built from an L2 indexer's rows or from raw chain data (identical input → identical output). Same epoch set, same order-independent answer everywhere.

  • csd:peers — verified signed peer_id↔address records, ranked by Σ fees with recency decay, deduped by peer_id. A durable, sybil-priced bootstrap list (pair with DHT/mDNS for churn).
  • csd:gateways — content gateways/pins; ranked by fee × uptime-attestation weight; a gateway with no fresh attestation within freshWithin epochs drops out. Clients still verify served bytes against the payload_hash (gateways are untrusted transports).
  • csd:identitycommit-reveal handles (publish commit an epoch before the handle reveal → fee-front-running can't steal a name). First-anchored verified claim wins; weight only breaks same-epoch ties. External proofs (DNS .well-known / GitHub gist / signed) are revalidated on read — a lost domain silently un-verifies (NIP-05 liveness).

Publish builders

import { buildPeerRecord, buildGatewayRecord, buildIdentityCommit, buildIdentityReveal } from "@inversealtruism/csd-registry";

const r = buildIdentityCommit({ handle: "alice", salt, address });        // epoch N
// … then in epoch N+1 …
const v = buildIdentityReveal({ priv, handle: "alice", salt, address, proofs });
// each returns { domain, content, payloadHash } → serve `content` via L1, anchor with buildPropose(domain, payloadHash)

Each builder signs the binding (addrFromPub(pub) === address + a sig over the canonical binding digest), so a record is only ever counted if the proposing address actually owns the peer_id / gateway url / handle it claims.

Discovery (from an L2 indexer)

import { discoverPeers, discoverGateways, resolveName, reverseName } from "@inversealtruism/csd-registry";
const src = { baseUrl: "https://indexer.example" };
await discoverGateways(src);     // GET /registry/gateways
await resolveName(src, "alice"); // GET /identity/alice

…or compute the same answers client-side with fromRecords.* for trust-minimization.

Honest limits

No consensus uniqueness — this is reputation-weighted, externally-verified claims. Identity is only as strong as its external proof and is revalidated on read. Fee-weighting is economic sybil resistance (cheap to fake an identity, expensive to fake weight) — good for discovery/ranking, not a substitute for consensus where uniqueness truly matters. MIT.