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

@isnad/scanner

v0.1.0

Published

ISNAD Scanner - Detection oracle for malicious AI resources

Readme

ISNAD Scanner

Detection oracle for the ISNAD trust protocol. Scans AI resources (skills, prompts, configs) for malicious patterns and submits flags to the on-chain oracle.

Installation

cd scanner
npm install
npm run build

Usage

Scan a file

# Basic scan
npm run scan -- scan ./path/to/skill.js

# Output as JSON
npm run scan -- scan ./path/to/skill.js --json

# With custom resource hash
npm run scan -- scan ./path/to/skill.js --hash 0x123...

Scan multiple files

# Scan all JS files in a directory
npm run scan -- batch "./skills/**/*.js"

# Fail fast on first high-risk finding
npm run scan -- batch "./skills/**/*.js" --fail-fast

Generate evidence

npm run scan -- evidence ./malicious-skill.js

Submit flag to oracle

# Dry run (analyze but don't submit)
npm run scan -- flag ./malicious-skill.js --dry-run

# Submit to testnet
npm run scan -- flag ./malicious-skill.js --network testnet

# Submit to mainnet
npm run scan -- flag ./malicious-skill.js --network mainnet

Run as service

# Set environment variables
export ISNAD_PRIVATE_KEY=0x...
export ISNAD_AUTO_FLAG=false  # Set true for automatic flagging

# Start service
npm start

Environment Variables

| Variable | Description | Default | |----------|-------------|---------| | ISNAD_PRIVATE_KEY | Private key for flag submissions | Required | | ISNAD_REGISTRY_ADDRESS | Registry contract address | Sepolia default | | ISNAD_ORACLE_ADDRESS | Oracle contract address | Sepolia default | | ISNAD_NETWORK | testnet or mainnet | testnet | | ISNAD_AUTO_FLAG | Auto-submit flags | false | | ISNAD_MIN_CONFIDENCE | Min confidence for auto-flag | 0.7 |

Detection Patterns

The scanner detects:

Critical

  • Dynamic code execution (eval, Function)
  • Shell command execution (exec, spawn)
  • Child process imports
  • VM module usage
  • Keychain/credential store access
  • System directory writes

High

  • Data exfiltration (webhooks, base64 sends)
  • Sensitive file reads (.env, .ssh, credentials)
  • Raw socket access
  • DNS-based exfiltration
  • Security bypass attempts
  • Cryptocurrency mining

Medium

  • Environment variable access
  • Recursive directory reads
  • Home directory access
  • Obfuscation patterns

Low

  • Unicode escape sequences
  • Minor suspicious patterns

API

import { analyzeContent, formatResult } from '@isnad/scanner';

const result = analyzeContent(code, resourceHash);
console.log(formatResult(result));

// Result includes:
// - riskLevel: 'critical' | 'high' | 'medium' | 'low' | 'clean'
// - riskScore: number
// - confidence: 0-1
// - findings: detailed pattern matches

Contract Addresses

Base Sepolia (Testnet)

  • Registry: 0x8340783A495BB4E5f2DF28eD3D3ABcD254aA1C93
  • Oracle: 0x4f1968413640bA2087Db65d4c37912d7CD598982

Base Mainnet

  • Coming soon

License

MIT