Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
create_offer_and_commit · Boson Protocol
Skip to content

create_offer_and_commit

Atomically creates a private offer and commits a specific buyer in one transaction. Prerequisite: call sign_full_offer, sign the returned typed data locally with your wallet (EIP-712), and provide the signature here. Used for private/bilateral trades. Returns unsigned transaction data.

Category: Exchange management. Returns unsigned tx? Likely yes — sign locally and broadcast via send_signed_transaction or a meta-tx relay.

Input schema

FieldTypeRequiredDescription
executionModedirect | metaTxno'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'.
signaturestringyesECDSA signature over the offer typed data. Workflow: sign_full_offer → sign the returned typed data locally with your wallet (EIP-712) → use result here.
offerCreatorstringyesEthereum address of the seller creating this non-listed offer. Must match the seller's assistant address.
committeryesEthereum address of the buyer committing in the same transaction.
collectionIndexstringnoIndex of the seller's NFT collection for vouchers. Omit to use default (index 0).
royaltyInfoobjectno
drMutualizerAddressnoOptional dispute resolver mutualizer contract address that pools resolution funds.
conditionalTokenIdnoOptional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type).
conditionobjectno
useDepositedFundsbooleannoIf true, use funds already deposited in the protocol treasury instead of transferring from the wallet.
sellerIdyesNumeric ID of the seller entity. Obtain via get_sellers_by_address.
buyerIdyesNumeric ID of the buyer entity. Use '0' for seller-initiated offers.
metadataUristringyesIPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.
metadataHashstringyesKeccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.
exchangeTokenAddressnoERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values.
priceyesOffer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH.
sellerDeposityesSeller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string.
agentIdnoOptional dACP agent facilitating this offer. Omit or pass '0' if no agent.
buyerCancellationPenaltyyesAmount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string.
quantityAvailablenumberyesHow many times this offer can be committed to. Must be 1 when creator='BUYER'.
validFromDateInMSnumberyesUnix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.
validUntilDateInMSnumberyesUnix timestamp in milliseconds when the offer can no longer be committed to.
voucherRedeemableFromDateInMSnumberyesTimestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.
voucherRedeemableUntilDateInMSnumberyesTimestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.
disputePeriodDurationInMSnumberyesDuration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.
voucherValidDurationInMSnumberyesVoucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.
resolutionPeriodDurationInMSnumberyesDuration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.
disputeResolverIdstringnoID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.
feeLimitnoMax protocol fee the seller accepts in same token unit. Pass as string.
priceTypenumberno0 = static price, 1 = discovery price (auction).
creatorSELLER | BUYERno'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.
configIdstringyesBoson/Fermion Protocol deployment identifier. Format: '<env>-<chainId>-<index>' e.g. 'production-137-0' (Polygon mainnet), 'testing-80002-0' (Amoy testnet). Call get_config_ids to list all valid values for this server.
signerAddressyesEthereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.

Related