Built remotely during HackMeridian 2026 · non-competing

A 402 is a promise.
A settled transaction is proof.

Every 30 minutes, Nirium Watch pays x402 endpoints on Stellar testnet the way an agent would, then checks on-chain that the payment actually settled. Every round ends in a signed receipt anyone can verify.

Loading the latest real settlement from history.json...

The problem

An endpoint can answer 402 and still fail to collect. Nobody notices until an integrator debugs it by hand.

This already happened on Stellar: the OpenZeppelin facilitator's issue #47 was a roughly 32-day outage, found by four separate integrators debugging it independently. We were burned too - a payment method we listed as "live" had zero settled payments, and nothing caught it.

How it works

Live status

Loading...

Evidence

-
Checks recorded
-
Settled payments
-
Endpoints watched
-
Last check

Alerts

When an endpoint changes state, Nirium Watch sends one signed alert to Pullcord, our own earlier alerting project. No repeats while a failure persists.

warning settled → failing
info failing → settled again

Triggered by Nirium Watch

Computed live from history.json: every state change since the worker went live on Fly (2026-10-26 06:45 UTC). Each alert is signed with HMAC-SHA256 over timestamp.body in the Pullcord-Signature header.

Received by Pullcord

Read live from Pullcord's public alert log (GET /v1/alerts/external?source=nirium-watch): what Pullcord verified and stored. The same alerts show on pullcord.xyz. Test alerts are labeled as tests.

Facilitators checked

What we do not claim

FAQ

What does "settled" mean here?

The endpoint answered 402, we paid with our own testnet key, and we found a matching transfer to the required address, for the required amount, on Stellar's RPC. Not just a 200 response.

Why these three facilitators?

They are the x402 facilitators on Stellar testnet we could actually call. SCF round 45 funded three: Rail402, AgentSmith and Rumble Fish. We check the first two, plus OpenZeppelin, which runs the facilitator our own Nirium agent already uses. Rumble Fish is not checked yet: on 26-oct-2026 its public repo was still a skeleton, with no testnet facilitator to call, and we'll add it when one is live. Rail402 has its own hosted demo seller. For OpenZeppelin we check through our Nirium testnet agent, and for AgentSmith we built our own small seller.

Is any of this real money?

No. Every payment is testnet USDC paid from our own buyer key. Nothing here moves real funds.

What is Nirium?

Nirium is our own prior work: an x402 toolkit for Stellar and an audit trail service, both built before this event. We use them here; we did not build them during HackMeridian. More at nirium.xyz.

What is Pullcord?

Pullcord is our own earlier project: alerts for what you hold on Stellar, such as a protocol you use changing or pausing, your tokens being frozen or clawed back, or a payment arriving. It existed before this event. During HackMeridian we added one route to Pullcord's repo, an external alert intake (POST /v1/alerts/external, commit 4f131f2), so Nirium Watch can send it signed alerts. More at pullcord.xyz.

Why would a check fail?

A dead endpoint, a facilitator outage, a discovered route that needs parameters we do not send, or a testnet reset or upgrade. Failures stay on the page as real history, not hidden.

Why does one check take several seconds?

"Check time" is the whole round trip for one endpoint: ask for the 402, pay, wait for the payment to settle on Stellar, then read the transaction back from Stellar RPC and verify it. It is not the endpoint's response time.

Why did receipts stop going through Nirium's Audit Trail?

Receipts up to 2026-10-26 08:09 UTC were anchored through Nirium's Audit Trail service, one per endpoint check. From the 08:11 UTC round on, we sign and pin each round's receipt directly to our own Pinata account - same record format, one receipt per round instead of one per endpoint. The Audit Trail pins every anchored receipt to Nirium's shared Pinata account, and at our check volume we were on pace to push that account toward its pin limit, which would have broken anchoring for everyone using it, not just us.