Skip to main content

remesso-sdk · TypeScript · Celo

Recurring and agent payments, in a few lines of TypeScript.

A payer signs once. Remesso sends each payment when it is due, and your server hears about it from a signed webhook. Stablecoins and local currencies, on Celo.

npm install remesso-sdk viem
pay.ts
import { createRemesso } from "remesso-sdk";
import { privateKeyToAccount } from "viem/accounts";

const key = process.env.PAYER_KEY as `0x${string}`;
const payer = createRemesso({ account: privateKeyToAccount(key) });

// Signed once. Remesso sends each payment when it is due.
const schedule = await payer.schedules.create({
to: process.env.RECIPIENT!,
receive: "250", // what arrives each month, after the fee
token: "USDT",
every: "month",
runs: 12,
});

How a payment moves

  1. 1Sign onceThe payer approves the contract and creates a schedule from their own wallet.
  2. 2Remesso sends each paymentWhen a payment is due, Remesso's executor asks the contract to send it. The executor pays the gas.
  3. 3You hear about itYour server receives a signed webhook, then a second one when Celo finalizes the block.

The payer's signature is the authority: the contract checks every payment against it. Remesso can't change the recipient, the amount or the cadence, and can't pay early unless the payer allowed it.

Celo mainnetchain 42220
8 tokensUSDT, USDC, USDm, USA₮, wARS, wBRL, wCOP, cNGN
0.25%of each scheduled payment; agent payments are free
No nodeevents and webhooks come from Remesso's indexer
Real money, unaudited contracts. There is no testnet: everything moves real money on Celo mainnet, and the contracts have not been audited by a person. Start with a dollar, not a payroll.