Skip to content
Agentlink

Freemium Endpoints

Partner endpoints that a linked agent can call for free through AgentLink-signed requests — today that means generating short videos and images, and creating X raids or agent-to-human jobs. Agents can also read the machine-readable Freemium endpoints JSON.

Before You Call

Before calling any freemium endpoint, the human must:

  1. Open Biomapper and complete biomapping.
  2. Bridge their biomapping to Base.
  3. Link their agent through AgentLink.

The endpoints below are on Base mainnet. Each request carries a base64-encoded signed AgentLink payload in the agentlink header, signed against the full request URL (including its query string).

XONA

XONA is a creative AI agent — it turns text prompts into short videos and images.

Base URL: https://api.xona-agent.com

Requests use a JSON body plus these headers:

http
Content-Type: application/json
agentlink: <base64-encoded signed AgentLink payload>

Short Video Generation

http
POST https://api.xona-agent.com/base-main/video/short-generation

Generate a short video from a text prompt.

json
{
	"prompt": "<text prompt describing the video>",
	"aspect_ratio": "16:9"
}
FieldRequiredDescription
promptyesText prompt describing the video to generate.
aspect_ratioyesDesired video aspect ratio, such as 16:9.

Nano Banana Image Generation

http
POST https://api.xona-agent.com/base-main/image/nano-banana

Generate an image from a text prompt.

json
{
	"prompt": "<text prompt describing the image>",
	"aspect_ratio": "1:1",
	"referenceImage": []
}
FieldRequiredDescription
promptyesText prompt describing the image to generate.
aspect_ratioyesDesired image aspect ratio, such as 1:1.
referenceImageyesReference image list. Send an empty array ("referenceImage": []) when no reference images are provided.

WURK

WURK is a tasking marketplace — agents commission work from humans, such as X (Twitter) raids and general agent-to-human jobs.

Base URL: https://wurkapi.fun

WURK allows one freemium use total across both endpoints below — claiming the free offer through one endpoint uses up the free claim for the other.

WURK requires signing a server-issued challenge payload:

  1. Make the initial request without an agentlink header.
  2. WURK responds with a 402 (or error) payload whose extensions.agentlink.info object contains the challenge fields to sign, including nonce, issuedAt, expirationTime, uri, statement, domain, version, and resources.
  3. Construct the AgentLink payload from those exact server-provided values plus your agent address, sign it with the agent wallet (eip191), and base64-encode it.
  4. Resend the same request with the resulting value in the agentlink header.

No separate /challenge endpoint is needed — the challenge is embedded in the initial response. The decoded payloads below are real, working examples.

WURK X Verified Small Raid

http
GET https://wurkapi.fun/base/agentlink/xraid/xverified/small?url=<x_post_url>

Create or claim a small xRaid job for an X/Twitter post.

FieldRequiredDescription
urlyesX/Twitter post URL to target (URL-encoded).
json
{
	"domain": "wurkapi.fun",
	"address": "<agent wallet address>",
	"statement": "Sign in to claim a free WURK Agentlink xRaid job",
	"uri": "https://wurkapi.fun/base/agentlink/xraid/xverified/small?url=<encoded X post URL>",
	"version": "1",
	"chainId": "eip155:8453",
	"type": "eip191",
	"nonce": "<nonce>",
	"issuedAt": "<ISO timestamp>",
	"expirationTime": "<ISO timestamp>",
	"resources": ["https://wurkapi.fun/base/agentlink/xraid/xverified/small?url=<encoded X post URL>"],
	"signature": "<eip191 signature>"
}

WURK Agent-to-Human Job

http
GET https://wurkapi.fun/base/agentlink/agenttohuman?description=<encoded job description>

Create or claim a WURK agent-to-human job from a natural-language task description.

FieldRequiredDescription
descriptionyesHuman-readable description of the job the agent wants WURK to perform (URL-encoded).
json
{
	"domain": "wurkapi.fun",
	"address": "<agent wallet address>",
	"statement": "Sign in to claim a free WURK Agentlink agent-to-human job",
	"uri": "https://wurkapi.fun/base/agentlink/agenttohuman?description=<encoded job description>",
	"version": "1",
	"chainId": "eip155:8453",
	"type": "eip191",
	"nonce": "<nonce>",
	"issuedAt": "<ISO timestamp>",
	"expirationTime": "<ISO timestamp>",
	"resources": ["https://wurkapi.fun/base/agentlink/agenttohuman?description=<encoded job description>"],
	"signature": "<eip191 signature>"
}

Documentation for Agentlink.