A Stripe-shaped REST API, settled on AsentumChain in five seconds. Charges, customers, checkout sessions, webhooks. Drop the SDK into any Node app and start billing — settlement happens on the chain underneath.
// One-shot charge — Stripe-shaped, settled on-chain.
import { Asentum } from '@asentum/pay';
const pay = new Asentum(process.env.ASE_SECRET);
const charge = await pay.charges.create({
amount: 10_00, // 10 ASE, minor units
currency: 'ase',
customer: 'cus_8XQ2…',
description: 'Monthly plan',
});
// → charge.id = 'ch_2Lp9…'
// → charge.status = 'pending'
// → settles in < 5 seconds. webhook fires.Idempotent. Replayable. Auditable from the explorer — every charge is just a transaction with metadata.
// Recurring — the chain itself fires the next charge.
const session = await pay.checkout.sessions.create({
mode: 'subscription',
customer: 'cus_8XQ2…',
price: 'price_premium_monthly', // 10 ASE / month
success_url: 'https://yoursite.com/welcome',
});
// Redirect customer → they sign once → done.
// ARC-21 cron handles every subsequent charge.No keeper bot. No retry queue. ARC-21 native cron fires the recurring charge from inside consensus.
Same resource model: charges, customers, checkout sessions, webhooks. Same idempotency keys. Same HMAC-signed payloads. The only thing that changes is the underlying settlement.
AsentumChain finalises every block in under five seconds. No multi-day international wires. No FX spread. The tx mines or it reverts — there is no "maybe" state to reconcile.
ARC-21 cron walks due subscriptions every block from inside the protocol. No Chainlink Automation. No Gelato. No retry queue to maintain. The recurring charge fires itself.
Card-on-file billing has a 5–15% failure rate per cycle. International settlement takes 3–5 days. Chargebacks unwind months after the sale. Asentum Pay replaces all of it with deterministic on-chain settlement.
All endpoints live under https://pay.asentum.com/api/v1 and require a Bearer key. Versioned, idempotency-key-safe, JSON in & out.
/v1/chargesCreate a one-shot charge. Returns immediately with status=pending; settles on-chain in seconds.
/v1/charges/:idFetch a charge by id, with current settlement status & on-chain tx hash.
/v1/customersCreate a customer record. Attach metadata, default address, billing email.
/v1/customers/:idRetrieve a customer. Listable via the index endpoint; filter by metadata.
/v1/checkout/sessionsMint a hosted-checkout session. Returns a redirect URL; webhook fires on completion.
/v1/checkout/sessions/:idPoll the session state. Or just listen for the checkout.session.completed webhook.
/v1/webhooks/endpointsRegister a webhook URL. Get back the signing secret for HMAC verification.
/v1/webhooks/endpoints/:idDisable a webhook endpoint. In-flight retries drain naturally.
Each category has a working demo showing the Pay API end-to-end. Pick the one closest to what you're building and start from there.
Stripe Recurring, settled in 5 seconds. Live demo.
View dapp →Creator economyTip jar + revenue splits + recurring support.
View dapp →AI agentsAgents with budgets, cron-fired actions.
View dapp →PayrollMonthly payday, fired by the protocol.
View dapp →Royalty splitsOne payment, auto-distributed to N recipients.
View dapp →Social premiumBlue check, billed weekly. Real users, real chain.
View dapp →Spin up an API key, drop the SDK into your app, take your first charge on testnet. Mainnet ships when the testnet has done its homework.