create_offer_commit_and_redeem
Atomically creates a private offer, commits a specific buyer, and immediately redeems the voucher in a single transaction via the OrchestrationHandler. Same prerequisites as create_offer_and_commit (sign_full_offer + EIP-712 signature). Use for instant-fulfilment private trades. Returns unsigned transaction data.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH. | |
| agentId | No | Optional dACP agent facilitating this offer. Omit or pass '0' if no agent. | |
| buyerId | Yes | Numeric ID of the buyer entity. Use '0' for seller-initiated offers. | |
| creator | No | 'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1. | |
| configId | Yes | Boson/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. | |
| feeLimit | No | Max protocol fee the seller accepts in same token unit. Pass as string. | |
| sellerId | Yes | Numeric ID of the seller entity. Obtain via get_sellers_by_address. | |
| committer | Yes | Ethereum address of the buyer committing in the same transaction. | |
| condition | No | ||
| priceType | No | 0 = static price, 1 = discovery price (auction). | |
| signature | Yes | ECDSA signature over the offer typed data. Workflow: sign_full_offer → sign the returned typed data locally with your wallet (EIP-712) → use result here. | |
| metadataUri | Yes | IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata. | |
| royaltyInfo | No | ||
| metadataHash | Yes | Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools. | |
| offerCreator | Yes | Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address. | |
| executionMode | No | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. | |
| sellerDeposit | Yes | Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string. | |
| signerAddress | Yes | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. | |
| collectionIndex | No | Index of the seller's NFT collection for vouchers. Omit to use default (index 0). | |
| disputeResolverId | No | ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers. | |
| quantityAvailable | Yes | How many times this offer can be committed to. Must be 1 when creator='BUYER'. | |
| useDepositedFunds | No | If true, use funds already deposited in the protocol treasury instead of transferring from the wallet. | |
| validFromDateInMS | Yes | Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate. | |
| conditionalTokenId | No | Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type). | |
| validUntilDateInMS | Yes | Unix timestamp in milliseconds when the offer can no longer be committed to. | |
| drMutualizerAddress | No | Optional dispute resolver mutualizer contract address that pools resolution funds. | |
| exchangeTokenAddress | No | ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values. | |
| buyerCancellationPenalty | Yes | Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string. | |
| voucherValidDurationInMS | Yes | Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead. | |
| disputePeriodDurationInMS | Yes | Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days. | |
| resolutionPeriodDurationInMS | Yes | Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days. | |
| voucherRedeemableFromDateInMS | Yes | Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS. | |
| voucherRedeemableUntilDateInMS | Yes | Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead. |