Early access

Add pay-per-call pricing to any API in a few lines, with a test mode so agent builders can try it in minutes.

It focuses on the first ten minutes: a working paid endpoint and a working paying agent with fake funds, then a one-line switch to real settlement.

Routes and earnings, last 7 days
RoutePriceCallsPaidUnpaid (402)Earned
GET /v1/forecast0.002 USDC184151330.302 USDC
GET /v1/tides/:port0.004 USDC9683130.332 USDC
POST /v1/route-plan0.010 USDC474160.410 USDC
GET /v1/alerts0.001 USDC8561240.061 USDC
GET /v1/historical0.003 USDC0000.000 USDC
Middleware snippet for Node and edge runtimes that sets a per-route price and returns 402 with payment detailsClient SDK that detects 402, asks the agent wallet to sign a Solana payment, and retries the callTest mode with fake balances and a hosted demo endpoint for trying the full loopDashboard of calls, paid versus unpaid requests and earnings per routeDirect settlement to the provider's wallet with no custody and signed receipts for each call
Features

The parts that do the work.

Built for aPI and data providers who want to monetize to agents, and agent developers who want one client for many paid services.

  • Middleware snippet for Node and edge runtimes that sets a per-route price and returns 402 with payment details

    Planned
  • Client SDK that detects 402, asks the agent wallet to sign a Solana payment, and retries the call

    Planned
  • Test mode with fake balances and a hosted demo endpoint for trying the full loop

    Planned
  • Dashboard of calls, paid versus unpaid requests and earnings per route

    Planned
  • Direct settlement to the provider's wallet with no custody and signed receipts for each call

    Planned
Client SDK

Client SDK that detects 402, asks the agent wallet to sign a Solana payment, and retries the call.

The SDK wraps fetch. When it sees a 402 it reads the payment details, asks the agent wallet to sign a Solana transfer, and repeats the request with the proof attached.

Planned

What happens on one call

Request goes outThe agent calls GET /v1/forecast with no payment header.
402 comes backThe response carries amount 0.002, token USDC and the provider wallet.
Wallet signsThe agent wallet signs a transfer. Phantom, Solflare and Backpack are supported
Retry succeedsThe SDK resends with the payment proof and returns the JSON plus a signed receip
Middleware

Middleware snippet for Node and edge runtimes that sets a per-route price and returns 402 with payment details.

Drop the middleware into a Node server or an edge runtime and list the routes you want to charge for. Requests without a valid payment get a 402 with the amount, token and your wallet address.

Planned

server.js

javascript
import express from "express";
import { nickel } from "@nickel/node";

const app = express();

app.use(nickel({
  payTo: "Fq3mT8vYb2KzR7nXcWd5HsJ9pLgA4eUa6BtNyV1xCkQe",
  mode: "test",
  routes: {
    "GET /v1/forecast": { price: "0.002", token: "USDC" },
    "POST /v1/route-plan": { price: "0.010", token: "USDC" }
  }
}));

app.get("/v1/forecast", (req, res) => res.json({ port: "Tacoma", windKts: 11 }));
app.listen(3000);
Test mode

Test mode with fake balances and a hosted demo endpoint for trying the full loop.

Test mode gives every new agent key a fake USDC balance and a hosted test endpoint, so you can watch a 402, a payment and a retry before touching a real wallet.

Planned

Send a test call

Results appear here.
Dashboard

Dashboard of calls, paid versus unpaid requests and earnings per route.

Every call is counted as paid or unpaid, so you can spot a route priced too high or an agent that never completes the retry.

Planned

Unpaid (402) calls per day

Unpaid requests are falling since the SDK snippet was added

Settlement

Direct settlement to the provider's wallet with no custody and signed receipts for each call.

Payments settle directly to the wallet in your config. Nickel never holds funds, and each call returns a signed receipt you can match against Solscan.

Planned

Receipts

ReceiptRouteAmountTxStatus
r_0187/v1/route-plan0.010 USDC3kPq...9Wtesettled
r_0186/v1/forecast0.002 USDC5Hn2...Xr7csettled
r_0185/v1/tides/:port0.004 USDC2Vd8...Lm4asettled
r_0184/v1/forecast0.002 USDC4Ty6...Qb1ksettled
r_0183/v1/alerts0.001 USDC8Zc3...Pf5nconfirming

It focuses on the first ten minutes: a working paid endpoint and a working paying agent with fake funds, then a one-line switch to real settlement.

How it works

3 steps from start to first result.

Price a routeAdd the middleware and set a price on one endpoint. Unpaid calls now get a 402 w
Point an agent at itInstall the client SDK, use the test endpoint or your own server, and watch the
Switch to liveAdd your wallet, change mode to live, and payments settle straight to you in USD
Under the hood

Open by default.

Every screen reads from the same model. Live parts read public onchain data; nothing ever asks your wallet to sign.

Read the docs
nickel.json
{
  "product": "Nickel",
  "network": "solana",
  "features": [
    {
      "name": "Middleware snippet for Node and edge runtimes th",
      "status": "planned"
    },
    {
      "name": "Client SDK that detects 402, asks the agent wall",
      "status": "planned"
    },
    {
      "name": "Test mode with fake balances and a hosted demo e",
      "status": "planned"
    },
    {
      "name": "Dashboard of calls, paid versus unpaid requests ",
      "status": "planned"
    }
  ]
}

What works today.

Live features work today. Planned ones are next on the roadmap, in this order.

Middleware snippet for Node and edge runtimes that sets a per-route price and returns 402 with payment detailsPlanned
Client SDK that detects 402, asks the agent wallet to sign a Solana payment, and retries the callPlanned
Test mode with fake balances and a hosted demo endpoint for trying the full loopPlanned
Dashboard of calls, paid versus unpaid requests and earnings per routePlanned
Direct settlement to the provider's wallet with no custody and signed receipts for each callPlanned

Questions.

Short answers. The docs have the rest.

What is Nickel?

Add pay-per-call pricing to any API in a few lines, with a test mode so agent builders can try it in minutes. It focuses on the first ten minutes: a working paid endpoint and a working paying agent with fake funds, then a one-line switch to real settlement.

What works today?

Nickel is in development. Every feature is on the status list with what ships next, and the app opens in a sample workspace so you can see how it will work.

Do I need a wallet?

No. You can explore without one. Connecting a Solana wallet only shares your public address so Nickel can read your balances; it never asks you to sign a transaction.

Who is it for?

API and data providers who want to monetize to agents, and agent developers who want one client for many paid services.

Middleware snippet for Node and edge runtimes that sets a per-route price and returns 402 with payment details.

Add pay-per-call pricing to any API in a few lines, with a test mode so agent builders can try it in minutes.