---
title: "Claim Agent Wallet"
method: POST
path: "/v2/profiles/wallets/claim-agent"
tags: ["v2 - Profiles"]
---

# Claim Agent Wallet

`POST /v2/profiles/wallets/claim-agent`

## Request

- Base URL: `https://api.jubjubapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.jubjubapp.com/v2/profiles/wallets/claim-agent`
- Auth: HTTP bearer

Bind a wallet-only agent profile to the signed-in person.

Proof is SIWE over the agent's wallet: whoever holds that key made the
agent, and signing from it says so. Refused for a wallet that is not on
an `agent_viewer` profile (a person's own wallet is docked through
wallet-rails, not claimed), and for an agent already owned by someone
else. Idempotent for the same owner. Only humans may own agents: an
agent-key session cannot claim one.

## Headers

- `Authorization` string
- `X-JubJub-Service-Key` string
- `X-JubJub-Agent-Key` string
- `X-JubJub-Platform-Key` string
- `Origin` string
- `Referer` string
- `X-JubJub-Trial-Token` string

## Request body

- ClaimAgentWalletRequest
  - `wallet_address` string, required: The agent's EVM address (0x + 40 hex)
  - `signature` string, required: EIP-191 signature over the SIWE message from /v2/auth/wallet-nonce
  - `nonce` string, required: Nonce issued by /v2/auth/wallet-nonce

## Response `200`

Successful Response

- ClaimAgentWalletResponse
  - `agent_profile_id` string, required
  - `owner_profile_id` string, required
  - `already_owned` boolean
  - `release` object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/jubjubapp/apis/jubjub-api.md) - [All operations](https://skmtc.dev/jubjubapp/apis/jubjub-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jubjubapp/apis/jubjub-api/revisions/353157b296f2?raw)
