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

@blockia-pay/blockia-server-sdk

v0.2.0

Published

Backend SDK for merchants to integrate Blockia Pay X402 protocol into their APIs. Enables pay-per-use endpoints and automatic payment processing.

Readme

@blockia/server-sdk

Backend SDK for merchants to integrate Blockia Pay X402 protocol into their APIs. Enables pay-per-use endpoints and automatic payment processing.

Installation

npm install @blockia/server-sdk
# or
yarn add @blockia/server-sdk
# or
pnpm add @blockia/server-sdk

Quick Start

Basic Usage

import { BlockiaServer } from '@blockia/server-sdk';

const blockiaServer = new BlockiaServer({
  apiUrl: 'https://api.blockia.com',
  secretKey: 'sk_live_...', // Your secret key from Blockia dashboard
});

// Create a payment record
const paymentRecord = await blockiaServer.createPaymentRecord({
  amount: 9.99,
  description: 'Premium API Access',
  successUrl: 'https://yourapp.com/success',
  cancelUrl: 'https://yourapp.com/cancel',
});

console.log(paymentRecord.url); // Payment URL for customers

Express Middleware for X402 Protection

import express from 'express';
import { x402Middleware } from '@blockia/server-sdk';

const app = express();

// Protect endpoints with payment requirements
app.use(
  x402Middleware({
    secretKey: 'sk_live_...',
    protectedEndpoints: {
      '/api/premium/data': 0.1, // $0.10 per request
      '/api/premium/analytics': 0.5, // $0.50 per request
    },
  })
);

// Protected endpoint
app.get('/api/premium/data', (req, res) => {
  // Payment already verified by middleware
  const { recordId, transactionHash, amount } = req.payment;

  res.json({
    data: 'premium content',
    payment: { recordId, transactionHash, amount },
  });
});

app.listen(3000);

API Reference

BlockiaServer

Constructor

new BlockiaServer(config: BlockiaServerConfig)

Parameters:

  • config.apiUrl: Base URL for the Blockia API
  • config.secretKey: Your secret key for API authentication

Methods

createPaymentRecord(request: CreatePaymentRecordRequest): Promise

Creates a new payment record.

Parameters:

  • request.amount: Payment amount (number)
  • request.description: Payment description (string)
  • request.successUrl?: URL to redirect after successful payment
  • request.cancelUrl?: URL to redirect after cancelled payment
  • request.metadata?: Custom metadata object
  • request.expiresInHours?: Payment expiration time
validatePaymentRecord(recordId: string): Promise<ValidatePaymentRecordResponse>

Validates a payment record status.

getPaymentRecord(recordId: string): Promise<CreatePaymentRecordResponse>

Gets payment record details.

generateX402Requirements(recordId: string): Promise<X402PaymentRequirementsResponse>

Generates X402 payment requirements for a payment.

payWithX402(recordId: string, paymentRequest: X402PaymentRequest): Promise<PaymentSettlementResponse>

Processes an X402 payment.

Middleware

x402Middleware(config: X402MiddlewareConfig)

Express middleware that protects endpoints with X402 payments.

Config:

  • secretKey: Your secret key
  • protectedEndpoints: Object mapping endpoint paths to payment amounts
  • apiUrl?: Custom API URL

x402Protect(secretKey: string, amount: number, apiUrl?: string)

Convenience function for protecting individual endpoints.

Agent Client SDK Updates

The Blockia Agent SDK now includes fetchWithPayment() for automatic X402 payment handling:

import { BlockiaAgent } from '@blockia/agent-sdk';

const agent = new BlockiaAgent({
  privateKey: '0x...',
  apiUrl: 'https://api.blockia.com',
});

// Automatically handles payments for protected endpoints
const response = await agent.fetchWithPayment(
  'https://api.example.com/premium/data'
);
const data = await response.json();

Error Handling

All methods throw errors for failed requests. Common errors:

  • NetworkError: API communication failures
  • ValidationError: Invalid parameters or responses

Environment Variables

BLOCKIA_API_URL=https://api.blockia.com
BLOCKIA_SECRET_KEY=sk_live_...

License

MIT