🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@payweave/next

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@payweave/next

Next.js integration for PayWeave - accept per-request USD micropayments on Next.js API routes.

latest
npmnpm
Version
0.0.17
Version published
Maintainers
1
Created
Source

@payweave/next

Next.js integration for PayWeave - accept per-request USD micropayments on Next.js API routes.

Install

npm install @payweave/next

Quick Start

// app/api/weather/route.ts
import { Payweave } from '@payweave/next';
import { NextRequest, NextResponse } from 'next/server';

const payweave = new Payweave(
  process.env.PAYWEAVE_APP_ID!,
  process.env.PAYWEAVE_APP_SECRET!
);

export const GET = payweave.charge(
  { price: '0.001', description: 'Weather API' },
  async (req: NextRequest) => {
    return NextResponse.json({ temp: 72, unit: 'F' });
  }
);

API

new Payweave(appId, appSecret, baseUrl?)

ParameterTypeDescription
appIdstringYour app key ID
appSecretstringYour app secret
baseUrlstring?API base URL (defaults to https://api.payweave.app)

payweave.charge(options, handler)

Wraps a route handler with payment verification. Returns (req: NextRequest) => Promise<NextResponse>.

OptionTypeDescription
pricestring | (req: NextRequest) => string | Promise<string>USD price per request
descriptionstring?Human-readable description
metaRecord<string, string>?API metadata for agent discovery

Note: Unlike other adapters, the Next.js adapter wraps your handler function directly. The handler is passed as the second argument to charge().

Examples

// app/api/search/route.ts
import { Payweave } from '@payweave/next';
import { NextRequest, NextResponse } from 'next/server';

const payweave = new Payweave(
  process.env.PAYWEAVE_APP_ID!,
  process.env.PAYWEAVE_APP_SECRET!
);

export const GET = payweave.charge(
  { price: '0.01' },
  async (req: NextRequest) => {
    const query = req.nextUrl.searchParams.get('q');
    return NextResponse.json({ results: [], query });
  }
);

export const POST = payweave.charge(
  { price: '0.02', description: 'Advanced search' },
  async (req: NextRequest) => {
    const body = await req.json();
    return NextResponse.json({ results: [], query: body.query });
  }
);

Dynamic pricing

export const POST = payweave.charge(
  {
    price: async (req: NextRequest) => {
      const body = await req.clone().json();
      return body.premium ? '0.05' : '0.01';
    },
    description: 'Text generation',
  },
  async (req: NextRequest) => {
    const body = await req.json();
    return NextResponse.json({ text: 'generated' });
  }
);

With metadata for agent discovery

export const POST = payweave.charge(
  {
    price: '0.005',
    description: 'Sentiment analysis',
    meta: {
      'method': 'POST',
      'input.content-type': 'application/json',
      'input.schema': '{"type":"object","properties":{"text":{"type":"string"}}}',
      'output.schema': '{"type":"object","properties":{"score":{"type":"number"}}}',
    },
  },
  async (req: NextRequest) => {
    const { text } = await req.json();
    return NextResponse.json({ score: 0.85, text });
  }
);

Multiple routes

app/api/
  weather/route.ts    -> export const GET = payweave.charge(...)
  forecast/route.ts   -> export const GET = payweave.charge(...)
  analyze/route.ts    -> export const POST = payweave.charge(...)

How It Works

  • A request hits your API route without a payment header
  • The wrapper responds with 402 Payment Required and pricing info
  • The agent submits payment on Tempo and retries with Authorization: Payment <credential>
  • PayWeave verifies the payment, calls your handler, and adds a Payment-Receipt header to the response
  • Your response is returned to the agent

License

MIT

FAQs

Package last updated on 03 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts