
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@algovoi/plugin-elizaos
Advanced tools
Multi-chain agent-to-agent (A2A) crypto payments for ElizaOS — ask, verify, and poll fiat-denominated payments that settle as USDC or native assets across Algorand, VOI, Hedera, Stellar, Base, Solana, and Tempo. Non-custodial.
Multi-chain agent-to-agent (A2A) crypto payments for ElizaOS agents.

Lets your Eliza agent ask for, verify, and poll fiat-denominated crypto payments that settle as stablecoins or native assets across 7 chains — without holding any crypto, keys, or fiat.
| What | How |
|---|---|
| Ask for a payment | Agent generates a hosted checkout URL the payer opens in any browser |
| Verify a payment | Agent confirms an on-chain tx satisfies the expected amount, receiver, and binding |
| Poll a checkout | Agent checks whether a previously-issued token has been paid |
Settlement is direct on-chain customer-wallet → merchant-wallet via AlgoVoi, the only live A2A-compliant crypto payment gateway as of 2026-04-26.
https://api.algovoi.co.uk/.well-known/agent.json.pnpm add @algovoi/plugin-elizaos
# or
npm install @algovoi/plugin-elizaos
# or
yarn add @algovoi/plugin-elizaos
Free tier (testnet) at dash.algovoi.co.uk/signup. Mainnet activation requires KYC; the free trial covers your first $1,000 of mainnet payment volume across all chains.
Set environment variables (or pass via the runtime's settings):
ALGOVOI_API_KEY=algvk_live_... # required — from dash.algovoi.co.uk
ALGOVOI_API_BASE=https://api.algovoi.co.uk # optional, this is the default
ALGOVOI_DEFAULT_NETWORK=algorand_mainnet # optional, default
ALGOVOI_DEFAULT_CURRENCY=GBP # optional, default
import { algovoiPlugin } from "@algovoi/plugin-elizaos";
const character = {
name: "PayAgent",
bio: "I'm an AI assistant that can collect and verify crypto payments.",
plugins: [algovoiPlugin],
// ... rest of your character config
};
A complete character JSON is in examples/payments-character.json.
The plugin registers three actions on the Eliza runtime:
CREATE_PAYMENT_REQUESTCreate a hosted checkout link for a fiat amount.
Triggers: "create a payment request for £9.99", "invoice 50 USD", "ask for $20 on solana".
Returns: { token, checkout_url, status, expires_at, chain, amount_microunits }.
VERIFY_PAYMENTVerify an on-chain transaction satisfies a payment.
Triggers: "verify tx ABC123 on algorand_mainnet for token uW9MJN-abc123", "did the user pay for resource X".
Returns: { verified: true|false, access_token, error? }. The access_token is a JWT your agent can use to gate downstream calls.
CHECK_PAYMENT_STATUSPoll a previously-issued checkout token.
Triggers: "is checkout X paid?", "check status of token Y".
Returns: { token, status: "active" | "paid" | "expired" | "cancelled", redirect_url }.
import { algovoiPlugin, AlgoVoiClient } from "@algovoi/plugin-elizaos";
// Or use the underlying client directly:
const client = new AlgoVoiClient({
ALGOVOI_API_KEY: process.env.ALGOVOI_API_KEY!,
ALGOVOI_API_BASE: "https://api.algovoi.co.uk",
ALGOVOI_DEFAULT_NETWORK: "algorand_mainnet",
ALGOVOI_DEFAULT_CURRENCY: "GBP",
});
// 1. Create a checkout
const checkout = await client.createCheckout({
amount: 9.99,
currency: "GBP",
label: "Premium content access",
preferred_network: "algorand_mainnet",
redirect_url: "https://your-app.example.com/thanks",
});
console.log(`Pay here: ${checkout.checkout_url}`);
console.log(`Token to poll: ${checkout.token}`);
// 2. Poll until paid
let status = checkout.status;
while (status === "active") {
await new Promise((r) => setTimeout(r, 10_000));
const result = await client.checkStatus({ token: checkout.token });
status = result.status;
}
// 3. Or — verify a known tx_id directly
const verified = await client.verifyPayment({
network: "algorand_mainnet",
tx_id: "7K9X...PQR",
token: checkout.token,
});
if (verified.verified) {
console.log(`Access granted. JWT: ${verified.access_token}`);
}
| Chain | Mainnet | Testnet | Stablecoin | Native |
|---|---|---|---|---|
| Algorand | ✅ | ✅ | USDC | ALGO |
| VOI | ✅ | ✅ | — | VOI |
| Hedera | ✅ | ✅ | USDC | HBAR |
| Stellar | ✅ | ✅ | USDC | XLM |
| Base | ✅ | ✅ (Sepolia) | USDC | ETH |
| Solana | ✅ | ✅ (Devnet) | USDC | SOL |
| Tempo | ✅ | ✅ | USDC | — |
The plugin connects to a Google A2A v0.3 agent. You can inspect AlgoVoi's full agent card at:
curl https://api.algovoi.co.uk/.well-known/agent.json
PRs welcome. Open an issue first for substantial changes. The plugin's contract is intentionally narrow — it wraps the A2A endpoint and nothing more — so most enhancements belong in the upstream gateway, not here.
MIT — see LICENSE.
FAQs
Multi-chain agent-to-agent (A2A) crypto payments for ElizaOS — ask, verify, and poll fiat-denominated payments that settle as USDC or native assets across Algorand, VOI, Hedera, Stellar, Base, Solana, and Tempo. Non-custodial.
We found that @algovoi/plugin-elizaos demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.