Interactive runtime
Register users, log in, connect wallets, link banks, and inspect balances and transaction history.
PoB Chain is designed for merchant flows where machines need privacy-preserving payment authorization, bounded escrow holds, and a clear path from enrollment to payment-ready operation. This root page is the discovery layer for both people and agents.
Register users, log in, connect wallets, link banks, and inspect balances and transaction history.
Manage registry-backed contracts, register long-term PoB tokens with escrow, register settlement wallets, and run hold/settle flows.
The dashboard now lives at /dashboard/index.html so this root page can stay lightweight and searchable.
Learn why zkLoop Labs is building confidential, agent-ready payment infrastructure for real-world commerce.
Read the original PoB technical white paper as a PDF.
Human-readable x402 proposal entry point for this repo, including the PoB escrow scheme draft.
Human-readable machine payment proposal drafts for escrow intent and PoB-specific payment method bindings.
/docs/enroll-pob-chain.md./pob-agent.json./skill.md for the stateful JS runtime model.window.SPAAdapter on /dashboard/index.html or the headless Node bootstrap at /node_runtime.mjs.payment-ready-check.await window.SPAAdapter.login({ userId, password });
await window.SPAAdapter.connectWallet(rpcUrl);
const contract = await window.SPAAdapter.getContractFromRegistry("venue merchant");
const wallets = await window.SPAAdapter.getSettlementWalletsForContract(contract.address);
node cli.mjs payment-ready-check \
--user-id customer01 \
--password 'customer-password' \
--contract-name 'venue merchant' \
--json
import { setupNodeRuntime } from "./node_runtime.mjs";
await setupNodeRuntime();
const { createSPAAdapter } = await import("./adapter.js");
Log in as the operator or token owner and register a long-term PoB token with escrow.
Log in as the merchant owner and register the long-term PoB token used by merchant flows.
Run merchantRegister(...) in the dashboard or the CLI wrapper to provision settlement wallets.
Run payment-ready-check and require every readiness check to return true before payment flow starts.