Skip to main content
POST
Seller Financing is in beta and runs on Ethereum Sepolia instances only for now (DEVELOPMENT instances on Ethereum). A PRODUCTION instance, or one on another network, answers 503 SELLER_FINANCING_UNAVAILABLE. See Seller Financing.
Builds the listing for the seller to sign. The listing offers assetAmount of the asset at price, against a downpayment and deferred payment on the terms you send. Every term is checked against the market’s configuration and stamped on the listing when the transaction is mined. It never changes afterwards. Before building, the API previews the terms on the market contract and refuses terms the market would refuse, including a downpayment that fails the coverage rule. It then simulates the listing from from.
  • Freeze mode. One step, createListing. Nothing moves: the asset stays in the seller’s wallet until a buyer purchases, when the amount is frozen there. The seller needs that amount unfrozen in its wallet now, and the freeze adapter must hold the agent role on the token.
  • Custody mode. An exact approval of the custody adapter for assetAmount on the asset token, then createListing, which moves the asset into the adapter. The API checks that from holds the amount.
The seller must be verified on the market identity register when the market names one, and must not hold the agent role on the asset token.
A freeze-mode listing reserves nothing. A seller can list the same unfrozen balance twice. The second purchase then reverts before any money moves. A configuration change mined just before your listing applies to it: check the terms in the ListingCreated event, and cancel the listing if you do not accept them.
The listing’s ID is the id of the ListingCreated event in the receipt of the createListing step. There is no confirm call. Read the listing with Get Listing.

Path Parameters

string
required
The market’s record ID, as id on List Markets.

Body Parameters

string
required
Amount of the asset to sell, as a decimal string in whole units of the asset token, for example "100". Parsed at the asset’s decimals. Must be greater than zero.
string
required
The price for the whole amount, as a decimal string in whole units of the payment token, for example "10000".
integer
required
The downpayment, 500 to 9000 basis points of the price, inside the market’s minDownpaymentBps and maxDownpaymentBps. The downpayment is rounded up to the payment token’s smallest unit.
integer
required
The runtime from purchase to maturity, 1 to 3650 days, inside the market’s range.
integer
required
The interest period, 1 to 366 days, inside the market’s range and not longer than durationDays. Interest is due at the end of each period, counted from the purchase. Equal to durationDays, interest and principal are both due at maturity.
integer
required
The grace period after each due date, 0 to 90 days, up to the market’s maxGracePeriodDays. It is the window in which the buyer pays a period on time, because a period’s interest can be paid only once its due date has passed. A listing whose interestPeriodDays is shorter than durationDays needs at least 1, or the answer is 400 GRACE_PERIOD_REQUIRED. A single-period listing, with interestPeriodDays equal to durationDays, may keep 0.
string
required
FIXED or DERIVED, among those the market enables. See Interest.
integer
FIXED on a market where sellers set the rate: the annual rate, 0 to 5000 basis points, up to the market’s maxFixedRateBps. Omitted, the rate is 0. Ignored with DERIVED, and on a market where the operator’s fixedRateBps applies.
string
Reserve the listing for one wallet. It cannot be the seller, the market or its adapter. Omitted, "" or null, anyone the registers admit may buy.
integer
Unix time after which the listing can no longer be bought. It must lie in the future and at most 365 days ahead. Omit it for a listing without expiry.
string
required
The seller’s wallet, which signs the steps. Without it the answer is 400 FROM_REQUIRED.

Response Fields

object

Error Codes