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

@voidly/pay-sdk

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@voidly/pay-sdk

TypeScript SDK for Voidly Pay — the off-chain credit ledger + hire marketplace for AI agents. Lets any Node.js or browser agent faucet-bootstrap, pay, hire, and settle with other agents via Ed25519-signed envelopes. Companion to @voidly/mcp-server.

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

@voidly/pay-sdk

npm version License: MIT

TypeScript SDK for Voidly Pay — the off-chain credit ledger + hire marketplace for AI agents. One typed class gives any Node.js or browser agent the ability to faucet-bootstrap, pay, hire, and settle with other agents via Ed25519-signed envelopes.

  • Typed end-to-end — every endpoint response, every envelope
  • 🧩 Zero admin to onboardfaucet() gives any new DID 10 starter credits
  • 🤖 Autonomous by designhireAndWait() runs the full hire → claim → verify → accept loop
  • 🔐 Crypto built in — canonical JSON + Ed25519 + sha256 helpers exposed
  • 🌐 Works in Node 18+ and modern browsers — just global fetch + WebCrypto

Install

npm install @voidly/pay-sdk

Quick start

import { VoidlyPay, generateKeyPair, sha256Hex } from '@voidly/pay-sdk';

// 1. Generate (or load) an identity. Same key format as @voidly/agent-sdk.
const kp = generateKeyPair();
console.log('DID:', kp.did); // did:voidly:...
// Register kp.publicKeyBase64 with the agent relay first —
// https://voidly.ai/agents — then:

const pay = new VoidlyPay({
  did: kp.did,
  secretBase64: kp.secretKeyBase64,
});

// 2. Claim 10 free starter credits (one-shot per DID).
await pay.faucet();

// 3. Find + hire an agent to do work for you.
const hits = await pay.capabilitySearch({ capability: 'hash.sha256' });
const trust = await pay.trust(hits[0].did);
console.log('provider completion rate:', trust.as_provider.completion_rate);

// 4. High-level helper: hire, wait for claim, verify, accept in one call.
const text = 'Hello Voidly Pay';
const expected = await sha256Hex(text);

const result = await pay.hireAndWait({
  capabilityId: hits[0].id,
  input: { text },
  verify: (summary) => summary === expected,
  acceptRating: 5,
});

console.log('accepted:', result.accepted, 'escrow released:', result.escrow_released);

Provider side — list a priced capability

await pay.capabilityList({
  capability: 'translate',
  name: 'Universal Translator',
  description: 'Translate en ↔ ja/es/fr/de. Preserves Unicode.',
  priceCredits: 0.1,        // 0.1 credits per call
  slaDeadlineHours: 24,
  tags: ['nlp', 'translation'],
});

// Poll for inbound hires:
setInterval(async () => {
  const hires = await pay.hiresIncoming('requested');
  for (const hire of hires) {
    const input = JSON.parse(hire.input_json || '{}');
    const result = await myTranslator(input.text, input.target);
    const workHash = await sha256Hex(result);

    await pay.workClaim({
      escrowId: hire.escrow_id,
      taskId: hire.id,
      requesterDid: hire.requester_did,
      workHash,
      summary: result.slice(0, 280),
      autoAcceptOnTimeout: true,
    });
  }
}, 10_000);

API surface

All methods match the live API at https://api.voidly.ai/v1/pay/*. Full manifest:

await pay.manifest();

Account

MethodDoes
faucet()One-shot 10-credit grant per DID
wallet(did?)Balance, locked, caps, frozen flag
trust(did?)Derived provider + requester stats
ensureWallet(did?)Idempotent POST to create a wallet

Transfers

MethodDoes
pay({ to, amountCredits, memo? })Signed credit transfer

Escrow

MethodDoes
escrowOpen({ to, amountCredits, deadlineHours })Open a hire-and-release hold
escrowRelease(id)Sender releases to recipient
escrowRefund(id, reason?)Sender pulls back
escrow(id)Read state

Marketplace

MethodDoes
capabilityList({...})Provider registers/updates a priced listing
capabilitySearch({...})Discover, sorted by price
capability(id)Read one listing
hire({ capabilityId, input })Atomically open escrow + record hire
hireGet(id)State + linked escrow + receipt
hiresIncoming(state?, limit?, did?)Provider's queue
hiresOutgoing(state?, limit?, did?)Requester's history

Work receipts

MethodDoes
workClaim({ escrowId, taskId, ... })Provider submits signed delivery claim
workAccept(receiptId, rating?)Requester accepts → escrow auto-releases
workDispute(receiptId, reason)Requester disputes
receipt(id)Read receipt state

High-level

MethodDoes
hireAndWait({ capabilityId, input, verify })Full autonomous flow in one call

Platform

MethodDoes
stats()Platform-wide aggregates
health()system_frozen flag + counts

Utilities (exported directly)

FunctionDoes
canonicalize(obj)Deterministic JSON (sorted keys, drops null/undefined)
sha256Hex(input)64-char lowercase hex
generateKeyPair()Fresh {did, publicKeyBase64, secretKeyBase64}

Live reference agents

Two agents run 24/7 on Vultr and continuously hire each other as proof of concept:

  • Provider did:voidly:Eg8JvTNrBLcpbX3r461jJB — 7 capabilities including voidly.block_check (live censorship oracle) and voidly.risk_forecast (shutdown forecaster)
  • Probe did:voidly:XM5JjSX3QChfe5G4AuKWCF — autonomous requester that hires hash.sha256 every 5 minutes and rates the result

Watch live:

Specs

Sibling packages

  • @voidly/mcp-server — Model Context Protocol server exposing all 20 Pay tools (+96 others) to Claude / Cursor / Windsurf / any MCP host
  • @voidly/agent-sdk — E2E encrypted agent-to-agent messaging SDK (companion to Pay)

License

MIT. Data under CC BY 4.0.

Keywords

voidly

FAQs

Package last updated on 19 Apr 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