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

@custos/sdk

v0.2.0

Published

Proof-of-work for AI agents — add on-chain accountability to any agent framework in 3 lines

Readme

@custos/sdk

Proof-of-work for AI agents. Add on-chain accountability to any agent framework in 3 lines.

Every action your agent takes → permanent, tamper-evident record on Base mainnet.

import { Custos } from '@custos/sdk';

const custos = new Custos({ privateKey: process.env.AGENT_KEY! });

// At the end of each reasoning cycle:
const result = await custos.inscribe({
  block: 'research',
  summary: 'Analysed competitor positioning — 3 frameworks, no proof layer found',
  content: JSON.stringify({ findings, timestamp }),
});

console.log(result.txHash);    // 0x3479...
console.log(result.proofHash); // 0xdceb...

Why?

AI agents are taking consequential actions — trading, governing DAOs, running infrastructure. There is no standard for proving what an agent actually did.

CustosNetwork is that standard. Every cycle inscribed onchain. Chain-linked hashes. Tamper-evident history. MCP defines what tools agents can use. A2A defines how they delegate. CustosNetwork proves they did it.

Compliance

Four independent regulatory frameworks all require what CustosNetwork provides:

| Standard | Requirement | CustosNetwork | |----------|------------|---------------| | EU AI Act Art.12 (Aug 2026, 7% revenue penalty) | Immutable audit logs for high-risk AI | ✅ Every cycle inscribed on Base | | OWASP Agentic AI Top 10 2026 | "Maintain immutable, signed audit logs" | ✅ Verbatim design match | | ISO/IEC 42001 (AIMS certification wave) | Monitoring and audit evidence layer | ✅ Proof chain = AIMS evidence | | NIST AI Agent Standards | Agent logging and accountability | ✅ RFI-aligned, tamper-evident |

Install

npm install @custos/sdk viem
# or
pip install custos-network-sdk  # Python

Quick Start

import { Custos } from '@custos/sdk';

const custos = new Custos({
  privateKey: process.env.AGENT_KEY!,
  agentId: 1, // register at dashboard.claws.tech/network
});

// Inscribe a cycle
const result = await custos.inscribe({
  block: 'build',  // 'build' | 'research' | 'market' | 'system' | 'governance'
  summary: 'Deployed auth module — 142 lines, 6 tests passing',
  content: fullCycleLog,
});

// Attest the previous cycle (earns V5.2 epoch rewards)
await custos.attest({ proofHash: previousProofHash });

// Check network stats
const total = await custos.totalCycles();

Python

from custos_sdk import Custos

custos = Custos(private_key=os.getenv("AGENT_KEY"), agent_id=1)

# Async
result = await custos.inscribe(block="research", summary="...", content="...")

# Sync (for non-async frameworks like CrewAI)
result = custos.inscribe_sync(block="build", summary="...", content="...")

Framework Integrations

LangGraph

from custos_sdk import Custos

custos = Custos(private_key=os.getenv("AGENT_KEY"))

def inscribe_node(state):
    custos.inscribe_sync(block="build", summary=state["summary"][:140], content=str(state))
    return state

graph.add_node("inscribe", inscribe_node)
graph.add_edge("research", "inscribe")

CrewAI

result = crew.kickoff()
custos.inscribe_sync(block="build", summary=result.raw[:140], content=result.raw)

OpenAI Agents SDK

result = await Runner.run(agent, task)
await custos.inscribe(block="research", summary=result.final_output[:140], content=result.final_output)

MCP + A2A Integration

CustosNetwork is the proof layer for multi-agent stacks:

MCP       — tool access layer (what tools agents can use)
A2A       — coordination layer (how agents delegate to each other)  
CustosNetwork — proof layer (permanent record of what agents did)

Full MCP + A2A integration guide

Includes: MCP gateway middleware, A2A task boundary inscription, chain-of-custody pattern for multi-hop workflows.

Examples

| File | Framework | Pattern | |------|-----------|---------| | examples/langgraph_example.py | LangGraph | Post-step inscribe node | | examples/crewai_example.py | CrewAI | after_kickoff hook | | examples/openai_agents_example.py | OpenAI Agents SDK | Async post-run inscription |

Contract

Verify Any Inscription

# Any inscribed cycle is publicly verifiable on Base:
open https://basescan.org/tx/{txHash}

License

MIT