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 🙏

© 2025 – Pkg Stats / Ryan Hefner

bountychain-cli

v1.0.1

Published

AI-powered GitHub bounty system with Solana NFT rewards

Readme

🏆 BountyChain CLI

AI-Powered GitHub Bounties with Solana NFT Rewards

BountyChain is a CLI tool that automatically:

  1. Scans GitHub repositories using AI (Neurolink) to identify improvement opportunities
  2. Creates bounty issues on GitHub
  3. Verifies PR submissions using AI to determine if they solve the bounty
  4. Rewards contributors with NFTs on Solana Devnet

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • npm or pnpm
  • GitHub Personal Access Token (PAT)
  • Neurolink AI platform (for AI-powered scanning and verification)

Installation

# Clone or navigate to the project
cd bountychain-cli

# Install dependencies
npm install

# Copy environment configuration
cp .env.example .env

# Edit .env and add your GitHub token
# GITHUB_TOKEN=your_github_pat_here

# Build the project
npm run build

# Link globally (optional)
npm link

Setting Up Neurolink AI

BountyChain uses Neurolink by Juspay as the AI execution engine. Neurolink provides access to 12+ AI providers (OpenAI, Anthropic, Google, AWS Bedrock, etc.) under one unified API.

# Run the Neurolink setup wizard
pnpm dlx @juspay/neurolink setup

# Or using npx
npx @juspay/neurolink setup

The setup wizard will:

  1. Let you select your preferred AI provider
  2. Guide you through API key configuration
  3. Validate your credentials

Supported providers:

  • OpenAI (GPT-4o, GPT-4o-mini, o1)
  • Anthropic (Claude 3.5/3.7 Sonnet, Opus)
  • Google AI Studio (Gemini 2.5 Flash/Pro) - Free tier available!
  • AWS Bedrock (Claude, Titan, Llama, Nova)
  • Azure OpenAI
  • Mistral AI
  • Ollama (local models - free!)
  • And 5+ more providers

Environment Variables

Create a .env file with:

# Required: GitHub Personal Access Token
# Create at: https://github.com/settings/tokens
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

# Solana network (devnet recommended for testing)
SOLANA_NETWORK=devnet

# Optional: Your Solana private key (base58 encoded)
SOLANA_PRIVATE_KEY=

Note: Neurolink AI provider configuration is handled separately via pnpm dlx @juspay/neurolink setup

📖 Usage

Complete Workflow

# 1. Initialize with a GitHub repository
bounty init https://github.com/vercel/next.js

# 2. Scan the repo to generate bounty suggestions (uses Neurolink AI)
bounty scan

# 3. Create GitHub issues for the bounties
bounty create

# 4. List all bounties
bounty list

# 5. When a PR is submitted, verify it (uses Neurolink AI)
bounty verify-pr https://github.com/vercel/next.js/pull/123

# 6. If verified, mint an NFT reward
bounty reward contributor-username

Commands Reference

bounty init <repo-url>

Initialize BountyChain with a GitHub repository.

bounty init https://github.com/owner/repo

What it does:

  • Validates the GitHub URL
  • Verifies repository access
  • Saves configuration for subsequent commands

bounty scan

Use AI to analyze the repository and generate bounty suggestions.

bounty scan

What it does:

  • Fetches repository file structure
  • Retrieves README content
  • Sends to Neurolink AI for analysis
  • Generates 5-10 bounty suggestions with:
    • Title
    • Description
    • Difficulty (easy/medium/hard)
    • Estimated time

bounty create

Create GitHub issues from the last scan results.

bounty create

What it does:

  • Takes bounties from last scan
  • Creates GitHub issues with bounty labels
  • Stores mapping of bounty ID to issue number

bounty list

Display all bounties and their status.

bounty list
bounty list --status open
bounty list --status completed

Options:

  • -s, --status <status> - Filter by status (open, claimed, completed)

bounty verify-pr <pr-url>

Verify if a Pull Request correctly solves a bounty.

bounty verify-pr https://github.com/owner/repo/pull/123

What it does:

  • Fetches PR details
  • Detects linked issue (looks for "Fixes #xx")
  • Downloads PR diff
  • Sends to AI for verification
  • Updates bounty status if passed
  • Adds comment to PR with results

PR Requirements:

  • PR body should contain Fixes #xx or Closes #xx referencing the bounty issue

bounty reward <github-username>

Mint an NFT reward for completing a bounty.

bounty reward octocat
bounty reward octocat --wallet <solana-address>
bounty reward octocat --bounty <bounty-id>

Options:

  • -w, --wallet <address> - Recipient's Solana wallet address
  • -b, --bounty <id> - Specific bounty ID to reward

What it does:

  • Finds completed bounty for the user
  • Mints NFT on Solana Devnet
  • Returns mint address and explorer link
  • Generates QR code text for Phantom wallet

🏗️ Project Structure

bountychain-cli/
├── src/
│   ├── commands/          # CLI command implementations
│   │   ├── init.ts        # bounty init
│   │   ├── scan.ts        # bounty scan
│   │   ├── create.ts      # bounty create
│   │   ├── list.ts        # bounty list
│   │   ├── verifyPR.ts    # bounty verify-pr
│   │   └── reward.ts      # bounty reward
│   ├── github/            # GitHub API integration
│   │   ├── issues.ts      # Issue operations
│   │   └── pr.ts          # PR operations
│   ├── ai/                # AI integration
│   │   └── runAI.ts       # Neurolink wrapper
│   ├── solana/            # Blockchain integration
│   │   └── mintNFT.ts     # NFT minting
│   ├── utils/             # Utilities
│   │   ├── config.ts      # Configuration management
│   │   └── logger.ts      # Logging utilities
│   └── index.ts           # Main entry point
├── data/
│   └── bounties.json      # Local storage
├── package.json
├── tsconfig.json
├── .env.example
└── README.md

🔧 Technical Details

GitHub API Integration

  • Uses GitHub REST API v3
  • Requires PAT with repo scope
  • Handles rate limiting with delays

AI Integration (Neurolink)

  • Connects to local Neurolink instance
  • Falls back to mock implementation if unavailable
  • Used for:
    • Repository scanning
    • PR verification

Solana NFT Minting

  • Uses Solana Devnet by default
  • Creates SPL tokens with 0 decimals (NFT-style)
  • Generates temporary wallet if not configured
  • Auto-requests airdrop for transaction fees

🧪 Testing

# Use a public repository for testing
bounty init https://github.com/vercel/next.js/tree/canary/examples/blog-starter

# Or any small repo you have access to
bounty init https://github.com/your-username/your-repo

# Test the workflow
bounty scan
bounty create
bounty list

📝 Data Storage

Bounties are stored in data/bounties.json:

{
  "repo": {
    "owner": "vercel",
    "repo": "next.js",
    "url": "https://github.com/vercel/next.js"
  },
  "bounties": {
    "bounty-123-1": {
      "id": "bounty-123-1",
      "title": "Add comprehensive README",
      "description": "...",
      "difficulty": "easy",
      "estimatedTime": "2-4 hours",
      "issue": 45,
      "status": "open",
      "createdAt": "2024-01-15T10:00:00Z"
    }
  },
  "lastScan": [...]
}

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

📄 License

MIT License - feel free to use this for your own bounty programs!


Built with ❤️ for the Web3 community