v1

latestOpenAPI 3.0.02026-07-22243670.8 KB
Offers

Connect a proven external wallet to an offer option

For options without a whitelisted-wallet requirement, submitting when a wallet is already connected updates the existing binding in place, keeping its id. Options with a whitelisted-wallet requirement accumulate wallets up to the requirement's max_wallets and then reject with max_wallets_reached.

post/v1/offers/{offer_id}/addresses

Path parameters

offer_idstring required

The ID of the offer

Request body

chain'ethereum_sepolia' | 'base_sepolia' | 'solana_devnet' | 'ethereum_mainnet' | 'base_mainnet' | 'solana_mainnet' required

The blockchain network the wallet belongs to.

offer_option_idstring required

The ID of the offer option to connect the wallet to.

signaturestring required

The cryptographic signature of the challenge message.

wallet_addressstring required

The external wallet address. For EVM chains, must be a valid Ethereum address (normalized to lowercase).

Example request

{
  "chain": "ethereum_sepolia",
  "signature": "0xdeadbeef",
  "wallet_address": "0x742d35cc6634c0532925a3b844bc9e7595f0beb1"
}

Response

Successful response.

addressstring required

The connected external wallet address.

created_atstring date-time required

When the binding was created.

idstring required

Unique identifier for the object.

offer_option_idstring required

The ID of the offer option.

protocol'ethereum' | 'solana' required

The protocol the binding is scoped to. An EVM address binds once per option regardless of which EVM chain proved ownership.

Example response

{
  "created_at": "2025-01-01T00:00:00.000000Z",
  "id": "05edea81-98a7-4582-aa7c-040d57cb1858",
  "offer_option_id": "05edea81-98a7-4582-aa7c-040d57cb1858"
}