Flovia/MPP Showcase/Solana MPP
Integration → Live → Flovia result → Simulate

Solana MPP showcase

Integration
Solana MPP route
const mppx = Mppx.create({
  secretKey: process.env.MPP_SECRET_KEY,
  methods: [solana.charge({ recipient, currency: USDC, decimals: 6, network: "devnet" })],
});
 
app.get(
  "/showcase/solana-mpp/paid",
  async (c) => {
    const result = await mppx.solana.charge({
      amount: "100000",
      currency: USDC,
    })(c.req.raw);
    if (result.status === 402) return result.challenge;
    return result.withReceipt(Response.json({ ok: true }));
  },
);
With Flovia SDK
const mppx = Mppx.create({
  secretKey: process.env.MPP_SECRET_KEY,
  methods: [solana.charge({ recipient, currency: USDC, decimals: 6, network: "devnet" })],
});
 
app.get(
  "/showcase/solana-mpp/paid",
  flovia.paidApi({ provider: "solana", rail: "mpp" }),
  async (c) => {
    const result = await mppx.solana.charge({
      amount: "100000",
      currency: USDC,
    })(c.req.raw);
    if (result.status === 402) return result.challenge;
    return result.withReceipt(Response.json({ ok: true }));
  },
);
Live flow

Call the real Solana MPP challenge endpoint

Provider dashboard ↗
Call the endpoint to inspect the Solana MPP 402 challenge, or pay from the server-side payer wallet (devnet USDC). devnet is the configured cluster.
Response summary appears here.
What Flovia joins

Payment dashboards know who paid. API logs know what was used. Flovia connects them.

Payment rail

Solana / MPP

sol_demo_charge_0010.10 USDC (devnet)Solana recipient
API provider

Paid API request

GET /showcase/solana-mpp/paidstatus + latencyrequest id + response
Flovia join layer

Joined paid API event

payment id×request id
payer / recipient×endpoint
amount / status×workflow
Business output

Provider decisions

which endpoints convertwhich workflows retainwhere to price / upsell
Simulated flow

What happens before a live wallet or checkout is involved

1

Agent calls paid API

GET /showcase/solana-mpp/paidno payment credentialrequest id created
2

MPP blocks access

Solana MPP402 challenge + Solana recipientstatus 402
3

Payment completes

SPL transfer + on-chain confirmationsol_demo_charge_0010.10 USDC (devnet)
4

API access granted

MPP credential retry + receiptstatus 200response { foo: "bar" }
5

Flovia joins event

payment contextendpoint usageworkflow signal
Payment lane

Solana MPP

Solana SPL transfersol_demo_charge_0010.10 USDC (devnet)402 challenge + Solana recipient
API lane

Provider endpoint

/showcase/solana-mpp/paidrequest → 402 → retry200 paid responselatency captured
Flovia lane

Joined analytics event

payment id ↔ request idrail ↔ endpointpaid response ↔ workflowretained demand signal
Event payload preview
{
  "requestId": "req_demo_001",
  "provider": "solana",
  "rail": "mpp",
  "endpoint": "/showcase/solana-mpp/paid",
  "paymentId": "sol_demo_charge_001",
  "responseStatus": 200,
  "latencyMs": 47,
  "insight": "payment converted into paid API demand"
}