Machine Payments Protocol · Solana

The payment rail for the agent economy.

Open. On Solana.

USDC payments for agents. Sub-second. Gasless.

Live on devnet Anchor 1.0 Magicblock Rollups HTTP-402 / MPP

The problem

Agentic payments need rails that don't exist yet.

Solana is the inevitable base for agentic payments — fast, cheap, programmable. But the official MPP only supports Charges, and each Charge is a 500ms signed Solana transaction. No Sessions. No streaming. Solvo runs both inside an Ephemeral Rollup — sub-100ms, with on-chain vouchers for Session payments instead of the off-chain workarounds other chains rely on.

Latency
50–100ms

Charges and Sessions run in Solana Ephemeral Rollups.

MPP Sessions
On-chain vouchers

MPP Session payments natively. Where other chains use off-chain workarounds.

License
Apache-2.0

Open source. Permissionless. Create your own payment platform on Solvo or deploy your own Solvo program.

What's in the box

A full payment rail. Not a primitive.

Escrow on Solana base, charge flow on the Ephemeral Rollup, MPP on top. The whole pipeline — the program, the TypeScript SDK, the MPP adapter — ships open source.

Streaming sessions

Open a payment line, capture per second, commit on close — every tick a session-key-signed transaction in the Ephemeral Rollup.

Isolated session keys

An ephemeral keypair per line signs every capture — no wallet popup per charge, and a leaked key can only spend the line it owns.

Top up & withdraw mid-session

Add funds to a live line or claim accrued earnings without ever closing the session.

Non-custodial by design

Payers own the vault on Solana and can withdraw at any time — no protocol custody, no escrow lock-in.

Three-way fee split

Provider, platform, and protocol fees split on-chain at capture, with exact-sum invariants — build a platform, take a cut.

MPP-compliant out of the box

HTTP-402 voucher payments via the Solvo MPP method — drop-in for any 402-aware client, Charge and Session both.

For developers

Just a few lines of code away.

MPP, both ends — @solvo/mpp/client to pay any 402 endpoint, @solvo/mpp/server to charge for one. Drop them in.

Sub-second captures. Charge flow runs inside the Magicblock Ephemeral Rollup.
No wallet popup per charge. Per-line session keys sign captures. The user signs once.
Or skip MPP entirely. Drive @solvo/program directly when you need finer control.
client.ts
import { Mppx, solvo } from "@solvo/mpp/client";

const mppx = Mppx.create({
  methods: [
    solvo.charge({ client, wallet, sessionSigner }),
  ],
});

// Hit any 402-protected endpoint.
// Mppx auto-builds the voucher and retries.
const res = await mppx.fetch("https://api/agent/tick", {
  method: "POST",
});
server.ts
import { Mppx, solvo } from "@solvo/mpp/server";

const mppx = Mppx.create({
  methods: [
    solvo.charge({ client, platform, recipient, network: "devnet" }),
  ],
  secretKey: process.env.MPP_SECRET_KEY,
});

// HTTP-402 voucher payments. Charge or Session, drop-in.
app.post("/v1/agent/tick", async (req, res) => {
  const r = await mppx.handle(req);
  res.status(r.statusCode).json(r.body);
});
For platforms

Build a payment platform on top of Solvo. Take a fee. Own the experience.

Solvo's three-way fee split is a primitive, not a policy. Run your marketplace, your agent network, your in-app payments — set the platform fee on each charge and have it settled on-chain alongside the provider net and the protocol fee. No manual reconciliation.

on-chain invariant

Exact-sum split, every charge

provider_net + platform_fee + protocol_fee = amount

Ceiling-division is enforced on-chain — any non-zero amount at non-zero bps produces at least one base unit. No silent zeroing, no rounding drift, no off-chain reconciliation script.

composable

What platforms get

  • Set fee_bps on your platform account. Applied on every capture, on-chain.
  • Settle in your own wallet via claimLine.
  • Stream provisioning, top-ups, and rotations through the SDK.
  • Index LineCaptured, LineClosed, LineClaimed events for your own dashboards.
Public good

Built by A2AX because we needed it. Open-sourced because the agentic economy needs it too.

Solvo is the open-source product we needed for A2AX, the startup we are building for the agentic economy. We needed ultra-low-latency, cheap, secure rails that supported MPP for standardized integrations. None of the existing options solved that, so we built it.

We chose to ship Solvo not as A2AX's internal payment rail, but as an open-source product and protocol that goes beyond our needs. Anyone can use it to send and accept agentic payments. Anyone can build a payment platform on top of it and take a fee at the protocol level.

Tempo, Lightning, Stellar — the space is being actively built by Solana's competitors, all racing to adopt new standards fast. Solana deserves a public, first-class agentic rail. So we shipped one.

Ship today

Open source, devnet-live, MPP-compliant.

Read the program, install the SDK, drop the MPP adapter into a 402-aware server. Start charging in minutes.