NemosGo® DE

Get started

For developers

Payment per call, in both directions. If you offer, you change nothing in your application. If you call, you embed the SDK. Trying it out costs nothing and needs no credit.

Try it right away

A public test instance of the proxy runs at mpp.digital-platform.io. Both sides work against the same instance. The commands are for the shell on macOS and Linux. Anyone can ask how the instance is doing:

curl -fsS https://mpp.digital-platform.io/mpp/v1/health
curl -fsS https://mpp.digital-platform.io/macp/v1
curl -fsS https://mpp.digital-platform.io/macp/v1/capabilities

This is how you watch the instance work, whether you mean to offer or to call. A free function can be discovered and called with no SDK, no payment, no credit and no wallet on your machine.

1. Set the address and the function. The following steps use both.

MACP=https://mpp.digital-platform.io/macp/v1
FN=bob.generative-models.list.v1

2. Find functions. The instance lists everything on offer there, free and paid alike.

curl -fsS $MACP/functions

3. Look at the price. For this function it says "mode": "free".

curl -fsS $MACP/functions/$FN/pricing

4. Call it. The response carries "status": "succeeded" and contains the list of models.

curl -fsS -X POST $MACP/execute \
  -H 'Content-Type: application/json' \
  -d "{\"functionId\":\"$FN\",\"input\":{}}"

The same flow in more detail, with the function selected via jq and a request ID of your own, is in the developer guide on Codeberg, section Calling a free function.

Last updated: 22 September 2026

If you offer something

Three areas side by side: what you already have and connect, what comes from NemosGo, and what else is needed. WHAT YOU ALREADY HAVE Your backend where your offering sits Your customer frontend website, shop or app Your admin frontend for your staff WHAT COMES FROM US The payment backend with storage and database The payment connection to your payment service provider The wallet as an app under your brand The dashboard administration and figures The M-Pay Proxy quotes the price, takes the payment WHAT ELSE IS NEEDED An identity provider via OAuth2, from us or from you A payment service provider licensed, yours or one we suggest The same picture one below the other: what you already have and connect, what comes from NemosGo, and what else is needed. WHAT YOU ALREADY HAVE Your backend where your offering sits Your customer frontend website, shop or app Your admin frontend for your staff connect WHAT COMES FROM US The payment backend with storage and database The payment connection to your payment service provider The wallet as an app under your brand The dashboard administration and figures The M-Pay Proxy quotes the price, takes the payment WHAT ELSE IS NEEDED An identity provider via OAuth2, from us or from you A payment service provider licensed, yours or one we suggest
This is what it looks like at the provider. You connect your own systems; we bring the rest. You bring the payment service provider, or we suggest one. We bring the identity provider if you want; you can also connect your own. All of it runs in your installation and under your brand.

The M-Pay Proxy knows your functions and their prices, quotes the price to the caller, takes the payment and then calls your function. You change nothing in your own application; it need know nothing about payment. As long as you only register your own functions, the proxy is nothing you need to attend to. It becomes your own concern once you open your marketplace to further providers: then you enrol them, and the catalogue is kept separately per provider.

How a paid call runs

This is how a paid call reaches you. The proxy quotes the price, takes the payment and only then calls your function. The caller is an agent or an application that buys for its own purposes or on behalf of a customer.

Seven steps from left to right and back: ask the price, get a quote, pay, grant and receipt, execute, result, delivery. On the left the calling application, in the middle the M-Pay Proxy, on the right the provider’s backend. WHO CALLS The calling application with the SDK AT THE OPERATOR The M-Pay Proxy with the payment backend WHO OFFERS The provider’s backend unchanged 1 Ask the price 2 Get a quote amount and expiry 3 Pay recorded in the payment backend 4 Grant and receipt 5 Execute call the function result of the function 6 Result 7 Delivery The same seven steps one below the other: ask the price, get a quote, pay, grant and receipt, execute, result, delivery. Under each step it says who is talking to whom. 1 Ask the price Application → proxy 2 Get a quote Application → proxy, returns amount and expiry 3 Pay Application → proxy 4 Grant and receipt Proxy → application 5 Execute Application → proxy → interface 6 Result Interface → proxy → application 7 Delivery Proxy → application
Seven steps. Payment goes to the proxy and is recorded in the payment backend. On this instance the grant is good for exactly one call, and the receipt comes back with it. Your backend sees nothing of this but the call to its own function.

Where the purchase is triggered is up to you. A link or a QR code fits on a page, in an app, in a newsletter or in an assistant. Machines call directly instead.

Setting this up takes three calls.

POST /mpp/v1/admin/merchant-auth        # credentials
POST /mpp/v1/admin/execution-backends   # backend
POST /mpp/v1/admin/functions            # price

We set up the first registration for you. With the second you store the credentials the proxy uses to call your backend; with the third you register the function, its target URL, its schema and its price.

Registering a function also carries the input and output schema, a timeout, how long the grant is valid and whether it is good once or repeatedly.

What you need beforehand.

If you are the caller

On the other side sits the Go SDK. Ask the price, get a quote, pay, execute.

Three areas side by side: at the caller the application, the SDK and the wallet; at the operator the M-Pay Proxy and the payment backend; on the right the provider’s backend. WHO CALLS AT THE OPERATOR WHO OFFERS Your application The SDK The wallet runs on your server The MACP endpoint The payment backend The provider’s backend MACP pay call The same picture one below the other: at the caller the application, the SDK and the wallet; below them at the operator the M-Pay Proxy and the payment backend; below that the provider’s backend. WHO CALLS Your application The SDK The wallet MACP, pay AT THE OPERATOR The MACP endpoint The payment backend call WHO OFFERS The provider’s backend
Your application talks to the SDK, and the SDK talks over MACP to the endpoint at the operator. Payment comes from the wallet on your server. Behind it, the provider’s backend is called.
c, err := mppsdk.New(cfg)
price, err := c.GetPricing(ctx, "weather-forecast")
limit := price.Pricing.AmountCents

quote, err := c.GetQuote(ctx, mppsdk.GetQuoteRequest{
    FunctionID:     "weather-forecast",
    ExecutionCount: 1,
    MaxPriceCents:  &limit,
})

res, err := c.PayInvoice(ctx, quote)

out, err := c.Execute(ctx, mppsdk.ExecuteRequest{
    FunctionID: "weather-forecast",
    GrantID:    res.GrantID,
    Input:      map[string]any{"city": "München"},
})

Error handling is omitted for clarity. Paying and executing stay two calls: PayInvoice returns the grant in res.GrantID, and Execute passes it on when executing (POST /macp/v1/execute). The two are deliberately not merged, which is why the proxy reports payAndExecute as false. The result is then in out.Output. Once the grant has expired or been used up, the proxy refuses to execute. Then the same route applies again: ask the price, pay, execute.

This is how you get the SDK:

git clone https://codeberg.org/stulle-ai/m-pay.git
cd m-pay/mpp/sdk/go
go test ./...
go build ./cmd/mpp-sdk-demo

You pull the SDK into your own programs with go get codeberg.org/stulle-ai/m-pay/mpp/sdk/go/mppsdk@v0.3.1. Go 1.25.5 or newer is required. For paid calls the SDK needs the wallet. It runs as a service of its own next to your application, on Linux for now, and is topped up beforehand.

Connecting providers yourself. If your agents buy from a provider that is not connected yet, you register its interface at your own proxy, with the same three calls as above under If you offer something. The provider only makes its interface available.

The components

NAMEWHAT IT ISWHERE IT RUNSWHAT YOU HAVE TO DO WITH IT
NameM-Pay ProxyWhat it isSits in front of the provider’s function: quotes the price, takes the payment and then calls itWhere it runsIn your installation, operated by you or by us. To try it out: mpp.digital-platform.ioWhat you have to do with itIf you offer something: register the function, its target and its price, and further providers once you open your marketplace. If you are the caller: nothing, unless you connect providers yourself
NameMACPWhat it isThe protocol in between. A purchase takes three calls: /quotes, /pay, /executeWhere it runsBetween caller and proxy. It describes itself at /macp/v1What you have to do with itIf you are the caller: no need to call it yourself, the SDK makes the three calls, one after the other
NameThe Go SDKWhat it isHandles price, quote, payment and execution, and talks to the wallet for itWhere it runsInside your own program, under the MIT licenceWhat you have to do with itIf you are the caller: pull it in
NameThe appWhat it isThe buyer’s interface: purchases, deliveries, receipts and cancellationWhere it runsOn the buyer’s phoneWhat you have to do with itIf you offer something: nothing, we deliver it under your brand
NameThe walletWhat it isHolds the credit and produces the payment dataWhere it runsFor a person inside the app; for a machine as a service of its own next to your application, on Linux for nowWhat you have to do with itIf you are the caller: install it and top it up. Credit and keys stay with you

A complete example

The developer kit holds three runnable programs that together stand in for a publishing house: a server for the issues, an application the publisher uses to upload and set the price, and a kiosk where the reader buys. The recording “Media publishing, start to finish” shows the same flow: a publisher uploads an issue, a reader buys a single article from it for 25 cents.

Version and licence

View the repository on Codeberg

What it is built on

NemosGo is the product. Underneath sits M-Pay, the payment and transaction technology. Factory 42 helps us develop and run parts of NemosGo, and powers the AI offerings for customers. You don’t need to know either to integrate. What the two can do is set out under the technology behind it.

Let’s talk

Questions about the integration or the technology? Write to us.

Get in touch