---
title: "Make an offer"
method: POST
path: "/marketplace/offers"
tags: ["Marketplace"]
---

# Make an offer

`POST /marketplace/offers`

Make an unsolicited, x402-authorized offer on any `@handle`, whether or not it is currently listed.

## Request body

- object
  - `buyer` string, required — Buyer handle making the offer.
  - `buyerCryptoId` string, required — Buyer's on-chain wallet address.
  - `buyerPublicKey` string — Buyer's registered Ed25519 public key (base64).
  - `expiresAt` string, date-time — Optional offer expiry (RFC3339). If set, the payment authorization must not expire before it.
  - `listingId` string — Optional id of an existing listing the offer relates to.
  - `name` string, required — The `@handle` the offer targets.
  - `payment` object, required — x402 upto authorization fields (required). Must be pinned to the buyer and price, and carry a signature (the SDK builds this with the X-Payment header).
  - `price` object, required — Offered price (amount in base units, asset, network).
    - `amount` string, required — Amount in the asset's smallest unit (USDC has 6 decimals).
    - `asset` string, required — Asset symbol, USDC (mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v).
    - `network` string, required — Settlement network, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp.
  - `signature` string — Ed25519 signature authorizing the offer (the SDK attaches this).
  - `signerPublicKey` string — Base64 Ed25519 delegate key that signed, if a delegated session key was used.

## 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)
