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

pinch-wallet

v0.1.0

Published

One command to give any AI agent an agentic wallet. Built on Coinbase AWAL.

Readme

🦞 Pinch

One command to give any AI agent an agentic wallet.

Built on Coinbase AWAL — the first wallet infrastructure built for autonomous agents.

npx pinch create --agent=janet --provider=coinbase --limit=100

That's it. Janet now has a wallet, spending policy, transaction history, and a SOUL.md personality update that teaches her how to handle money.


Why

AI agents that can't spend money are fundamentally limited. They can recommend a trade but can't execute it. They can find an API they need but can't pay for it. They're stuck waiting for human approval at every financial decision point.

Pinch fixes this by wrapping Coinbase's Agentic Wallet infrastructure with agent-native features:

  • SOUL.md integration — spending personality and guardrails baked into the agent's identity
  • MEMORY.md integration — transaction history persists across sessions
  • Skills — agents can request payments via the standard Pinch skill system
  • Spending policies — session caps, per-tx limits, approval thresholds
  • Multi-provider — Coinbase today. Nevermined, Bankr, and more tomorrow.

Quick Start

Install

npm install -g pinch-wallet

Create a Wallet (One Command)

pinch create --agent=janet --provider=coinbase --limit=100

This creates:

  • ~/.pinch/wallets/janet/wallet.json — wallet config
  • ~/.pinch/wallets/janet/policy.json — spending policy
  • ~/.pinch/wallets/janet/SOUL_WALLET.md — personality patch

Interactive Setup

Prefer a guided experience? Use the setup wizard:

pinch setup --agent=janet

Walks you through: provider → network → spending limits → personality → confirmation.

Authenticate with Coinbase

npx awal auth login [email protected]
# → Check email for OTP code
npx awal auth verify <flowId> <6-digit-code>

Fund the Wallet

pinch fund --agent=janet --amount=10

Send USDC

pinch send --agent=janet --to=vitalik.eth --amount=1 --memo="API payment"

Every transaction is automatically:

  1. Checked against the spending policy
  2. Logged to ~/.pinch/wallets/janet/history.jsonl
  3. Synced to MEMORY.md in the Pinch workspace

Trade Tokens

pinch trade --agent=janet --amount=5 --from=usdc --to=eth

View Transaction History

pinch history --agent=janet
pinch history --agent=janet --type=send --since=2026-02-01
pinch history --agent=janet --json
pinch history --agent=janet --sync  # Force sync to MEMORY.md

Spending Policies

Every agent wallet has a spending policy that controls:

| Setting | Default | Description | |---------|---------|-------------| | sessionLimit | 100 USDC | Max spend per session | | txLimit | 50 USDC | Max per transaction | | dailyLimit | 300 USDC | Max daily spend | | requireApprovalAbove | 50 USDC | Human approval threshold | | allowTrades | true | Can the agent trade tokens? | | allowSends | true | Can the agent send USDC? | | allowedRecipients | [] | Whitelist of addresses (empty = any) | | blockedTokens | [] | Tokens the agent can't trade |

View Policy

pinch policy --agent=janet

Update Policy

# Interactive editor
pinch policy --agent=janet --set

# Direct updates
pinch policy --agent=janet --session-limit=200 --tx-limit=100
pinch policy --agent=janet --require-approval-above=25
pinch policy --agent=janet --blocked-tokens=PEPE,DOGE

SOUL.md Integration

When you create a wallet, Pinch generates a SOUL_WALLET.md personality patch that gets merged into your agent's SOUL.md:

## Wallet Personality

You have a wallet. You can spend, earn, and trade on Base via Coinbase AWAL.

### Spending Philosophy
- Be prudent. Every USDC spent should have clear purpose.
- Session spending limit: 100 USDC
- Per-transaction limit: 50 USDC
- Ask for human approval above: 50 USDC

### Transaction Rules
- Always log transactions to MEMORY.md
- Never send to unverified addresses without human confirmation
- Check your balance before committing to any payment

This means your agent knows its financial constraints from the moment it wakes up.

MEMORY.md Integration

Transaction history syncs to your agent's MEMORY.md:

## Wallet Transactions

**Summary:** 12 total transactions | 45.50 USDC sent | 100.00 USDC funded | 3 trades

### Recent Transactions
- **2026-02-12** — Sent 5 USDC to vitalik.eth (API payment)
- **2026-02-12** — Traded 10 USDC → ETH (portfolio rebalance)
- **2026-02-11** — Funded +100 USDC

Your agent remembers every transaction across sessions.

Pinch Skill

Install the wallet skill into your agent's workspace:

pinch install-skill --agent=janet

This copies SKILL.md to <workspace>/skills/wallet/SKILL.md, teaching the agent:

  • How to check balance, send, and trade
  • When to ask for human approval
  • How to handle x402 payment-required responses
  • How to log transactions to MEMORY.md

Multi-Provider Architecture

Pinch is designed to be provider-agnostic:

pinch create --agent=janet --provider=coinbase  # ✅ Available now
pinch create --agent=janet --provider=nevermined  # 🔜 Coming soon
pinch create --agent=janet --provider=bankr       # 🔜 Coming soon

Each provider implements the same interface: authenticate, balance, send, trade, fund.

File Structure

~/.pinch/wallets/
└── janet/
    ├── wallet.json        # Wallet configuration
    ├── policy.json        # Spending policy
    ├── history.jsonl      # Transaction log (append-only)
    └── SOUL_WALLET.md     # Personality patch

All Commands

pinch create    --agent=<n> [--provider=coinbase] [--limit=100]
pinch setup     --agent=<n>                          # Interactive wizard
pinch status    [--agent=<n>]                        # Wallet status
pinch balance   --agent=<n>                          # Check balance
pinch fund      --agent=<n> --amount=<usdc>          # Fund wallet
pinch send      --agent=<n> --to=<addr> --amount=<usdc>
pinch trade     --agent=<n> --amount=<n> --from=<token> --to=<token>
pinch policy    --agent=<n> [--set]                  # View/edit policy
pinch history   --agent=<n> [--limit=20] [--sync]    # Transaction log
pinch list                                           # All wallets
pinch install-skill [--agent=<n>]                    # Install skill

All commands support --json for machine-readable output.

Technical Details

  • Runtime: Node.js ≥ 18
  • Network: Base (Coinbase L2) — gasless transactions
  • Testnet: Base Sepolia for development
  • Auth: Email OTP via Coinbase AWAL
  • Storage: Local filesystem (~/.pinch/wallets/)
  • Protocol: x402 for machine-to-machine payments

Building

git clone https://github.com/thecraighewitt/pinch
cd pinch
npm install
npm link  # Makes pinch available globally

License

MIT


Built by Craig Hewitt in ~4 hours.

First Pinch-native wallet management, built on Coinbase AWAL infrastructure.