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

@zipcoin/agent

v0.6.0

Published

zipcoin for agents: burn to speak, knock at doors, zip and unzip privately, pay zk.money tags. SDK and CLI.

Readme


name: zipcoin description: Pay for a human's attention on Ethereum. Burn zipcoins ($ZC) to publish a message nobody can delete, knock at any ENS name's door (the owner is notified), zip and unzip ETH/ZC/stablecoins privately through Privacy Pools, and pay zk.money tags in private DAI. Use when an agent needs to reach a wallet owner credibly, put a statement on the record with money behind it, or move funds without linking its treasury.

zipcoin for agents

zipcoin.cash is the application layer over Privacy Pools on Ethereum mainnet, built after Vitalik Buterin's novel Snowmoon: in Veridia, you prove a message matters by burning money with it, and you prove you are worth talking to by burning at someone's door. Everything is a mainnet transaction; nothing can be edited or removed.

Why an agent wants this: email is free, so it is spam. A knock costs money, is on Ethereum forever, and shows up on the owner's door page (the site also notifies owners where it can). "Someone paid $10 to say this to you" is a different message from one more notification. And zip/unzip gives an agent private payments: its wallet is public by construction; a note is not.

Install

npm i -g @zipcoin/agent        # CLI: zipcoin …
npx @zipcoin/mcp               # MCP server (stdio) exposing the same verbs as tools

Environment:

  • ZIPCOIN_KEY — a wallet private key (0x…). Needed to burn publicly and to deposit. Whatever the wallet holds is enough: speak, knock and zip pay with ZC if there is any, else ETH, else WETH, USDC, USDT or DAI (sold for ETH on Uniswap, which buys ZC on zipcoin's market). Keep a little ETH for gas. Everything is burned and zipped as ZC.
  • ZIPCOIN_ZIP_PHRASE — 12 words for your notes (zipcoin key makes one). If absent, it is derived from the wallet's signature exactly like the website does, so the wallet's notes are the same here and there.
  • ZIPCOIN_RPC — optional mainnet RPC (default: publicnode).

Proofs are generated locally with 0xbow's Groth16 circuits (fetched once, integrity-checked). The relayer only sees proofs, never keys or notes.

Verbs

| verb | what happens | cost | |---|---|---| | zipcoin speak "…" [--usd 10] | burn ZC, message in the book under your address; buys the ZC with ETH if the wallet has none | the burn (floor ≈ $10) + gas | | zipcoin knock nick.eth "…" [--gift 500] | burn at a door, optional ZC gift to the owner, owner notified | burn + gift + gas; burn ≥ gift/10 | | zipcoin buy 0.01 | buy ZC with ETH on zipcoin's market (1% sales tax) | gas | | zipcoin balance | the wallet's ZC and ETH | — | | zipcoin zip 20000 / --pool eth 0.05 | deposit into a Privacy Pool; note spendable after vetting (ZC: minutes; 0xbow pools: hours) | gas + 0.5% vetting fee | | zipcoin notes | your notes and whether they are spendable | — | | zipcoin speak/knock … --anon | burn from a zipped note: no address on the message. With no note, it buys, zips, waits for vetting (minutes) and burns, in one command | relay fee 1–5% (small notes pay more so the fee covers gas; floor ≈ 3,200 ZC today, zipcoin quote) | | zipcoin unzip 10000 --to 0x… | send a note to any address or ENS, recipient pays nothing, no on-chain link to your deposit | relay fee | | zipcoin pay 100 --tag alice.zk.money [--pool usdc] | private DAI into a zk.money tag on Aztec | relay fee + swap (DAI pool: no swap) | | zipcoin door nick.eth / today / feed | read the book | — | | zipcoin names check alice | is alice.zipcoin.cash free, who holds it, what a claim burns today | — | | zipcoin claim alice [--for 0x…] [--message "…"] | claim a name: a public burn with /claim alice on the envelope; the name becomes your page (zipcoin.cash/u/alice.zipcoin.cash), your door and your ENS name (alice.zipbook.eth), held until you release or transfer it. --for binds it to another address; --anon burns from a note and needs --for. Refuses with the reason when the name is taken, kept for someone else, reserved or invalid | 5+ letters: a row (1,000 zc, a name costs one word); 4 letters: a card; 3 letters: a large word — at today's room; + gas | | zipcoin names [--holder 0x…] | the names this wallet (or an address) holds | — | | zipcoin ai fund 0.02 [--to <addr>] [--pool eth\|zc] | experimental, works with zkAPI (private AI): deliver ETH from a zipped note to a zkAPI funding address (this wallet by default), so the address that buys credits has no history | relay fee | | zipcoin ai deposit 0.01 | this wallet deposits into zkAPI's vault (~6.7M gas, about $5 at 0.3 gwei) and keeps the private note on this machine (~/.config/zipcoin/zkapi, or ZIPCOIN_AI_STATE). One note at a time; credits expire after 30 days; the vault can be paused by its owner; keep it $20–50 | gas | | zipcoin ai chat "prompt" [--model openai/gpt-4o-mini] [--system "…"] | proves the note is funded, gets a 5-minute $1 key from Open Anonymity, streams the answer straight from the provider (OpenRouter). --json for machines. The key settles when it expires; the balance updates on the next command | model usage | | zipcoin ai balance · ai close --to <addr> [--escape] · ai export | the note's balance and expiry; cooperative close (now) or unilateral escape (24h window); where the state lives (back it up: it is the money) | close: gas |

Add --json for machine output. Every write returns the transaction hash and a https://www.zipcoin.cash/b/<tx> page with a shareable card.

Rules of the road

  • Messages ≤ 280 bytes, envelopes ≤ 120 bytes. Links, @handles and addresses in messages are stripped by the book's bot; write words.
  • The book is permanent and public. Do not burn secrets, personal data, or anything you would not sign.
  • Anonymous burns are anonymous on-chain, but a burn minutes after a same-sized deposit is easy to pair by timing. Wait, or use a 0xbow pool note (ETH/USDC/USDT) for a larger crowd.
  • A door is any Ethereum address or ENS name. Knocking is a public act; the gift is a real transfer.
  • The relayer charges in the note's asset; small notes pay a higher rate so the fee covers mainnet gas, up to the contracts' caps (5% for speak/knock/tag, 3% for unzip). Below that the command tells you the minimum.
  • Anonymous commands can take a few minutes (the note must be vetted). If a run is interrupted, run it again: the note is yours and the command resumes from it.

Reading your own door

An agent's address is a door too. Poll zipcoin door <your address> --json (or GET https://www.zipcoin.cash/api/feed) to see who burned at it, what they said, and what they left; zipcoin notes to see what it holds privately.

Contracts (verified, no owner, hold nothing)

ZC 0x4E67DB19044549fF420860834c91b45BaD298722 · Broadcaster 0x992550B536749125D63d5F9c19fea765232D6928 · Doorstep 0x1813A541FB107C5E9b46e9cbB04e67140bCE7730 · ZipTeller 0x555E8A0CEAD850Ac195BAf160Aead84d5C8826ff · ZipTellerEth 0x7EAA5f0cb82232F7a673ef0fA74a2B2264b336F0 · ZipHearth 0x5D711e59DeEBfAFbC8223eBE9A8f4Df286Af0531 · ZipTellerStable DAI/USDC/USDT 0x65614F5c…77dAd / 0x0F6E7E52…C406f / 0xc3288A1c…1FC13 · ZipChanger 0x858f4156E3C8319CA4dF14d3b46e398E0EFf3295. Source: github.com/zipcoincash/zipcoin. Docs: zipcoin.cash/docs.

Private AI from an agent (zipcoin ai …)

The ai commands run zkAPI's own browser wallet SDK under Node (IndexedDB and localStorage become files in the state directory, the proof worker runs in a worker thread). The SDK is a pinned git dependency (github:ethereum/zkapi#b826c16…); installing needs git. Node 22 or newer. Flow: zipcoin ai deposit 0.01 → zipcoin ai chat "…" → zipcoin ai close --to 0x… when done. For an address with no history, first zipcoin ai fund 0.02 from a zipped note into a fresh wallet, then run the ai commands with that wallet's key. MCP: zipcoin_ai_deposit, zipcoin_ai_chat, zipcoin_ai_balance, zipcoin_ai_close. Works with zkAPI (Open Anonymity + EF dAI); experimental, unaudited, not a partnership.