Your agent paid for it. Now it can pick it up.

Async AI services hand back a job id, then ask the payer to sign in to read the result. Nevermined now signs that in for your agent, at no extra charge.
By
Nevermined Team
Oct 20, 2026
The two pages from the live run. Every label on the left is an account a human would have had to open. Every label on the right is a purchase on the receipt.
See Nevermined
in Action
Real-time payments, flexible pricing, and outcome-based monetization—all in one platform.
Schedule a demo

Some AI services cannot answer in one request: an image takes seconds, a video takes minutes, a phone call takes as long as the call. They take your payment, hand back a job id, and ask you to come back for the result. Coming back is where agents used to get stuck, because the result endpoint does not ask for a price: it asks the caller to prove it is the one who paid. Nevermined now answers that proof for your agent, so one paid call through the AI Services Catalog is followed by as many result checks as the job needs, none of them charged.

What changes for an agent builder?

Before this, an agent could pay StableStudio to generate an image and then never see the image. The paid call succeeded, the job ran, and every check on the job came back refused, because the check asked for a signature our side did not give. Async services (image and video generation, long scrapes, phone calls, email inboxes) were pay-only.

Now the agent makes the paid call, reads the job id from the answer, and calls the result endpoint through the same catalog listing. Nevermined sees the service's sign-in challenge, signs it as the account that paid, and returns the service's answer with paid: false. The agent does not hold a key, write a signature or know which protocol the service speaks. The Getting Your Results guide has the two calls, copy-paste ready, for the Catalog MCP and for REST.

Why does a result endpoint answer 402 when there is nothing to pay?

Because a job id alone is a weak lock. If anyone holding the id could read the result, a leaked id would leak the image, the transcript or the call recording. So async services bind the result to the payer: the paid call settles from an address, and only that address may read what it bought. The service checks it by sending back HTTP 402 Payment Required with no price in it, only a request to sign in.

We called StableStudio's job list on 2026-10-16 with no credentials, and its 402 carried two challenges at once, one per payment protocol:

  • an x402 challenge whose list of payment options, accepts, is empty, with a sign-in-with-x extension attached;
  • an MPP tempo charge for an amount of 0.

Both mean the same thing: you have already paid, now show it.

What is Sign-In-With-X?

Sign-In-With-X (SIWX) is the x402 extension that turns a 402 into a sign-in. It carries a Sign-In with Ethereum message (EIP-4361): a short, human-readable text a wallet signs to prove it controls an address, with no transaction and no gas. The "X" is the chain: the extension can name an EVM chain or another family, such as Solana.

This is the sign-in-with-x part of StableStudio's challenge, decoded from its PAYMENT-REQUIRED header on 2026-10-16:

{
  "info": {
    "domain": "stablestudio.dev",
    "uri": "https://stablestudio.dev/api/jobs",
    "version": "1",
    "chainId": "eip155:8453",
    "type": "eip191",
    "nonce": "525217e27f2c41b0a701768ac60c8c27",
    "issuedAt": "2026-10-16T14:01:54.286Z",
    "expirationTime": "2026-10-16T14:06:54.286Z",
    "statement": "Sign in to verify your wallet identity"
  },
  "supportedChains": [
    { "chainId": "eip155:8453", "type": "eip191" },
    { "chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "type": "ed25519" }
  ]
}

Read it field by field:

  • domain and uri say who is asking and for which exact URL.
  • chainId eip155:8453 is Base, and type eip191 is the signature scheme: a personal-message signature, the same kind a wallet shows as "sign this message".
  • nonce is a one-time value, so a signature made for this challenge cannot be reused for the next one.
  • issuedAt and expirationTime bound the window: five minutes here.
  • statement is free text written by the service.

The answer is the EIP-4361 text built from those fields, signed, and sent back base64-encoded in a Sign-In-With-X request header. The service rebuilds the same text from what it receives, recovers the signing address, and checks it against the address that paid.

How does Nevermined sign it, and what will it refuse?

Nevermined signs with the key of your own account, the one behind your Delegation, and only for a call that follows a payment that account made. Before it signs, it checks every field the service wrote:

  • accepts — empty: a 402 that offers a payment is paid, never answered with a sign-in
  • chain and type — Base (eip155:8453) or Base Sepolia (eip155:84532), signed eip191
  • domain — exactly the host being called
  • uri — exactly the URL being called
  • version — 1
  • nonce — 8 to 128 letters and digits
  • issuedAt — no more than 10 minutes old, and no more than 60 seconds in the future
  • expirationTime — present, in the future, and at most 10 minutes away

Then it builds the message itself, from those checked fields only. The statement is dropped, and so are resources, requestId and notBefore, so no text a service wrote is ever signed in your name. For the challenge above, the signed text is this, with the empty line where the statement would sit:

stablestudio.dev wants you to sign in with your Ethereum account:
<your account address>


URI: https://stablestudio.dev/api/jobs
Version: 1
Chain ID: 8453
Nonce: 525217e27f2c41b0a701768ac60c8c27
Issued At: 2026-10-16T14:01:54.286Z
Expiration Time: 2026-10-16T14:06:54.286Z

Before it sends anything, Nevermined recovers the address from its own signature and checks it is yours. It sends the request one more time with the signed header, and if the service still refuses, the call fails as it did before. A sign-in message cannot become a transfer or a spending permit, so nothing moves: no payment, no fee and no ledger entry.

A challenge that fails any check is not answered. The Solana option in StableStudio's list is skipped, because Solana SIWX is not supported, and neither is any EVM chain other than Base. The x402 rail reference lists each check and the error code behind a refusal.

And the MPP challenge?

The MPP version asks for the same proof in its own format: a tempo charge for 0, with a realm naming the host. Nevermined answers it with a typed-data signature over three values (your account, the challenge id and the realm) instead of a payment. It requires the realm to be the host being called, the asset to be one it already pays in, and the challenge to expire within 10 minutes. When a service offers both, as StableStudio does, Nevermined answers the MPP one first and falls back to SIWX only if the MPP one is refused. The MPP rail reference has the details.

Who can read a result?

Only the account that paid, which is the point of the lock. Nevermined signs only when four things hold:

  1. The endpoint is marked auth: "siwx" in the catalog, or is one of the service's declared follow-up paths, and the agent calls it through the listing.
  2. The same account has a settled payment to that same listing.
  3. That payment was made within the follow-up window, one hour on Nevermined's production deployment (read 2026-10-16).
  4. The account is a personal one: never a shared organization account, because a proof signed as the organization would let every member read every job it paid for.

A paid call that could never be read back is refused before anything is charged, so nobody buys a result they cannot collect. The guardrails cover every case.

Which services work this way?

On 2026-10-16, 8 of the 161 listings in the catalog had at least one endpoint marked auth: "siwx", read from the public catalog feed. They include StableStudio (image and video generation by Merit Systems, polled at /api/jobs/{jobId}), StableEnrich (a job endpoint for email verification) and Hirescrape (scrape snapshots), as well as AgentMail and StableUpload. StableStudio's Nano Banana generate endpoint was listed at $0.039 a call on 2026-10-16; every check on the job after it costs nothing.

What comes next?

More async services come back to the catalog as each one is reviewed.

The catalog will also read security: siwx from a service's own OpenAPI description, so new listings are marked without a manual step.

Sources

Pick an async service in the AI Services Catalog, make one paid call, and read the result back with the Getting Your Results guide.

See Nevermined

in Action

Real-time payments, flexible pricing, and outcome-based monetization—all in one platform.

Schedule a demo
Nevermined Team
Related posts