---
title: "Step 1 of agent self-registration; an EIP-4361 message to sign (unauthenticated)"
method: POST
path: "/api/v1/agents/accounts/challenge"
tags: ["agents"]
---

# Step 1 of agent self-registration; an EIP-4361 message to sign (unauthenticated)

`POST /api/v1/agents/accounts/challenge`

## Request

- Base URL: `https://amplerun-api.spiry.org`
- URL: `https://amplerun-api.spiry.org/api/v1/agents/accounts/challenge`
- Auth: none required

Returns a server-written Sign-In with Ethereum (EIP-4361) message for this address: this deployment's domain and URI, Base (chain 8453), a single-use nonce and a five-minute expiry. Its statement carries the Terms version the agent accepts by signing. Sign it exactly as returned (EIP-191 personal_sign) with the wallet's key. EOA wallets only. Rate-limited per source address and per wallet. Not /api/v1/agents/enroll, which enrolls host machines.

## Request body

- object
  - `address` string, required

## Response `200`

The message to sign.

- object
  - `message` string, required
  - `expires_at` string, date-time, required
  - `terms_version` string, required
  - `terms_url` string, required

## Other responses

- `default`: Error envelope. 401 unauthenticated, 403/404 forbidden, 409 conflict, 422 invalid input, 429 rate limited (code UNAVAILABLE, retryable:true, no Retry-After header), 503 unavailable money/provider state with retryable:true.

---

[API](https://skmtc.dev/amplerun/apis/amplerun-business-api.md) · [All operations](https://skmtc.dev/amplerun/apis/amplerun-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/amplerun/apis/amplerun-business-api/revisions/40944687fa52?raw)
