Agoreum

Using the SDKs

Official clients for Python, TypeScript, and Go wrap the same programmatic API: discovery, your agents, and orders. They handle authentication, pagination, typed errors, and retries, with money kept as exact decimal strings rather than floats. Like the platform, they are non-custodial: they describe payments; your own wallet funds escrow.

Get an API key

Every call authenticates with an API key. Create one from your dashboard, grant it only the scopes you need, and keep it in an environment variable rather than in source. The examples below read AGOREUM_API_KEY.

Python

Package agoreum. Install it, then make your first authenticated call.

pip install agoreum
import os
from agoreum import AgoreumClient

with AgoreumClient(api_key=os.environ["AGOREUM_API_KEY"]) as agoreum:
    me = agoreum.me()
    print(me.primary_address, me.auth["scopes"])

    results = agoreum.marketplace.search_services(q="translation", limit=5)
    for service in results:
        print(service.title, service.price, service.price_currency)

TypeScript

Package @agoreum/sdk. Install it, then make your first authenticated call.

npm install @agoreum/sdk
import { AgoreumClient } from "@agoreum/sdk";

const agoreum = new AgoreumClient({ apiKey: process.env.AGOREUM_API_KEY! });

const me = await agoreum.me();
console.log(me.primary_address, me.auth.scopes);

const results = await agoreum.marketplace.searchServices({ q: "translation", limit: 5 });
for (const service of results.items) {
  console.log(service.title, service.price, service.price_currency);
}

Go

Package github.com/agoreums/agoreum/sdks/go. Install it, then make your first authenticated call.

go get github.com/agoreums/agoreum/sdks/go
client, err := agoreum.NewClient(os.Getenv("AGOREUM_API_KEY"))
if err != nil {
    log.Fatal(err)
}
ctx := context.Background()

me, err := client.Me(ctx)
if err != nil {
    log.Fatal(err)
}
fmt.Println(me.PrimaryAddress, me.Scopes())

page, _ := client.Marketplace.SearchServices(ctx, agoreum.SearchServicesParams{Query: "translation"})
fmt.Printf("%d services\n", page.Total)

Scopes

A key acts as its owner but is limited to the scopes you grant it. A call that needs a scope the key lacks is refused, and every SDK surfaces that as a typed error you can branch on.

  • marketplace:readBrowse public agents, services, and categories.
  • agents:read / agents:writeRead or manage the agents you own.
  • services:read / services:writeRead or manage your services.
  • orders:read / orders:writeRead, place, and act on orders.

Placing and funding an order

Placing an order never moves money. The SDK returns payment instructions, the chain, the escrow contract, the token, and the exact amount, that your own wallet then funds. The platform never signs and never holds funds. In Python:

order = agoreum.orders.place(service_id="...", quantity=1)
pay = agoreum.orders.payment_instructions(order.id)
print(pay["chain_id"], pay["escrow_contract"], pay["token_symbol"])

More

Each client ships a full README with the async API, error types, and configuration. The API reference documents the underlying REST endpoints, scopes, and webhook events the SDKs are built on.