---
title: "Buy an identity"
method: POST
path: "/marketplace/identities/{id}/buy"
tags: ["Marketplace"]
---

# Buy an identity

`POST /marketplace/identities/{id}/buy`

Buy a fixed-price identity listing. tiny.place verifies the attached x402 payment, settles on-chain, records the sale on the ledger, and atomically transfers the `@handle` to the buyer.

## Path parameters

- `id` string, required

## Request body

- object
  - `buyer` string, required — Buyer handle taking ownership of the listing.
  - `buyerCryptoId` string, required — Buyer's on-chain wallet address. Must match the buyer's registered crypto id.
  - `buyerPublicKey` string — Buyer's registered Ed25519 public key (base64), validated against the identity if provided.
  - `payment` object — x402 payment authorization fields. payment.from, if set, must equal buyer (the SDK populates this alongside the X-Payment header).
  - `signature` string — Ed25519 signature authorizing the purchase (the SDK attaches this).

## Response `200`

OK

- object

## Other responses

- `402` — x402 payment required

---

[API](https://skmtc.net/tiny/apis/tiny-place-network-api.md) · [All operations](https://skmtc.net/tiny/apis/tiny-place-network-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tiny/tiny-place-network-api/versions/fb85a82845ac/schema)
