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 one transaction that deploys a market through the factory. The factory creates the market, deploys its adapter bound to it, and grants the admin role and the operator role, all in that transaction. The factory and Trusset hold no role on the market afterwards. from must be a verified wallet of your instance, because only a deployment your instance’s wallet signed can be recorded on your instance. Without from the answer is 400 FROM_REQUIRED. Any other wallet answers 403 DEPLOYMENT_NOT_INSTANCE_BOUND before any calldata exists. The API then checks both tokens, the market identity register when you name one, the asset’s freeze surface in freeze mode and the payment token’s decimals, and simulates the deployment from from. A deployment that would revert answers 409 TX_WOULD_REVERT. Sign the step from from and record the market with Record Deployment, as confirmWith names. Until then the market exists on-chain but not on your instance. This endpoint builds at most one market per asset token, payment token and mode for your instance. A second request for the same combination answers 409 MARKET_EXISTS, before from is checked. It names the existing market, and details.repair names the route that repairs a market deployed with a wrong identity register in place: Set Identity Register builds setIdentityRegistry with a working register, or with none. The rule applies when a deployment is built. Record Deployment records any verified deployment of your instance, including a second one of the same combination signed from saved calldata.

Body Parameters

string
required
The token sold on the market. It must have contract code on your network and answer balanceOf. In FREEZE mode it must also answer the ERC-3643 freeze reads isAgent and getFrozenTokens, and must not be an ERC-7943 token without an identity register, whose freeze works without an agent role. Otherwise the request answers 409 FREEZE_MODE_UNSUPPORTED_TOKEN with the reason: use CUSTODY for such a token.
string
required
The token the buyer pays in, for example USDC from paymentTokens on Get Deployment Options. It must differ from assetToken, have contract code, answer balanceOf, and use 6 to 18 decimals. It must debit exactly what it is asked to transfer: the market refuses a fee-on-transfer token on every payment.
string
default:"FREEZE"
FREEZE or CUSTODY. See Collateral modes. Fixed for the life of the market.
string
required
The wallet that receives DEFAULT_ADMIN_ROLE: it grants and revokes roles and can upgrade the market.
string
The wallet that receives OPERATOR_ROLE: it changes the configuration, pauses and unpauses, and can cancel listings and liquidate defaulted loans for sellers. Omitted, "" or null, the admin receives it.
string
required
The pledgee every lock of the adapter names. Immutable once deployed.
string
An identity register that examines sellers at listing and buyers at purchase. A wallet passes when the first word isVerified(address) returns is 1, so ERC-3643 registers and the Trusset ID Register both work. Omit it, or send "" or null, for a market without a register of its own. The asset token’s own register still examines buyers either way. In the Issuer Portal, the deploy dialog’s optional Market identity register field sets the same value.The register is probed before any calldata exists, because a market whose register refuses everyone can take no listing:
  • It must have contract code, or the answer is 400 INVALID_IDENTITY_REGISTRY.
  • It must not be assetToken or paymentToken. Naming a token here answers 422 IDENTITY_REGISTRY_INCOMPATIBLE.
  • It must not be the previous Trusset ID Register, which takes no new identities: 422 IDENTITY_REGISTRY_RETIRED, with the current register in details.currentRegistry.
  • It must answer isVerified(address), probed for from. A contract that does not answers 422 IDENTITY_REGISTRY_INCOMPATIBLE. A probe that cannot reach it answers 503 IDENTITY_REGISTRY_UNREADABLE.
A market already deployed with a wrong register is repaired in place with Set Identity Register.
integer
Decimals to use when the payment token does not report its own, from 6 to 18. Ignored when the token reports them. Without it, such a token answers 409 DECIMALS_UNRESOLVED.
object
The configuration new listings are checked against and stamped with. Every field is optional, and an omitted field takes its value from defaults on Get Deployment Options. The operator changes it later with Update Configuration.Each minimum must not exceed its maximum, minInterestPeriodDays must not exceed maxDurationDays, and at least one strategy must be enabled. While interest periods can be shorter than the runtime (minInterestPeriodDays below maxDurationDays), maxGracePeriodDays must be at least 1, because a listing with periodic due dates needs a grace period of at least one day. Only a market whose minInterestPeriodDays equals maxDurationDays, so every listing has a single period, may keep 0. A configuration that breaks one of these answers 400 INVALID_CONFIG, a field outside its bounds 400 VALIDATION_ERROR.
string
required
The wallet that signs the deployment. It must be a verified wallet of your instance. The deployment is simulated from it. Without it the answer is 400 FROM_REQUIRED.

Choosing the volatility input

volatilityBps prices the walk-away premium of DERIVED listings. Use the annualized volatility of the asset’s price, estimated conservatively. As a starting point: listed residential real estate funds 6 to 15 percent, diversified commercial property 10 to 20 percent, single-asset or development projects 20 to 40 percent, listed equities 20 to 40 percent. When in doubt choose the higher figure. An underestimate leaves the seller less compensated for a buyer who walks away than the premium is designed to give. An overestimate only makes the loan dearer. FIXED listings take no premium, so a seller who sets a fixed rate prices that risk into the rate.

Response Fields

object

Error Codes