MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Grants ERC-20 allowance to the Boson Protocol contract. Must be called before commit_to_offer or deposit_funds when using non-native exchange tokens, unless you relay in metaTx mode with transferAuthorizations (built with a sign_receive_with_* tool) passed to send_meta_transaction. Returns unsigned transaction data.
Allowance in wei. Use max uint256 string for unlimited: '115792089237316195423570985008687907853269984665640564039457584007913129639935'.
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.
Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.
ERC-20 token contract address to approve for the Boson Protocol diamond.
'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Grants ERC-20 allowance to the Boson Protocol contract. Must be called before commit_to_offer or deposit_funds when using non-native exchange tokens, unless you relay in metaTx mode with transferAuthorizations (built with a sign_receive_with_* tool) passed to send_meta_transaction. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| amount* | string | Allowance in wei. Use max uint256 string for unlimited: '115792089237316195423570985008687907853269984665640564039457584007913129639935'. |
| configId* | string | 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. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| exchangeTokenAddress* | string | ERC-20 token contract address to approve for the Boson Protocol diamond. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeTokenAddress",
"amount",
"configId",
"signerAddress"
],
"properties": {
"amount": {
"type": "string",
"description": "Allowance in wei. Use max uint256 string for unlimited: '115792089237316195423570985008687907853269984665640564039457584007913129639935'."
},
"configId": {
"type": "string",
"description": "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."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"exchangeTokenAddress": {
"type": "string",
"description": "ERC-20 token contract address to approve for the Boson Protocol diamond."
}
},
"additionalProperties": false
}Cancels a committed voucher. Caller must be the buyer (voucher holder). Buyer forfeits buyerCancellationPenalty; remainder is refunded. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Fulfils a buyer-initiated offer (creator='BUYER') by the seller. Caller must be the seller. Provide matching collateral. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| offerId* | string | ID of a buyer-initiated offer (creator='BUYER') to commit to. The seller fulfils the offer. |
| configId* | string | 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. |
| royaltyInfo | object | |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| collectionIndex | any | |
| drMutualizerAddress | any |
Commits to a token-gated (conditional) offer using a specific gating tokenId. Caller (signerAddress) must hold the gating token specified by the offer's condition. Use this instead of commit_to_offer for offers created via create_offer_with_condition. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| buyer | string | Optional buyer address if different from signerAddress. When set, executionMode must be 'direct'. |
| offerId* | string | ID of a conditional (token-gated) offer to commit to. Caller must hold the gating token specified by the offer's condition. |
| tokenId* | any | Token ID of the gate token used to qualify for the conditional commit (relevant for ERC-721/1155 and TokenRange gating). |
| configId* | string | 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. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* |
Atomically commits to a token-gated (conditional) offer using a specific gating tokenId and immediately redeems the voucher in a single transaction. Buyer must hold the gating token. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| offerId* | string | ID of a conditional (token-gated) offer to commit to and immediately redeem in a single transaction. |
| tokenId* | any | Token ID of the gate token used to qualify for the conditional commit (relevant for ERC-721/1155 and SpecificToken / TokenRange gating). |
| configId* | string | 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. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
Commits to an offer, creating an exchange and minting a voucher NFT. Caller is the buyer (signerAddress) unless 'buyer' param is set. For ERC-20 offers, call approve_exchange_token first. In metaTx mode, you can skip the approval by passing transferAuthorizations (built with a sign_receive_with_* tool) to send_meta_transaction. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| buyer | string | Optional buyer address if different from signerAddress. When set, executionMode must be 'direct'. |
| offerId* | string | ID of the active offer to commit to. Creates an exchange and mints a voucher NFT. |
| configId* | string | 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. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
Atomically commits to an offer and immediately redeems the voucher in a single transaction via the OrchestrationHandler. Buyer (signerAddress) must already hold any required ERC-20 allowance (approve_exchange_token), or, in metaTx mode, pass transferAuthorizations to send_meta_transaction. Skips voucher transferability and starts the dispute period clock immediately. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| offerId* | string | ID of the active offer to commit to and immediately redeem in a single transaction. Combines commit_to_offer + redeem_voucher via the OrchestrationHandler. |
| configId* | string | 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. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offerId",
"configId",
"signerAddress"
],
"properties": {
"offerId": {
"type": "string",
"description": "ID of the active offer to commit to and immediately redeem in a single transaction. Combines commit_to_offer + redeem_voucher via the OrchestrationHandler."
},
"configId": {
"type": "string",
"description": "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."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Completes an exchange after the dispute period expires, releasing funds to the seller. Can be called by seller after dispute period or by buyer at any time post-redemption. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Creates a buyer account for signerAddress. Required before a buyer can commit to seller-initiated offers for the first time. No prerequisites. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Generates EIP-712 typed data for a mutual dispute resolution proposal. Both buyer and seller must sign the same buyerPercentBasisPoints value locally with their wallet (EIP-712) before calling resolve_dispute. Returns: typed data structure (domain, types, message).
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| buyerPercentBasisPoints* | any | Proposed percentage of disputed funds for the buyer, 0–10000 (basis points). The counterparty must sign this same value. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"buyerPercentBasisPoints",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"buyerPercentBasisPoints": {
"$ref": "#/properties/exchangeId",
"description": "Proposed percentage of disputed funds for the buyer, 0–10000 (basis points). The counterparty must sign this same value."
}
},
"additionalProperties": false
}Creates a product offer. Caller must have a seller account (create_seller first). Prerequisite: store metadata first with store_product_v1_metadata or store_base_metadata to get metadataUri/metadataHash. All dates in milliseconds; amounts as strings in wei. Returns unsigned tx — sign locally with your wallet → send_signed_transaction, or executionMode='metaTx'.
| Argument | Type | Description |
|---|---|---|
| price* | string | Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH. |
| agentId | any | Optional dACP agent facilitating this offer. Omit or pass '0' if no agent. |
| creator | string | 'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1. |
| configId* | string | 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 | any | Max protocol fee the seller accepts in same token unit. Pass as string. |
| priceType | number | 0 = static price, 1 = discovery price (auction). |
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.
| Argument | Type | Description |
|---|---|---|
| price* | any | Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH. |
| agentId | any | Optional dACP agent facilitating this offer. Omit or pass '0' if no agent. |
| buyerId* | any | Numeric ID of the buyer entity. Use '0' for seller-initiated offers. |
| creator | string | 'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1. |
| configId* | string | 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 | any | Max protocol fee the seller accepts in same token unit. Pass as string. |
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.
| Argument | Type | Description |
|---|---|---|
| price* | any | Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH. |
| agentId | any | Optional dACP agent facilitating this offer. Omit or pass '0' if no agent. |
| buyerId* | any | Numeric ID of the buyer entity. Use '0' for seller-initiated offers. |
| creator | string | 'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1. |
| configId* | string | 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 | any | Max protocol fee the seller accepts in same token unit. Pass as string. |
Creates an offer gated by token-ownership (e.g. hold an ERC-721 to commit). Same prerequisites as create_offer plus a condition object specifying the gate token, method, and threshold. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| price* | any | Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH. |
| agentId | any | Optional dACP agent facilitating this offer. Omit or pass '0' if no agent. |
| creator | string | 'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1. |
| configId* | string | 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 | any | Max protocol fee the seller accepts in same token unit. Pass as string. |
| condition* | object | |
| priceType | number | 0 = static price, 1 = discovery price (auction). |
Creates a seller account on Boson Protocol. Required before creating any offers. signerAddress is automatically set as admin, assistant, and treasury. Provide seller metadata and royaltyPercentage. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| name | string | |
| type* | string | |
| images | array | |
| website | string | |
| configId* | string | 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. |
| authTokenId* | any | NFT token ID used as auth token (e.g. Lens profile ID). Pass '0' if not using auth tokens. |
| contractUri | string | Optional URI for OpenSea-style storefront metadata (defaults to empty string, meaning none). When set, it is fetched to copy it to The Graph's IPFS node, so it must be an ipfs:// URI, a CID, or an http(s) URL returning JSON. |
Decides an escalated dispute. Caller must be the dispute resolver assigned to the offer's disputeResolverId. Specify buyerPercent in basis points (0=all to seller, 10000=all to buyer). Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| buyerPercent* | any | Percentage of disputed funds to buyer in basis points (0–10000). 10000 = all to buyer, 0 = all to seller. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"buyerPercent",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"buyerPercent": {
"$ref": "#/properties/exchangeId",
"description": "Percentage of disputed funds to buyer in basis points (0–10000). 10000 = all to buyer, 0 = all to seller."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Deposits ERC-20 or native tokens into an entity's protocol treasury (e.g. seller deposit). For ERC-20, call approve_exchange_token first. In metaTx mode, you can skip the approval by passing transferAuthorizations (built with a sign_receive_with_* tool) to send_meta_transaction. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| amount* | any | Amount in wei. For ERC-20, approve_exchange_token must be called first, unless relaying in metaTx mode with transferAuthorizations passed to send_meta_transaction. Pass as string. |
| configId* | string | 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. |
| entityId* | string | Numeric ID of the entity to credit. Must match signerAddress's seller account. |
| tokenAddress* | string | ERC-20 token to deposit. Use address(0) for native ETH. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress |
Escalates a stale dispute to the third-party dispute resolver. Caller must be the buyer. Resolver's escalation fee must be covered. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Marks a dispute as expired after its resolution period passes. Permissionless — anyone can call. Exchange must be in 'Disputed' state past its timeout. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Marks multiple expired disputes in one transaction. All exchanges must be in 'Disputed' state past their respective timeouts. Permissionless. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeIds* | array | Array of exchange IDs whose dispute period has passed. All must be in 'Disputed' state past their timeout. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeIds",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Array of exchange IDs whose dispute period has passed. All must be in 'Disputed' state past their timeout."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Expires an escalated dispute once the resolver's response period passes without a decision. Permissionless — anyone can call. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Extends the deadline of an active dispute. Dispute must be in 'Resolving' state. Either party can call this. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| newDisputeTimeout* | any | New absolute Unix timestamp in SECONDS (not ms) for the dispute deadline. Must be later than current timeout. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"newDisputeTimeout",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"newDisputeTimeout": {
"$ref": "#/properties/exchangeId",
"description": "New absolute Unix timestamp in SECONDS (not ms) for the dispute deadline. Must be later than current timeout."
}
},
"additionalProperties": false
}Reads product groupings with at least one non-voided variant from the Boson subgraph. Useful for storefront displays. Supports pagination and ordering. Read-only.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| productsSkip | number | |
| productsFirst | number | |
| productsFilter | object | |
| productsOrderBy | string | |
| productsOrderDirection | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"productsSkip": {
"type": "number"
},
"productsFirst": {
"type": "number"
},
"productsFilter": {
"type": "object",
"additionalProperties": {}
},
"productsOrderBy": {
"enum": [
"allVariantsVoided",
"brand",
"brand__id",
"brand__name",
"category",
"category__id",
"category__name",
"description",
"details_category",
"details_offerCategory",
"details_personalisation",
"details_sections",
"details_subCategory",
"details_subCategory2",
"details_tags",
"disputeResolverId",
"id",
"identification_productId",
"identification_productIdType",
"identification_sKU",
"maxValidFromDate",
"maxValidUntilDate",
"minValidFromDate",
"minValidUntilDate",
"notVoidedVariants",
"offerCategory",
"packaging_dimensions_height",
"packaging_dimensions_length",
"packaging_dimensions_unit",
"packaging_dimensions_width",
"packaging_packageQuantity",
"packaging_weight_unit",
"packaging_weight_value",
"personalisation",
"productV1Seller",
"productV1Seller__contactPreference",
"productV1Seller__defaultVersion",
"productV1Seller__description",
"productV1Seller__externalUrl",
"productV1Seller__id",
"productV1Seller__name",
"productV1Seller__sellerId",
"productV1Seller__tokenId",
"productionInformation_brandName",
"productionInformation_manufacturer",
"productionInformation_manufacturerPartNumber",
"productionInformation_materials",
"productionInformation_modelNumber",
"salesChannels",
"sections",
"sellerId",
"subCategory",
"subCategory2",
"subCategory2__id",
"subCategory2__name",
"subCategory__id",
"subCategory__name",
"tags",
"title",
"uuid",
"variants",
"version",
"visuals_images",
"visuals_videos"
],
"type": "string"
},
"productsOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}Returns all valid configId values for this server. Call first to discover which network/deployment to use. No auth required.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Reads a single dispute by its ID (equals the exchangeId). Read-only. Returns: dispute entity with state, timeout, buyerPercent. Use get_disputes to search first.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| disputeId* | string | Numeric ID of the dispute to retrieve. Note: disputeId equals the exchangeId of the associated exchange. |
| queryVars | any | Optional additional subgraph query variables for field selection. Leave empty for default fields. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"disputeId",
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"disputeId": {
"type": "string",
"description": "Numeric ID of the dispute to retrieve. Note: disputeId equals the exchangeId of the associated exchange."
},
"queryVars": {
"description": "Optional additional subgraph query variables for field selection. Leave empty for default fields."
}
},
"additionalProperties": false
}Reads registered dispute resolver entities. Use this to find a valid disputeResolverId for create_offer. Read-only. Returns: array of resolvers with ID, fees, escalationResponsePeriod, and supported tokens.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| disputeResolversSkip | number | |
| disputeResolversFirst | number | |
| disputeResolversFilter | object | |
| disputeResolversOrderBy | string | |
| disputeResolversOrderDirection | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"disputeResolversSkip": {
"type": "number"
},
"disputeResolversFirst": {
"type": "number"
},
"disputeResolversFilter": {
"type": "object",
"additionalProperties": {}
},
"disputeResolversOrderBy": {
"enum": [
"active",
"admin",
"assistant",
"clerk",
"escalationResponsePeriod",
"fees",
"funds",
"id",
"logs",
"metadataUri",
"offers",
"pendingDisputeResolver",
"pendingDisputeResolver__admin",
"pendingDisputeResolver__assistant",
"pendingDisputeResolver__clerk",
"pendingDisputeResolver__id",
"sellerAllowList",
"treasury"
],
"type": "string"
},
"disputeResolversOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}Reads dispute records from the Boson subgraph. Supports pagination, ordering, and filtering by buyer/seller/state. Read-only. Returns: array of dispute entities with exchangeId, state, timeout.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| disputesSkip | number | |
| disputesFirst | number | |
| disputesFilter | object | |
| disputesOrderBy | string | |
| disputesOrderDirection | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"disputesSkip": {
"type": "number"
},
"disputesFirst": {
"type": "number"
},
"disputesFilter": {
"type": "object",
"additionalProperties": {}
},
"disputesOrderBy": {
"enum": [
"buyer",
"buyerPercent",
"buyer__active",
"buyer__id",
"buyer__wallet",
"decidedDate",
"disputeResolver",
"disputeResolver__active",
"disputeResolver__admin",
"disputeResolver__assistant",
"disputeResolver__clerk",
"disputeResolver__escalationResponsePeriod",
"disputeResolver__id",
"disputeResolver__metadataUri",
"disputeResolver__treasury",
"disputedDate",
"escalatedDate",
"exchange",
"exchangeId",
"exchange__cancelledDate",
"exchange__committedDate",
"exchange__completedDate",
"exchange__disputed",
"exchange__disputedDate",
"exchange__expired",
"exchange__finalizedDate",
"exchange__id",
"exchange__mutualizerAddress",
"exchange__redeemedDate",
"exchange__revokedDate",
"exchange__state",
"exchange__validUntilDate",
"finalizedDate",
"id",
"refusedDate",
"resolvedDate",
"retractedDate",
"seller",
"seller__active",
"seller__admin",
"seller__assistant",
"seller__authTokenId",
"seller__authTokenType",
"seller__clerk",
"seller__id",
"seller__metadataUri",
"seller__sellerId",
"seller__treasury",
"seller__voucherCloneAddress",
"state",
"timeout"
],
"type": "string"
},
"disputesOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}Reads exchange records (offer commitments) from the Boson subgraph. Filter by buyer/seller/state. Read-only. Returns: array of exchanges with offerId, state (Committed/Redeemed/Completed/Disputed/Cancelled/Revoked), and voucher details.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangesSkip | number | |
| exchangesFirst | number | |
| exchangesFilter | object | |
| exchangesOrderBy | string | |
| exchangesOrderDirection | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangesSkip": {
"type": "number"
},
"exchangesFirst": {
"type": "number"
},
"exchangesFilter": {
"type": "object",
"additionalProperties": {}
},
"exchangesOrderBy": {
"enum": [
"buyer",
"buyer__active",
"buyer__id",
"buyer__wallet",
"cancelledDate",
"committedDate",
"completedDate",
"dispute",
"disputeResolver",
"disputeResolver__active",
"disputeResolver__admin",
"disputeResolver__assistant",
"disputeResolver__clerk",
"disputeResolver__escalationResponsePeriod",
"disputeResolver__id",
"disputeResolver__metadataUri",
"disputeResolver__treasury",
"dispute__buyerPercent",
"dispute__decidedDate",
"dispute__disputedDate",
"dispute__escalatedDate",
"dispute__exchangeId",
"dispute__finalizedDate",
"dispute__id",
"dispute__refusedDate",
"dispute__resolvedDate",
"dispute__retractedDate",
"dispute__state",
"dispute__timeout",
"disputed",
"disputedDate",
"expired",
"finalizedDate",
"id",
"mutualizerAddress",
"offer",
"offer__agentFee",
"offer__agentId",
"offer__buyerCancelPenalty",
"offer__buyerId",
"offer__collectionIndex",
"offer__createdAt",
"offer__creator",
"offer__disputePeriodDuration",
"offer__disputeResolverId",
"offer__id",
"offer__metadataHash",
"offer__metadataUri",
"offer__numberOfCommits",
"offer__numberOfRedemptions",
"offer__price",
"offer__priceType",
"offer__protocolFee",
"offer__quantityAvailable",
"offer__quantityInitial",
"offer__resolutionPeriodDuration",
"offer__sellerDeposit",
"offer__sellerId",
"offer__validFromDate",
"offer__validUntilDate",
"offer__voided",
"offer__voidedAt",
"offer__voucherRedeemableFromDate",
"offer__voucherRedeemableUntilDate",
"offer__voucherValidDuration",
"protocolFeeCollected",
"protocolFeeCollected__amount",
"protocolFeeCollected__exchangeId",
"protocolFeeCollected__exchangeToken",
"protocolFeeCollected__executedBy",
"protocolFeeCollected__id",
"redeemedDate",
"revokedDate",
"seller",
"seller__active",
"seller__admin",
"seller__assistant",
"seller__authTokenId",
"seller__authTokenType",
"seller__clerk",
"seller__id",
"seller__metadataUri",
"seller__sellerId",
"seller__treasury",
"seller__voucherCloneAddress",
"state",
"validUntilDate"
],
"type": "string"
},
"exchangesOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}Reads treasury fund balances for sellers and buyers from the Boson subgraph. Supports pagination/ordering/filtering. Read-only — signerAddress not required. Returns: array of { tokenAddress, availableAmount, accountId }.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| fundsSkip | number | |
| fundsFirst | number | |
| fundsFilter | object | |
| fundsOrderBy | string | |
| fundsOrderDirection | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"fundsSkip": {
"type": "number"
},
"fundsFirst": {
"type": "number"
},
"fundsFilter": {
"type": "object",
"additionalProperties": {}
},
"fundsOrderBy": {
"enum": [
"account",
"accountId",
"account__createdAt",
"account__creationTxHash",
"account__entityId",
"account__id",
"account__metadataURI",
"availableAmount",
"changes",
"id",
"token",
"tokenAddress",
"token__address",
"token__decimals",
"token__id",
"token__name",
"token__symbol"
],
"type": "string"
},
"fundsOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}Reads offer listings from the Boson subgraph. Supports pagination, ordering, and filtering (e.g. by sellerId). Read-only. Returns: array of offers with price, deposit, dates, and quantity.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| offersSkip | number | |
| offersFirst | number | |
| offersFilter | object | |
| exchangesSkip | number | |
| offersOrderBy | string | |
| exchangesFirst | number | |
| exchangesFilter | object | |
| exchangesOrderBy | string | |
Returns all dACP agents registered with this MCP server instance, with their associated protocol entities and roles. No auth required.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
}
},
"additionalProperties": false
}Reads seller account entities from the Boson subgraph. Optionally includes related offers, exchanges, funds, and logs. Read-only. Returns: array of seller entities with addresses and metadataUri.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| includeLogs | boolean | |
| sellersSkip | number | |
| includeFunds | boolean | |
| sellersFirst | number | |
| includeOffers | boolean | |
| sellersFilter | object | |
| sellersOrderBy | string | |
| includeExchanges | boolean | |
Reads seller entities associated with a specific Ethereum address. Use this to check if signerAddress already has a seller account before calling create_seller. Read-only. Returns: array of seller entities.
| Argument | Type | Description |
|---|---|---|
| address* | string | |
| configId* | string | 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. |
| includeLogs | boolean | |
| sellersSkip | number | |
| includeFunds | boolean | |
| sellersFirst | number | |
| includeOffers | boolean | |
| sellersFilter | object | |
| sellersOrderBy | string |
Returns ERC-20 tokens accepted as exchange tokens on the given configId deployment. Use returned addresses in exchangeTokenAddress fields of create_offer. Read-only. Returns: array of { address, name, symbol, decimals }.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
}
},
"additionalProperties": false
}Raises a dispute on a redeemed exchange. Caller must be the buyer. Must be called within disputePeriodDurationInMS after redemption. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Redeems a voucher, signalling physical receipt of goods and starting the dispute period clock. Caller must be the buyer. After redemption, buyer has disputePeriodDurationInMS to raise a dispute. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Dispute resolver refuses to decide an escalated dispute. Returns the escalation fee to the buyer and resets dispute to 'Resolving' state. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Registers a dACP agent with this MCP server instance, associating its Ethereum identities and roles. The signature proves control of each signerAddress. Server-local state — no configId/signerAddress context needed. Returns: registration confirmation.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| entities* | array | |
| description* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"description",
"entities"
],
"properties": {
"name": {
"type": "string"
},
"entities": {
"type": "array",
"items": {
"type": "object",
"required": [
"configId",
"role",
"entityId",
"signerAddress",
"signature"
],
"properties": {
"role": {
"enum": [
"buyer",
"seller",
"disputeResolver"
],
"type": "string"
},
"configId": {
"type": "string"
},
"entityId": {
"type": "string"
},
"signature": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{130}$"
},
"signerAddress": {
"type": "string",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
}
},
"additionalProperties": false
}
},
"description": {
"type": "string"
}
},
"additionalProperties": false
}Renders the legal contractual agreement text/HTML for an offer using its offer data and metadata. Use to preview or store the agreement. Returns: rendered agreement string.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| template* | string | |
| offerData* | object | |
| offerMetadata* | object | |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"template",
"offerData",
"offerMetadata",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"template": {
"type": "string"
},
"offerData": {
"type": "object",
"required": [
"price",
"sellerDeposit",
"agentId",
"buyerCancelPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"resolutionPeriodDurationInMS",
"exchangeToken",
"disputeResolverId",
"metadataUri",
"metadataHash",
"collectionIndex"
],
"properties": {
"price": {
"type": "string"
},
"agentId": {
"$ref": "#/properties/offerData/properties/price"
},
"feeLimit": {
"$ref": "#/properties/offerData/properties/price"
},
"priceType": {
"type": "number"
},
"metadataUri": {
"type": "string"
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/offerData/properties/exchangeToken"
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string"
},
"exchangeToken": {
"type": "string",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
},
"sellerDeposit": {
"$ref": "#/properties/offerData/properties/price"
},
"collectionIndex": {
"$ref": "#/properties/offerData/properties/price"
},
"disputeResolverId": {
"$ref": "#/properties/offerData/properties/price"
},
"quantityAvailable": {
"$ref": "#/properties/offerData/properties/price"
},
"validFromDateInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"buyerCancelPenalty": {
"$ref": "#/properties/offerData/properties/price"
},
"validUntilDateInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"voucherValidDurationInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"disputePeriodDurationInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"resolutionPeriodDurationInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"voucherRedeemableFromDateInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"voucherRedeemableUntilDateInMS": {
"$ref": "#/properties/offerData/properties/price"
}
},
"additionalProperties": false
},
"offerMetadata": {
"type": "object",
"required": [
"sellerContactMethod",
"disputeResolverContactMethod",
"escalationDeposit",
"escalationResponsePeriodInSec",
"sellerTradingName",
"returnPeriodInDays"
],
"properties": {
"escalationDeposit": {
"$ref": "#/properties/offerData/properties/price"
},
"sellerTradingName": {
"type": "string"
},
"returnPeriodInDays": {
"type": "number"
},
"sellerContactMethod": {
"type": "string"
},
"disputeResolverContactMethod": {
"type": "string"
},
"escalationResponsePeriodInSec": {
"$ref": "#/properties/offerData/properties/price"
}
},
"additionalProperties": false
},
"signerAddress": {
"$ref": "#/properties/offerData/properties/exchangeToken",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Resolves a dispute by mutual agreement. Workflow: (1) create_dispute_resolution_proposal generates typed data, (2) both parties sign the typed data locally with their wallet (EIP-712), (3) either party submits sigR/sigS/sigV here. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| sigR* | string | 32-byte R component of the ECDSA resolution signature as 0x-prefixed hex. From the locally-signed EIP-712 signature parameters. |
| sigS* | string | 32-byte S component as 0x-prefixed hex. From the locally-signed EIP-712 signature parameters. |
| sigV* | any | Recovery byte V: 27 or 28. From the locally-signed EIP-712 signature parameters. |
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
Retracts a raised dispute, releasing seller deposit and restoring completion flow. Caller must be the buyer who raised it. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Revokes a committed (not yet redeemed) voucher on behalf of the seller, returning funds to the buyer. Caller must be the seller assistant. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| exchangeId* | string | Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Searches products in the Boson subgraph by keywords matched against title, description, brand, category, and tags. Supports pagination, ordering, filtering, and an includeInvalidOffers flag (default false = only products with currently-valid offers). Read-only. Returns: array of product search result fragments.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| keywords* | array | List of keywords matched against product title, description, brand, category, and tags. |
| productsSkip | number | |
| productsFirst | number | |
| productsFilter | object | |
| productsOrderBy | string | |
| includeInvalidOffers | boolean | When true, include products whose offers are outside their validity window. Defaults to false (valid offers only). |
Relays a Biconomy forwarded meta-transaction (ERC-20 gas payment). Requires a complete ERC20ForwardRequest and domain separator signature. Returns: relay transaction data.
| Argument | Type | Description |
|---|---|---|
| request* | object | |
| configId* | string | 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. |
| signature* | string | |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| contractAddress* | string | Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted. |
| domainSeparator* | string |
Relays a pre-signed meta-transaction via Biconomy so the user pays no gas. Requires sigR/sigS/sigV from a locally-signed EIP-712 payload. Use when the target operation requires metaTx relay. Optionally accepts transferAuthorizations (from the sign_receive_with_* tools, completed with your local signature) so the protocol can pull ERC-20 tokens without a prior approve_exchange_token tx. Returns: relay transaction data.
| Argument | Type | Description |
|---|---|---|
| sigR* | string | |
| sigS* | string | |
| sigV* | string | number | |
| nonce* | string | number | |
| configId* | string | 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. |
| functionName* | string | |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
Relays a native meta-transaction (EIP-712 signed function call) via Biconomy. Requires ABI-encoded function signature and sigR/sigS/sigV from a locally-signed EIP-712 payload. Returns: relay transaction data.
| Argument | Type | Description |
|---|---|---|
| sigR* | string | |
| sigS* | string | |
| sigV* | string | number | |
| configId* | string | 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. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| contractAddress* | string | Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted. |
| functionSignature* |
Broadcasts a signed raw Ethereum transaction to the network. signedTransaction must be 0x-prefixed RLP-encoded hex obtained from local wallet signing (e.g. ethers `wallet.signTransaction(tx)`). Returns: transaction hash, block number, and gas used.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| signedTransaction* | string | RLP-encoded signed Ethereum transaction as 0x-prefixed hex string. Obtain from local wallet signing (e.g. ethers `wallet.signTransaction(tx)`). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"signedTransaction",
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"signedTransaction": {
"type": "string",
"description": "RLP-encoded signed Ethereum transaction as 0x-prefixed hex string. Obtain from local wallet signing (e.g. ethers `wallet.signTransaction(tx)`)."
}
},
"additionalProperties": false
}Generates EIP-712 typed data for a non-listed (private) offer that the offer creator must sign. Call before create_offer_and_commit or void_non_listed_offer. Returns: typed data structure — sign it locally with your wallet (EIP-712), then use the signature in the next step.
| Argument | Type | Description |
|---|---|---|
| price* | any | Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH. |
| agentId | any | Optional dACP agent facilitating this offer. Omit or pass '0' if no agent. |
| buyerId* | any | Numeric ID of the buyer entity. Use '0' for seller-initiated offers. |
| creator | string | 'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1. |
| configId* | string | 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 | any | Max protocol fee the seller accepts in same token unit. Pass as string. |
| sellerId |
Generates EIP-712 typed data for a DAI-style Permit. Authorizes the spender (default: protocol diamond) to pull DAI-style tokens from signerAddress until `expiry`. Sign locally with your wallet (EIP-712); add the resulting signature to the returned transferAuthorization { strategy: 'DAIPermit', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
| Argument | Type | Description |
|---|---|---|
| value* | string | Amount in wei the spender is authorized to pull from the signer. |
| expiry* | any | Unix timestamp in seconds after which the DAI-style permit is no longer valid. |
| spender | any | Optional spender address. Defaults to the Boson Protocol diamond from SDK config. |
| configId* | string | 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. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| tokenDomainName |
Generates EIP-712 typed data for an EIP-2612 Permit. Authorizes the spender (default: protocol diamond) to pull `value` from signerAddress until `deadline`. Sign locally with your wallet (EIP-712); add the resulting signature to the returned transferAuthorization { strategy: 'EIP2612', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
| Argument | Type | Description |
|---|---|---|
| value* | string | Amount in wei the spender is authorized to pull from the signer. |
| spender | any | Optional spender address. Defaults to the Boson Protocol diamond from SDK config. |
| configId* | string | 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. |
| deadline* | any | Unix timestamp in seconds after which the permit is no longer valid. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| tokenDomainName* |
Generates EIP-712 typed data for an ERC-3009 ReceiveWithAuthorization (e.g. USDC). Authorizes the spender (default: protocol diamond) to pull `value` from signerAddress between validAfter and validBefore. Sign locally with your wallet (EIP-712); add the resulting signature to the returned transferAuthorization { strategy: 'ERC3009', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
| Argument | Type | Description |
|---|---|---|
| value* | string | Amount in wei the spender is authorized to pull from the signer. |
| spender | any | Optional spender address. Defaults to the Boson Protocol diamond from SDK config. |
| configId* | string | 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. |
| validAfter* | any | Unix timestamp in seconds before which the authorization is not valid. |
| validBefore* | any | Unix timestamp in seconds after which the authorization is no longer valid. |
| signerAddress |
Generates EIP-712 typed data for a Uniswap Permit2 PermitTransferFrom. Authorizes the spender (default: protocol diamond) to pull `value` from signerAddress until `deadline`. permit2Address defaults to contracts.permit2 from SDK config; permit2Nonce defaults to a random uint256. Sign locally with your wallet (EIP-712); add the resulting signature to the returned transferAuthorization { strategy: 'Permit2', data } and pass it in send_meta_transaction.transferAuthorizations. Returns: typedData to sign + transferAuthorization template.
| Argument | Type | Description |
|---|---|---|
| value* | string | Amount in wei the spender is authorized to pull from the signer. |
| spender | any | Optional spender address. Defaults to the Boson Protocol diamond from SDK config. |
| configId* | string | 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. |
| deadline* | any | Unix timestamp in seconds after which the Permit2 authorization is no longer valid. |
| permit2Nonce | any | Optional Permit2 nonce as a uint256 string. If omitted, a random uint256 is generated. |
| signerAddress |
Stores a Base metadata object to IPFS. Use for simple offers that don't require ProductV1 or Bundle structure. Returns: { metadataUri, metadataHash } for use in create_offer.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| type* | string | |
| image | string | |
| configId* | string | 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. |
| condition | string | |
| imageData | string | |
| schemaUrl* | string | |
| attributes | array | |
| licenseUrl* | string | |
| youtubeUrl |
Stores a single NFT bundle item's metadata to IPFS. Call once per NFT component in a bundle before store_bundle_metadata. Returns: { url: 'ipfs://...' } to include in the items array.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| type* | string | |
| image | string | |
| terms | array | |
| chainId | number | |
| tokenId | string | |
| configId* | string | 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. |
| contract | string | |
| quantity | number | |
| imageData | string |
Stores a single ProductV1 bundle item's metadata to IPFS. Call once per physical product in a bundle before store_bundle_metadata. Returns: { url: 'ipfs://...' } to include in the items array.
| Argument | Type | Description |
|---|---|---|
| type* | string | |
| uuid* | string | |
| product* | object | |
| configId* | string | 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. |
| shipping* | object | |
| schemaUrl* | string | |
| variations | array | |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
Stores a Bundle metadata object to IPFS. Prerequisite: call store_bundle_item_product_v1_metadata and/or store_bundle_item_nft_metadata first; include their returned URLs in the items array. Returns: { metadataUri, metadataHash }.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| type* | string | |
| image | string | |
| items* | array | |
| seller* | object | |
| configId* | string | 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. |
| condition | string | |
| imageData | string | |
| schemaUrl* | string | |
Stores a ProductV1 metadata object to IPFS. Call before create_offer to get metadataUri and metadataHash. Returns: { metadataUri: 'ipfs://...', metadataHash: '0x...' }.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| type* | string | |
| uuid* | string | |
| image* | string | |
| seller* | object | |
| product* | object | |
| configId* | string | 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. |
| shipping* | object | |
| condition | string | |
Updates an existing seller account. Caller must be the current seller admin (signerAddress). Use get_sellers_by_address to retrieve the seller id first. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| id* | any | Numeric ID of the existing seller entity to update. Obtain from get_sellers_by_address. |
| kind* | string | |
| name | string | |
| type* | string | |
| images | array | |
| website | string | |
| configId* | string | 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. |
| authTokenId* | string | NFT token ID used as auth token (e.g. Lens profile ID). Pass '0' if not using auth tokens. |
Validates a metadata object against the Boson Protocol schema (PRODUCT_V1, BUNDLE, BASE, etc.) without storing it. Use before store_*_metadata to catch errors early. Read-only. Returns: validation result with any errors.
| Argument | Type | Description |
|---|---|---|
| metadata* | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"metadata"
],
"properties": {
"metadata": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}Voids a private (non-listed) offer before it is fulfilled. Prerequisite: call sign_full_offer and sign the returned typed data locally with your wallet (EIP-712) to obtain the signature. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| price* | any | Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH. |
| agentId | any | Optional dACP agent facilitating this offer. Omit or pass '0' if no agent. |
| buyerId* | any | Numeric ID of the buyer entity. Use '0' for seller-initiated offers. |
| creator | string | 'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1. |
| configId* | string | 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 | any | Max protocol fee the seller accepts in same token unit. Pass as string. |
| sellerId* |
Voids multiple private offers atomically. Same prerequisite as void_non_listed_offer, but for an array of full offer objects. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| configId* | string | 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. |
| fullOffers* | array | |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fullOffers",
"configId",
"signerAddress"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"fullOffers": {
"type": "array",
"items": {
"type": "object",
"required": [
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS"
],
"properties": {
"price": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId",
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH."
},
"agentId": {
"$ref": "#/properties/fullOffers/items/properties/sellerId",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerId": {
"$ref": "#/properties/fullOffers/items/properties/sellerId"
},
"creator": {
"enum": [
"SELLER",
"BUYER"
],
"type": "string",
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1."
},
"feeLimit": {
"$ref": "#/properties/fullOffers/items/properties/sellerId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"sellerId": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId"
},
"condition": {
"type": "object",
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"properties": {
"method": {
"type": "number",
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID)."
},
"threshold": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId",
"description": "Minimum token balance required. Pass as string."
},
"tokenType": {
"type": "number",
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155."
},
"gatingType": {
"type": "number",
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once)."
},
"maxCommits": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId",
"description": "Max commits per qualifying address or token ID. Pass as string."
},
"maxTokenId": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId",
"description": "Max token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"minTokenId": {
"type": "string",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"tokenAddress": {
"type": "string",
"description": "Address of the gate token contract buyers must hold."
}
},
"additionalProperties": false
},
"priceType": {
"type": "number",
"description": "0 = static price, 1 = discovery price (auction)."
},
"metadataUri": {
"type": "string",
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/fullOffers/items/properties/exchangeTokenAddress"
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string",
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools."
},
"sellerDeposit": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"collectionIndex": {
"$ref": "#/properties/fullOffers/items/properties/sellerId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"disputeResolverId": {
"type": "string",
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers."
},
"quantityAvailable": {
"type": "number",
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0
},
"useDepositedFunds": {
"type": "boolean"
},
"validFromDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate."
},
"validUntilDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to."
},
"drMutualizerAddress": {
"$ref": "#/properties/fullOffers/items/properties/exchangeTokenAddress",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/tokenAddress",
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"voucherValidDurationInMS": {
"type": "number",
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead."
},
"disputePeriodDurationInMS": {
"type": "number",
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days."
},
"resolutionPeriodDurationInMS": {
"type": "number",
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days."
},
"voucherRedeemableFromDateInMS": {
"type": "number",
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS."
},
"voucherRedeemableUntilDateInMS": {
"type": "number",
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead."
}
},
"additionalProperties": false
},
"minItems": 1
},
"signerAddress": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/tokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Voids a listed offer so it can no longer be committed to. Caller must be the seller assistant. Existing exchanges are unaffected. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| offerId* | string | ID of the listed offer to void. Caller must be the seller assistant. Existing exchanges are unaffected. |
| configId* | string | 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. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offerId",
"configId",
"signerAddress"
],
"properties": {
"offerId": {
"type": "string",
"description": "ID of the listed offer to void. Caller must be the seller assistant. Existing exchanges are unaffected."
},
"configId": {
"type": "string",
"description": "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."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}Withdraws funds from an entity's protocol treasury to the entity's treasury address. Sellers withdraw proceeds; buyers withdraw refunds. Caller must control the entity via signerAddress. Returns unsigned transaction data.
| Argument | Type | Description |
|---|---|---|
| list* | array | |
| configId* | string | 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. |
| entityId* | string | Numeric ID of the seller or buyer entity withdrawing funds. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"entityId",
"list",
"configId",
"signerAddress"
],
"properties": {
"list": {
"type": "array",
"items": {
"type": "object",
"required": [
"tokenAddress",
"amount"
],
"properties": {
"amount": {
"$ref": "#/properties/entityId",
"description": "Amount in token's smallest unit (wei). Use '0' to withdraw full available balance. Pass as string."
},
"tokenAddress": {
"type": "string",
"description": "ERC-20 token address to withdraw. Use address(0) for native ETH."
}
},
"additionalProperties": false
},
"minItems": 1
},
"configId": {
"type": "string",
"description": "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."
},
"entityId": {
"type": "string",
"description": "Numeric ID of the seller or buyer entity withdrawing funds."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"$ref": "#/properties/list/items/properties/tokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}| Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offerId",
"configId",
"signerAddress"
],
"properties": {
"offerId": {
"type": "string",
"description": "ID of a buyer-initiated offer (creator='BUYER') to commit to. The seller fulfils the offer."
},
"configId": {
"type": "string",
"description": "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."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"type": "string",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"collectionIndex": {
"$ref": "#/properties/offerId"
},
"drMutualizerAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
}
},
"additionalProperties": false
}| any |
| Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offerId",
"tokenId",
"configId",
"signerAddress"
],
"properties": {
"buyer": {
"type": "string",
"description": "Optional buyer address if different from signerAddress. When set, executionMode must be 'direct'."
},
"offerId": {
"type": "string",
"description": "ID of a conditional (token-gated) offer to commit to. Caller must hold the gating token specified by the offer's condition."
},
"tokenId": {
"$ref": "#/properties/offerId",
"description": "Token ID of the gate token used to qualify for the conditional commit (relevant for ERC-721/1155 and TokenRange gating)."
},
"configId": {
"type": "string",
"description": "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."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"$ref": "#/properties/buyer",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offerId",
"tokenId",
"configId",
"signerAddress"
],
"properties": {
"offerId": {
"type": "string",
"description": "ID of a conditional (token-gated) offer to commit to and immediately redeem in a single transaction."
},
"tokenId": {
"$ref": "#/properties/offerId",
"description": "Token ID of the gate token used to qualify for the conditional commit (relevant for ERC-721/1155 and SpecificToken / TokenRange gating)."
},
"configId": {
"type": "string",
"description": "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."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offerId",
"configId",
"signerAddress"
],
"properties": {
"buyer": {
"type": "string",
"description": "Optional buyer address if different from signerAddress. When set, executionMode must be 'direct'."
},
"offerId": {
"type": "string",
"description": "ID of the active offer to commit to. Creates an exchange and mints a voucher NFT."
},
"configId": {
"type": "string",
"description": "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."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"$ref": "#/properties/buyer",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}| metadataUri* |
| string |
| IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata. |
| royaltyInfo | object |
| metadataHash* | string | Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools. |
| executionMode | string | '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* | any | Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| collectionIndex | any | Index of the seller's NFT collection for vouchers. Omit to use default (index 0). |
| disputeResolverId | string | ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers. |
| quantityAvailable* | number | How many times this offer can be committed to. Must be 1 when creator='BUYER'. |
| validFromDateInMS* | number | Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate. |
| validUntilDateInMS* | number | Unix timestamp in milliseconds when the offer can no longer be committed to. |
| drMutualizerAddress | any | Optional dispute resolver mutualizer contract address that pools resolution funds. |
| exchangeTokenAddress | string | ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values. |
| buyerCancellationPenalty* | any | Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string. |
| voucherValidDurationInMS* | number | Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead. |
| disputePeriodDurationInMS* | number | Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days. |
| resolutionPeriodDurationInMS* | number | Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days. |
| voucherRedeemableFromDateInMS* | number | Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS. |
| voucherRedeemableUntilDateInMS* | number | Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"properties": {
"price": {
"type": "string",
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH."
},
"agentId": {
"$ref": "#/properties/price",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"creator": {
"enum": [
"SELLER",
"BUYER"
],
"type": "string",
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1."
},
"configId": {
"type": "string",
"description": "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": {
"$ref": "#/properties/agentId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"priceType": {
"type": "number",
"description": "0 = static price, 1 = discovery price (auction)."
},
"metadataUri": {
"type": "string",
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/exchangeTokenAddress"
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string",
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'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": {
"$ref": "#/properties/price",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"signerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"collectionIndex": {
"$ref": "#/properties/agentId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"disputeResolverId": {
"type": "string",
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers."
},
"quantityAvailable": {
"type": "number",
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0
},
"validFromDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate."
},
"validUntilDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to."
},
"drMutualizerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"type": "string",
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/price",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"voucherValidDurationInMS": {
"type": "number",
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead."
},
"disputePeriodDurationInMS": {
"type": "number",
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days."
},
"resolutionPeriodDurationInMS": {
"type": "number",
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days."
},
"voucherRedeemableFromDateInMS": {
"type": "number",
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS."
},
"voucherRedeemableUntilDateInMS": {
"type": "number",
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead."
}
},
"additionalProperties": false
}| sellerId* |
| any |
| Numeric ID of the seller entity. Obtain via get_sellers_by_address. |
| committer* | any | Ethereum address of the buyer committing in the same transaction. |
| condition | object |
| priceType | number | 0 = static price, 1 = discovery price (auction). |
| signature* | string | 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* | string | IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata. |
| royaltyInfo | object |
| metadataHash* | string | Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools. |
| offerCreator* | string | Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address. |
| executionMode | string | '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* | any | Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| collectionIndex | string | Index of the seller's NFT collection for vouchers. Omit to use default (index 0). |
| disputeResolverId | string | ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers. |
| quantityAvailable* | number | How many times this offer can be committed to. Must be 1 when creator='BUYER'. |
| useDepositedFunds | boolean | If true, use funds already deposited in the protocol treasury instead of transferring from the wallet. |
| validFromDateInMS* | number | Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate. |
| conditionalTokenId | any | Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type). |
| validUntilDateInMS* | number | Unix timestamp in milliseconds when the offer can no longer be committed to. |
| drMutualizerAddress | any | Optional dispute resolver mutualizer contract address that pools resolution funds. |
| exchangeTokenAddress | any | ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values. |
| buyerCancellationPenalty* | any | Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string. |
| voucherValidDurationInMS* | number | Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead. |
| disputePeriodDurationInMS* | number | Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days. |
| resolutionPeriodDurationInMS* | number | Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days. |
| voucherRedeemableFromDateInMS* | number | Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS. |
| voucherRedeemableUntilDateInMS* | number | Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"signature",
"offerCreator",
"committer",
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"properties": {
"price": {
"$ref": "#/properties/collectionIndex",
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH."
},
"agentId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"creator": {
"enum": [
"SELLER",
"BUYER"
],
"type": "string",
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1."
},
"configId": {
"type": "string",
"description": "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": {
"$ref": "#/properties/collectionIndex",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"sellerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"committer": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address of the buyer committing in the same transaction."
},
"condition": {
"type": "object",
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"properties": {
"method": {
"type": "number",
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID)."
},
"threshold": {
"$ref": "#/properties/collectionIndex",
"description": "Minimum token balance required. Pass as string."
},
"tokenType": {
"type": "number",
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155."
},
"gatingType": {
"type": "number",
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once)."
},
"maxCommits": {
"$ref": "#/properties/collectionIndex",
"description": "Max commits per qualifying address or token ID. Pass as string."
},
"maxTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Max token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"minTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"tokenAddress": {
"$ref": "#/properties/offerCreator",
"description": "Address of the gate token contract buyers must hold."
}
},
"additionalProperties": false
},
"priceType": {
"type": "number",
"description": "0 = static price, 1 = discovery price (auction)."
},
"signature": {
"type": "string",
"description": "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": {
"type": "string",
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/offerCreator",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string",
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools."
},
"offerCreator": {
"type": "string",
"description": "Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'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": {
"$ref": "#/properties/collectionIndex",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"signerAddress": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"collectionIndex": {
"type": "string",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"disputeResolverId": {
"type": "string",
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers."
},
"quantityAvailable": {
"type": "number",
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0
},
"useDepositedFunds": {
"type": "boolean",
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet."
},
"validFromDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate."
},
"conditionalTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type)."
},
"validUntilDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to."
},
"drMutualizerAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/collectionIndex",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"voucherValidDurationInMS": {
"type": "number",
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead."
},
"disputePeriodDurationInMS": {
"type": "number",
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days."
},
"resolutionPeriodDurationInMS": {
"type": "number",
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days."
},
"voucherRedeemableFromDateInMS": {
"type": "number",
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS."
},
"voucherRedeemableUntilDateInMS": {
"type": "number",
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead."
}
},
"additionalProperties": false
}| sellerId* |
| any |
| Numeric ID of the seller entity. Obtain via get_sellers_by_address. |
| committer* | any | Ethereum address of the buyer committing in the same transaction. |
| condition | object |
| priceType | number | 0 = static price, 1 = discovery price (auction). |
| signature* | string | 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* | string | IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata. |
| royaltyInfo | object |
| metadataHash* | string | Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools. |
| offerCreator* | string | Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address. |
| executionMode | string | '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* | any | Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| collectionIndex | string | Index of the seller's NFT collection for vouchers. Omit to use default (index 0). |
| disputeResolverId | string | ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers. |
| quantityAvailable* | number | How many times this offer can be committed to. Must be 1 when creator='BUYER'. |
| useDepositedFunds | boolean | If true, use funds already deposited in the protocol treasury instead of transferring from the wallet. |
| validFromDateInMS* | number | Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate. |
| conditionalTokenId | any | Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type). |
| validUntilDateInMS* | number | Unix timestamp in milliseconds when the offer can no longer be committed to. |
| drMutualizerAddress | any | Optional dispute resolver mutualizer contract address that pools resolution funds. |
| exchangeTokenAddress | any | ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values. |
| buyerCancellationPenalty* | any | Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string. |
| voucherValidDurationInMS* | number | Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead. |
| disputePeriodDurationInMS* | number | Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days. |
| resolutionPeriodDurationInMS* | number | Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days. |
| voucherRedeemableFromDateInMS* | number | Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS. |
| voucherRedeemableUntilDateInMS* | number | Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"signature",
"offerCreator",
"committer",
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"properties": {
"price": {
"$ref": "#/properties/collectionIndex",
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH."
},
"agentId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"creator": {
"enum": [
"SELLER",
"BUYER"
],
"type": "string",
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1."
},
"configId": {
"type": "string",
"description": "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": {
"$ref": "#/properties/collectionIndex",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"sellerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"committer": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address of the buyer committing in the same transaction."
},
"condition": {
"type": "object",
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"properties": {
"method": {
"type": "number",
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID)."
},
"threshold": {
"$ref": "#/properties/collectionIndex",
"description": "Minimum token balance required. Pass as string."
},
"tokenType": {
"type": "number",
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155."
},
"gatingType": {
"type": "number",
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once)."
},
"maxCommits": {
"$ref": "#/properties/collectionIndex",
"description": "Max commits per qualifying address or token ID. Pass as string."
},
"maxTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Max token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"minTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"tokenAddress": {
"$ref": "#/properties/offerCreator",
"description": "Address of the gate token contract buyers must hold."
}
},
"additionalProperties": false
},
"priceType": {
"type": "number",
"description": "0 = static price, 1 = discovery price (auction)."
},
"signature": {
"type": "string",
"description": "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": {
"type": "string",
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/offerCreator",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string",
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools."
},
"offerCreator": {
"type": "string",
"description": "Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'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": {
"$ref": "#/properties/collectionIndex",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"signerAddress": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"collectionIndex": {
"type": "string",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"disputeResolverId": {
"type": "string",
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers."
},
"quantityAvailable": {
"type": "number",
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0
},
"useDepositedFunds": {
"type": "boolean",
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet."
},
"validFromDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate."
},
"conditionalTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type)."
},
"validUntilDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to."
},
"drMutualizerAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/collectionIndex",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"voucherValidDurationInMS": {
"type": "number",
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead."
},
"disputePeriodDurationInMS": {
"type": "number",
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days."
},
"resolutionPeriodDurationInMS": {
"type": "number",
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days."
},
"voucherRedeemableFromDateInMS": {
"type": "number",
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS."
},
"voucherRedeemableUntilDateInMS": {
"type": "number",
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead."
}
},
"additionalProperties": false
}| metadataUri* | string | IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata. |
| royaltyInfo | object |
| metadataHash* | string | Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools. |
| executionMode | string | '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* | any | Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| collectionIndex | any | Index of the seller's NFT collection for vouchers. Omit to use default (index 0). |
| disputeResolverId | string | ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers. |
| quantityAvailable* | number | How many times this offer can be committed to. Must be 1 when creator='BUYER'. |
| validFromDateInMS* | number | Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate. |
| validUntilDateInMS* | number | Unix timestamp in milliseconds when the offer can no longer be committed to. |
| drMutualizerAddress | any | Optional dispute resolver mutualizer contract address that pools resolution funds. |
| exchangeTokenAddress | any | ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values. |
| buyerCancellationPenalty* | any | Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string. |
| voucherValidDurationInMS* | number | Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead. |
| disputePeriodDurationInMS* | number | Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days. |
| resolutionPeriodDurationInMS* | number | Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days. |
| voucherRedeemableFromDateInMS* | number | Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS. |
| voucherRedeemableUntilDateInMS* | number | Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"condition",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"properties": {
"price": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH."
},
"agentId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"creator": {
"enum": [
"SELLER",
"BUYER"
],
"type": "string",
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1."
},
"configId": {
"type": "string",
"description": "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": {
"$ref": "#/properties/agentId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"condition": {
"type": "object",
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"properties": {
"method": {
"type": "number",
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID)."
},
"threshold": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Minimum token balance required. Pass as string."
},
"tokenType": {
"type": "number",
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155."
},
"gatingType": {
"type": "number",
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once)."
},
"maxCommits": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Max commits per qualifying address or token ID. Pass as string."
},
"maxTokenId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Max token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"minTokenId": {
"type": "string",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"tokenAddress": {
"type": "string",
"description": "Address of the gate token contract buyers must hold."
}
},
"additionalProperties": false
},
"priceType": {
"type": "number",
"description": "0 = static price, 1 = discovery price (auction)."
},
"metadataUri": {
"type": "string",
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/exchangeTokenAddress"
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string",
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'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": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"signerAddress": {
"$ref": "#/properties/condition/properties/tokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"collectionIndex": {
"$ref": "#/properties/agentId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"disputeResolverId": {
"type": "string",
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers."
},
"quantityAvailable": {
"type": "number",
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0
},
"validFromDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate."
},
"validUntilDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to."
},
"drMutualizerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"$ref": "#/properties/condition/properties/tokenAddress",
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"voucherValidDurationInMS": {
"type": "number",
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead."
},
"disputePeriodDurationInMS": {
"type": "number",
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days."
},
"resolutionPeriodDurationInMS": {
"type": "number",
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days."
},
"voucherRedeemableFromDateInMS": {
"type": "number",
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS."
},
"voucherRedeemableUntilDateInMS": {
"type": "number",
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead."
}
},
"additionalProperties": false
}| description | string |
| socialLinks | array |
| contactLinks | array |
| authTokenType* | number | Auth token type: 0=None, 1=Lens Protocol profile NFT. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| salesChannels | array |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| legalTradingName | string |
| contactPreference* | string |
| royaltyPercentage* | string | Default resale royalty in basis points (0–10000). Applied to all offers unless overridden. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"type",
"kind",
"contactPreference",
"royaltyPercentage",
"authTokenId",
"authTokenType",
"configId",
"signerAddress"
],
"properties": {
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"type"
],
"properties": {
"fit": {
"type": "string"
},
"tag": {
"type": "string"
},
"url": {
"type": "string"
},
"type": {
"type": "string"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"position": {
"type": "string"
}
},
"additionalProperties": true
}
},
"website": {
"type": "string"
},
"configId": {
"type": "string",
"description": "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."
},
"authTokenId": {
"$ref": "#/properties/royaltyPercentage",
"description": "NFT token ID used as auth token (e.g. Lens profile ID). Pass '0' if not using auth tokens."
},
"contractUri": {
"type": "string",
"default": "",
"description": "Optional URI for OpenSea-style storefront metadata (defaults to empty string, meaning none). When set, it is fetched to copy it to The Graph's IPFS node, so it must be an ipfs:// URI, a CID, or an http(s) URL returning JSON."
},
"description": {
"type": "string"
},
"socialLinks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"contactLinks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"authTokenType": {
"type": "number",
"description": "Auth token type: 0=None, 1=Lens Protocol profile NFT."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"salesChannels": {
"type": "array",
"items": {
"type": "object",
"required": [
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"link": {
"type": "string"
},
"name": {
"type": "string"
},
"deployments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "string"
},
"status": {
"type": "string"
},
"product": {
"type": "object",
"properties": {
"uuid": {
"type": "string"
},
"version": {
"type": "number"
}
},
"additionalProperties": false
},
"lastUpdated": {
"type": "string"
}
},
"additionalProperties": false
}
},
"settingsUrl": {
"type": "string"
},
"settingsEditor": {
"type": "string"
}
},
"additionalProperties": true
}
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"legalTradingName": {
"type": "string"
},
"contactPreference": {
"type": "string"
},
"royaltyPercentage": {
"type": "string",
"description": "Default resale royalty in basis points (0–10000). Applied to all offers unless overridden."
}
},
"additionalProperties": false
}| any |
| Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"entityId",
"tokenAddress",
"amount",
"configId",
"signerAddress"
],
"properties": {
"amount": {
"$ref": "#/properties/entityId",
"description": "Amount in wei. For ERC-20, approve_exchange_token must be called first, unless relaying in metaTx mode with transferAuthorizations passed to send_meta_transaction. Pass as string."
},
"configId": {
"type": "string",
"description": "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."
},
"entityId": {
"type": "string",
"description": "Numeric ID of the entity to credit. Must match signerAddress's seller account."
},
"tokenAddress": {
"type": "string",
"description": "ERC-20 token to deposit. Use address(0) for native ETH."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"$ref": "#/properties/tokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}| includeExchanges |
| boolean |
| offersOrderDirection | string |
| exchangesOrderDirection | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"offersSkip": {
"type": "number"
},
"offersFirst": {
"type": "number"
},
"offersFilter": {
"type": "object",
"additionalProperties": {}
},
"exchangesSkip": {
"type": "number"
},
"offersOrderBy": {
"enum": [
"agentFee",
"agentId",
"buyer",
"buyerCancelPenalty",
"buyerId",
"buyer__active",
"buyer__id",
"buyer__wallet",
"collection",
"collectionIndex",
"collection__collectionIndex",
"collection__externalId",
"collection__externalIdHash",
"collection__id",
"collection__sellerId",
"condition",
"condition__gatingType",
"condition__id",
"condition__maxCommits",
"condition__maxTokenId",
"condition__method",
"condition__minTokenId",
"condition__threshold",
"condition__tokenAddress",
"condition__tokenType",
"createdAt",
"creator",
"disputePeriodDuration",
"disputeResolutionTerms",
"disputeResolutionTerms__buyerEscalationDeposit",
"disputeResolutionTerms__disputeResolverId",
"disputeResolutionTerms__escalationResponsePeriod",
"disputeResolutionTerms__feeAmount",
"disputeResolutionTerms__id",
"disputeResolutionTerms__mutualizerAddress",
"disputeResolver",
"disputeResolverId",
"disputeResolver__active",
"disputeResolver__admin",
"disputeResolver__assistant",
"disputeResolver__clerk",
"disputeResolver__escalationResponsePeriod",
"disputeResolver__id",
"disputeResolver__metadataUri",
"disputeResolver__treasury",
"exchangeToken",
"exchangeToken__address",
"exchangeToken__decimals",
"exchangeToken__id",
"exchangeToken__name",
"exchangeToken__symbol",
"exchanges",
"id",
"metadata",
"metadataHash",
"metadataUri",
"metadata__animationUrl",
"metadata__condition",
"metadata__createdAt",
"metadata__description",
"metadata__externalUrl",
"metadata__id",
"metadata__image",
"metadata__licenseUrl",
"metadata__name",
"metadata__numberOfCommits",
"metadata__numberOfRedemptions",
"metadata__quantityAvailable",
"metadata__schemaUrl",
"metadata__type",
"metadata__validFromDate",
"metadata__validUntilDate",
"metadata__voided",
"numberOfCommits",
"numberOfRedemptions",
"price",
"priceType",
"protocolFee",
"quantityAvailable",
"quantityInitial",
"range",
"range__end",
"range__id",
"range__minted",
"range__owner",
"range__start",
"resolutionPeriodDuration",
"royaltyInfos",
"seller",
"sellerDeposit",
"sellerId",
"seller__active",
"seller__admin",
"seller__assistant",
"seller__authTokenId",
"seller__authTokenType",
"seller__clerk",
"seller__id",
"seller__metadataUri",
"seller__sellerId",
"seller__treasury",
"seller__voucherCloneAddress",
"validFromDate",
"validUntilDate",
"voided",
"voidedAt",
"voucherRedeemableFromDate",
"voucherRedeemableUntilDate",
"voucherValidDuration"
],
"type": "string"
},
"exchangesFirst": {
"type": "number"
},
"exchangesFilter": {
"type": "object",
"additionalProperties": {}
},
"exchangesOrderBy": {
"enum": [
"buyer",
"buyer__active",
"buyer__id",
"buyer__wallet",
"cancelledDate",
"committedDate",
"completedDate",
"dispute",
"disputeResolver",
"disputeResolver__active",
"disputeResolver__admin",
"disputeResolver__assistant",
"disputeResolver__clerk",
"disputeResolver__escalationResponsePeriod",
"disputeResolver__id",
"disputeResolver__metadataUri",
"disputeResolver__treasury",
"dispute__buyerPercent",
"dispute__decidedDate",
"dispute__disputedDate",
"dispute__escalatedDate",
"dispute__exchangeId",
"dispute__finalizedDate",
"dispute__id",
"dispute__refusedDate",
"dispute__resolvedDate",
"dispute__retractedDate",
"dispute__state",
"dispute__timeout",
"disputed",
"disputedDate",
"expired",
"finalizedDate",
"id",
"mutualizerAddress",
"offer",
"offer__agentFee",
"offer__agentId",
"offer__buyerCancelPenalty",
"offer__buyerId",
"offer__collectionIndex",
"offer__createdAt",
"offer__creator",
"offer__disputePeriodDuration",
"offer__disputeResolverId",
"offer__id",
"offer__metadataHash",
"offer__metadataUri",
"offer__numberOfCommits",
"offer__numberOfRedemptions",
"offer__price",
"offer__priceType",
"offer__protocolFee",
"offer__quantityAvailable",
"offer__quantityInitial",
"offer__resolutionPeriodDuration",
"offer__sellerDeposit",
"offer__sellerId",
"offer__validFromDate",
"offer__validUntilDate",
"offer__voided",
"offer__voidedAt",
"offer__voucherRedeemableFromDate",
"offer__voucherRedeemableUntilDate",
"offer__voucherValidDuration",
"protocolFeeCollected",
"protocolFeeCollected__amount",
"protocolFeeCollected__exchangeId",
"protocolFeeCollected__exchangeToken",
"protocolFeeCollected__executedBy",
"protocolFeeCollected__id",
"redeemedDate",
"revokedDate",
"seller",
"seller__active",
"seller__admin",
"seller__assistant",
"seller__authTokenId",
"seller__authTokenType",
"seller__clerk",
"seller__id",
"seller__metadataUri",
"seller__sellerId",
"seller__treasury",
"seller__voucherCloneAddress",
"state",
"validUntilDate"
],
"type": "string"
},
"includeExchanges": {
"type": "boolean"
},
"offersOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"exchangesOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}| sellersOrderDirection |
| string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"includeLogs": {
"type": "boolean"
},
"sellersSkip": {
"type": "number"
},
"includeFunds": {
"type": "boolean"
},
"sellersFirst": {
"type": "number"
},
"includeOffers": {
"type": "boolean"
},
"sellersFilter": {
"type": "object",
"additionalProperties": {}
},
"sellersOrderBy": {
"enum": [
"active",
"admin",
"assistant",
"authTokenId",
"authTokenType",
"clerk",
"collections",
"exchanges",
"funds",
"id",
"logs",
"metadata",
"metadataUri",
"metadata__contactPreference",
"metadata__createdAt",
"metadata__description",
"metadata__id",
"metadata__kind",
"metadata__legalTradingName",
"metadata__name",
"metadata__type",
"metadata__website",
"offers",
"pendingSeller",
"pendingSeller__admin",
"pendingSeller__assistant",
"pendingSeller__authTokenId",
"pendingSeller__authTokenType",
"pendingSeller__clerk",
"pendingSeller__id",
"pendingSeller__metadataUri",
"royaltyRecipients",
"sellerId",
"treasury",
"voucherCloneAddress"
],
"type": "string"
},
"includeExchanges": {
"type": "boolean"
},
"sellersOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}| includeExchanges | boolean |
| sellersOrderDirection | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address",
"configId"
],
"properties": {
"address": {
"type": "string"
},
"configId": {
"type": "string",
"description": "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."
},
"includeLogs": {
"type": "boolean"
},
"sellersSkip": {
"type": "number"
},
"includeFunds": {
"type": "boolean"
},
"sellersFirst": {
"type": "number"
},
"includeOffers": {
"type": "boolean"
},
"sellersFilter": {
"type": "object",
"additionalProperties": {}
},
"sellersOrderBy": {
"enum": [
"active",
"admin",
"assistant",
"authTokenId",
"authTokenType",
"clerk",
"collections",
"exchanges",
"funds",
"id",
"logs",
"metadata",
"metadataUri",
"metadata__contactPreference",
"metadata__createdAt",
"metadata__description",
"metadata__id",
"metadata__kind",
"metadata__legalTradingName",
"metadata__name",
"metadata__type",
"metadata__website",
"offers",
"pendingSeller",
"pendingSeller__admin",
"pendingSeller__assistant",
"pendingSeller__authTokenId",
"pendingSeller__authTokenType",
"pendingSeller__clerk",
"pendingSeller__id",
"pendingSeller__metadataUri",
"royaltyRecipients",
"sellerId",
"treasury",
"voucherCloneAddress"
],
"type": "string"
},
"includeExchanges": {
"type": "boolean"
},
"sellersOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| buyerPercentBasisPoints* | any | Agreed buyer share in basis points (0–10000). Both parties must sign the same value. Obtain via create_dispute_resolution_proposal then sign the typed data locally with each party's wallet (EIP-712). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeId",
"buyerPercentBasisPoints",
"sigR",
"sigS",
"sigV",
"configId",
"signerAddress"
],
"properties": {
"sigR": {
"type": "string",
"description": "32-byte R component of the ECDSA resolution signature as 0x-prefixed hex. From the locally-signed EIP-712 signature parameters."
},
"sigS": {
"type": "string",
"description": "32-byte S component as 0x-prefixed hex. From the locally-signed EIP-712 signature parameters."
},
"sigV": {
"$ref": "#/properties/exchangeId",
"description": "Recovery byte V: 27 or 28. From the locally-signed EIP-712 signature parameters."
},
"configId": {
"type": "string",
"description": "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."
},
"exchangeId": {
"type": "string",
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"buyerPercentBasisPoints": {
"$ref": "#/properties/exchangeId",
"description": "Agreed buyer share in basis points (0–10000). Both parties must sign the same value. Obtain via create_dispute_resolution_proposal then sign the typed data locally with each party's wallet (EIP-712)."
}
},
"additionalProperties": false
}| productsOrderDirection |
| string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"keywords",
"configId"
],
"properties": {
"configId": {
"type": "string",
"description": "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."
},
"keywords": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"description": "List of keywords matched against product title, description, brand, category, and tags."
},
"productsSkip": {
"type": "number"
},
"productsFirst": {
"type": "number"
},
"productsFilter": {
"type": "object",
"additionalProperties": {}
},
"productsOrderBy": {
"enum": [
"allVariantsVoided",
"brand",
"brand__id",
"brand__name",
"category",
"category__id",
"category__name",
"description",
"details_category",
"details_offerCategory",
"details_personalisation",
"details_sections",
"details_subCategory",
"details_subCategory2",
"details_tags",
"disputeResolverId",
"id",
"identification_productId",
"identification_productIdType",
"identification_sKU",
"maxValidFromDate",
"maxValidUntilDate",
"minValidFromDate",
"minValidUntilDate",
"notVoidedVariants",
"offerCategory",
"packaging_dimensions_height",
"packaging_dimensions_length",
"packaging_dimensions_unit",
"packaging_dimensions_width",
"packaging_packageQuantity",
"packaging_weight_unit",
"packaging_weight_value",
"personalisation",
"productV1Seller",
"productV1Seller__contactPreference",
"productV1Seller__defaultVersion",
"productV1Seller__description",
"productV1Seller__externalUrl",
"productV1Seller__id",
"productV1Seller__name",
"productV1Seller__sellerId",
"productV1Seller__tokenId",
"productionInformation_brandName",
"productionInformation_manufacturer",
"productionInformation_manufacturerPartNumber",
"productionInformation_materials",
"productionInformation_modelNumber",
"salesChannels",
"sections",
"sellerId",
"subCategory",
"subCategory2",
"subCategory2__id",
"subCategory2__name",
"subCategory__id",
"subCategory__name",
"tags",
"title",
"uuid",
"variants",
"version",
"visuals_images",
"visuals_videos"
],
"type": "string"
},
"includeInvalidOffers": {
"type": "boolean",
"description": "When true, include products whose offers are outside their validity window. Defaults to false (valid offers only)."
},
"productsOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contractAddress",
"request",
"domainSeparator",
"signature",
"configId",
"signerAddress"
],
"properties": {
"request": {
"type": "object",
"required": [
"from",
"to",
"token",
"txGas",
"tokenGasPrice",
"batchId",
"batchNonce",
"deadline",
"data"
],
"properties": {
"to": {
"$ref": "#/properties/contractAddress"
},
"data": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]+$",
"minLength": 1
},
"from": {
"$ref": "#/properties/contractAddress"
},
"token": {
"$ref": "#/properties/contractAddress"
},
"txGas": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "number",
"minimum": 0
}
]
},
"batchId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "number",
"minimum": 0
}
]
},
"deadline": {
"type": "number",
"minimum": 0
},
"batchNonce": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "number",
"minimum": 0
}
]
},
"tokenGasPrice": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
},
"configId": {
"type": "string",
"description": "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."
},
"signature": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]+$"
},
"signerAddress": {
"$ref": "#/properties/contractAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"contractAddress": {
"type": "string",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
},
"domainSeparator": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
}
},
"additionalProperties": false
}| functionSignature* | string |
| transferAuthorizations | array | Optional ERC-20 transfer authorizations that let the protocol pull tokens without a prior approve_exchange_token tx (e.g. commit_to_offer or deposit_funds in metaTx mode). Build each entry with the matching sign_receive_with_* tool: sign its `typedData` locally and add the resulting `signature` to its `transferAuthorization` object. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"functionName",
"functionSignature",
"nonce",
"sigR",
"sigS",
"sigV",
"configId",
"signerAddress"
],
"properties": {
"sigR": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"sigS": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"sigV": {
"type": [
"string",
"number"
]
},
"nonce": {
"type": [
"string",
"number"
]
},
"configId": {
"type": "string",
"description": "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."
},
"functionName": {
"type": "string",
"minLength": 1
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"functionSignature": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]+$"
},
"transferAuthorizations": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"strategy",
"data",
"signature"
],
"properties": {
"r": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/nonce",
"description": "Optional r component. Derived from `signature` if omitted."
},
"s": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/nonce",
"description": "Optional s component. Derived from `signature` if omitted."
},
"v": {
"anyOf": [
{
"type": "string",
"pattern": "^\\d+$"
},
{
"type": "integer"
}
],
"description": "Optional v component (27/28, or 0/1). Derived from `signature` if omitted. Provide r, s and v together or not at all."
},
"data": {
"type": "object",
"required": [
"validAfter",
"validBefore",
"nonce"
],
"properties": {
"nonce": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"validAfter": {
"anyOf": [
{
"type": "string",
"pattern": "^(\\d+|0x[a-fA-F0-9]+)$"
},
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
]
},
"validBefore": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/validAfter"
}
},
"additionalProperties": false
},
"strategy": {
"type": "string",
"const": "ERC3009"
},
"signature": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]+$",
"description": "Signature of the typed data returned by the matching sign_receive_with_* tool, signed locally with your wallet (EIP-712)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"strategy",
"data",
"signature"
],
"properties": {
"r": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/r"
},
"s": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/s"
},
"v": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/v"
},
"data": {
"type": "object",
"required": [
"deadline"
],
"properties": {
"deadline": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/validAfter"
}
},
"additionalProperties": false
},
"strategy": {
"type": "string",
"const": "EIP2612"
},
"signature": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/signature"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"strategy",
"data",
"signature"
],
"properties": {
"r": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/r"
},
"s": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/s"
},
"v": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/v"
},
"data": {
"type": "object",
"required": [
"nonce",
"deadline"
],
"properties": {
"nonce": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/validAfter"
},
"deadline": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/validAfter"
}
},
"additionalProperties": false
},
"strategy": {
"type": "string",
"const": "Permit2"
},
"signature": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/signature"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"strategy",
"data",
"signature"
],
"properties": {
"r": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/r"
},
"s": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/s"
},
"v": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/v"
},
"data": {
"type": "object",
"required": [
"nonce",
"expiry"
],
"properties": {
"nonce": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/validAfter"
},
"expiry": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/data/properties/validAfter"
}
},
"additionalProperties": false
},
"strategy": {
"type": "string",
"const": "DAIPermit"
},
"signature": {
"$ref": "#/properties/transferAuthorizations/items/anyOf/0/properties/signature"
}
},
"additionalProperties": false
}
]
},
"description": "Optional ERC-20 transfer authorizations that let the protocol pull tokens without a prior approve_exchange_token tx (e.g. commit_to_offer or deposit_funds in metaTx mode). Build each entry with the matching sign_receive_with_* tool: sign its `typedData` locally and add the resulting `signature` to its `transferAuthorization` object."
}
},
"additionalProperties": false
}| string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contractAddress",
"functionSignature",
"sigR",
"sigS",
"sigV",
"configId",
"signerAddress"
],
"properties": {
"sigR": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"sigS": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{64}$"
},
"sigV": {
"type": [
"string",
"number"
]
},
"configId": {
"type": "string",
"description": "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."
},
"signerAddress": {
"$ref": "#/properties/contractAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"contractAddress": {
"type": "string",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
},
"functionSignature": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]+$"
}
},
"additionalProperties": false
}| any |
| Numeric ID of the seller entity. Obtain via get_sellers_by_address. |
| committer* | any | Ethereum address of the buyer committing in the same transaction. |
| condition | object |
| priceType | number | 0 = static price, 1 = discovery price (auction). |
| metadataUri* | string | IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata. |
| royaltyInfo | object |
| metadataHash* | string | Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools. |
| offerCreator* | string | Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address. |
| executionMode | string | '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* | any | Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| collectionIndex | string | Index of the seller's NFT collection for vouchers. Omit to use default (index 0). |
| disputeResolverId | string | ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers. |
| quantityAvailable* | number | How many times this offer can be committed to. Must be 1 when creator='BUYER'. |
| useDepositedFunds | boolean | If true, use funds already deposited in the protocol treasury instead of transferring from the wallet. |
| validFromDateInMS* | number | Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate. |
| conditionalTokenId | any | Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type). |
| validUntilDateInMS* | number | Unix timestamp in milliseconds when the offer can no longer be committed to. |
| drMutualizerAddress | any | Optional dispute resolver mutualizer contract address that pools resolution funds. |
| exchangeTokenAddress | any | ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values. |
| buyerCancellationPenalty* | any | Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string. |
| voucherValidDurationInMS* | number | Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead. |
| disputePeriodDurationInMS* | number | Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days. |
| resolutionPeriodDurationInMS* | number | Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days. |
| voucherRedeemableFromDateInMS* | number | Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS. |
| voucherRedeemableUntilDateInMS* | number | Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offerCreator",
"committer",
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"properties": {
"price": {
"$ref": "#/properties/collectionIndex",
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH."
},
"agentId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"creator": {
"enum": [
"SELLER",
"BUYER"
],
"type": "string",
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1."
},
"configId": {
"type": "string",
"description": "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": {
"$ref": "#/properties/collectionIndex",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"sellerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"committer": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address of the buyer committing in the same transaction."
},
"condition": {
"type": "object",
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"properties": {
"method": {
"type": "number",
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID)."
},
"threshold": {
"$ref": "#/properties/collectionIndex",
"description": "Minimum token balance required. Pass as string."
},
"tokenType": {
"type": "number",
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155."
},
"gatingType": {
"type": "number",
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once)."
},
"maxCommits": {
"$ref": "#/properties/collectionIndex",
"description": "Max commits per qualifying address or token ID. Pass as string."
},
"maxTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Max token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"minTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"tokenAddress": {
"$ref": "#/properties/offerCreator",
"description": "Address of the gate token contract buyers must hold."
}
},
"additionalProperties": false
},
"priceType": {
"type": "number",
"description": "0 = static price, 1 = discovery price (auction)."
},
"metadataUri": {
"type": "string",
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/offerCreator",
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted."
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string",
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools."
},
"offerCreator": {
"type": "string",
"description": "Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'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": {
"$ref": "#/properties/collectionIndex",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"signerAddress": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"collectionIndex": {
"type": "string",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"disputeResolverId": {
"type": "string",
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers."
},
"quantityAvailable": {
"type": "number",
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0
},
"useDepositedFunds": {
"type": "boolean",
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet."
},
"validFromDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate."
},
"conditionalTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type)."
},
"validUntilDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to."
},
"drMutualizerAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"$ref": "#/properties/royaltyInfo/properties/recipients/items",
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/collectionIndex",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"voucherValidDurationInMS": {
"type": "number",
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead."
},
"disputePeriodDurationInMS": {
"type": "number",
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days."
},
"resolutionPeriodDurationInMS": {
"type": "number",
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days."
},
"voucherRedeemableFromDateInMS": {
"type": "number",
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS."
},
"voucherRedeemableUntilDateInMS": {
"type": "number",
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead."
}
},
"additionalProperties": false
}| string |
| EIP-712 domain name of the DAI-style token (e.g. 'Dai Stablecoin'). |
| exchangeTokenAddress* | string | ERC-20 token contract address that supports the permit/authorization standard. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeTokenAddress",
"value",
"tokenDomainName",
"expiry",
"configId",
"signerAddress"
],
"properties": {
"value": {
"type": "string",
"description": "Amount in wei the spender is authorized to pull from the signer."
},
"expiry": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds after which the DAI-style permit is no longer valid."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"configId": {
"type": "string",
"description": "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."
},
"signerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"tokenDomainName": {
"type": "string",
"minLength": 1,
"description": "EIP-712 domain name of the DAI-style token (e.g. 'Dai Stablecoin')."
},
"exchangeTokenAddress": {
"type": "string",
"description": "ERC-20 token contract address that supports the permit/authorization standard."
}
},
"additionalProperties": false
}| string |
| EIP-712 domain name of the token contract (e.g. 'USD Coin'). Required for ERC-3009 / EIP-2612 domain separator. |
| tokenDomainVersion* | string | EIP-712 domain version of the token contract (e.g. '2'). Required for ERC-3009 / EIP-2612 domain separator. |
| exchangeTokenAddress* | string | ERC-20 token contract address that supports the permit/authorization standard. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeTokenAddress",
"value",
"tokenDomainName",
"tokenDomainVersion",
"deadline",
"configId",
"signerAddress"
],
"properties": {
"value": {
"type": "string",
"description": "Amount in wei the spender is authorized to pull from the signer."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"configId": {
"type": "string",
"description": "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."
},
"deadline": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds after which the permit is no longer valid."
},
"signerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"tokenDomainName": {
"type": "string",
"minLength": 1,
"description": "EIP-712 domain name of the token contract (e.g. 'USD Coin'). Required for ERC-3009 / EIP-2612 domain separator."
},
"tokenDomainVersion": {
"type": "string",
"minLength": 1,
"description": "EIP-712 domain version of the token contract (e.g. '2'). Required for ERC-3009 / EIP-2612 domain separator."
},
"exchangeTokenAddress": {
"type": "string",
"description": "ERC-20 token contract address that supports the permit/authorization standard."
}
},
"additionalProperties": false
}| any |
| Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| tokenDomainName* | string | EIP-712 domain name of the token contract (e.g. 'USD Coin'). Required for ERC-3009 / EIP-2612 domain separator. |
| tokenDomainVersion* | string | EIP-712 domain version of the token contract (e.g. '2'). Required for ERC-3009 / EIP-2612 domain separator. |
| exchangeTokenAddress* | string | ERC-20 token contract address that supports the permit/authorization standard. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeTokenAddress",
"value",
"tokenDomainName",
"tokenDomainVersion",
"validAfter",
"validBefore",
"configId",
"signerAddress"
],
"properties": {
"value": {
"type": "string",
"description": "Amount in wei the spender is authorized to pull from the signer."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"configId": {
"type": "string",
"description": "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."
},
"validAfter": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds before which the authorization is not valid."
},
"validBefore": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds after which the authorization is no longer valid."
},
"signerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"tokenDomainName": {
"type": "string",
"minLength": 1,
"description": "EIP-712 domain name of the token contract (e.g. 'USD Coin'). Required for ERC-3009 / EIP-2612 domain separator."
},
"tokenDomainVersion": {
"type": "string",
"minLength": 1,
"description": "EIP-712 domain version of the token contract (e.g. '2'). Required for ERC-3009 / EIP-2612 domain separator."
},
"exchangeTokenAddress": {
"type": "string",
"description": "ERC-20 token contract address that supports the permit/authorization standard."
}
},
"additionalProperties": false
}| any |
| Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| permit2Address | any | Optional Uniswap Permit2 contract address. Defaults to contracts.permit2 from SDK config. |
| exchangeTokenAddress* | string | ERC-20 token contract address that supports the permit/authorization standard. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"exchangeTokenAddress",
"value",
"deadline",
"configId",
"signerAddress"
],
"properties": {
"value": {
"type": "string",
"description": "Amount in wei the spender is authorized to pull from the signer."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"configId": {
"type": "string",
"description": "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."
},
"deadline": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds after which the Permit2 authorization is no longer valid."
},
"permit2Nonce": {
"$ref": "#/properties/value",
"description": "Optional Permit2 nonce as a uint256 string. If omitted, a random uint256 is generated."
},
"signerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"permit2Address": {
"$ref": "#/properties/spender",
"description": "Optional Uniswap Permit2 contract address. Defaults to contracts.permit2 from SDK config."
},
"exchangeTokenAddress": {
"type": "string",
"description": "ERC-20 token contract address that supports the permit/authorization standard."
}
},
"additionalProperties": false
}| string |
| description* | string |
| externalUrl* | string |
| animationUrl | string |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"schemaUrl",
"type",
"name",
"description",
"externalUrl",
"licenseUrl",
"configId",
"signerAddress"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": [
"BASE"
],
"type": "string"
},
"image": {
"type": "string"
},
"configId": {
"type": "string",
"description": "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."
},
"condition": {
"type": "string"
},
"imageData": {
"type": "string"
},
"schemaUrl": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"traitType",
"value"
],
"properties": {
"value": {
"type": "string"
},
"traitType": {
"type": "string"
},
"displayType": {
"type": "string"
}
},
"additionalProperties": true
}
},
"licenseUrl": {
"type": "string"
},
"youtubeUrl": {
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"animationUrl": {
"type": "string"
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}| schemaUrl* | string |
| attributes | array |
| image_data | string |
| youtubeUrl | string |
| description | string |
| externalUrl | string |
| youtube_url | string |
| animationUrl | string |
| external_url | string |
| tokenIdRange | object |
| animation_url | string |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"schemaUrl",
"type",
"name",
"configId",
"signerAddress"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": [
"ITEM_NFT"
],
"type": "string"
},
"image": {
"type": "string"
},
"terms": {
"type": "array",
"items": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
},
"displayKey": {
"type": "string"
}
},
"additionalProperties": true
}
},
"chainId": {
"type": "number"
},
"tokenId": {
"type": "string"
},
"configId": {
"type": "string",
"description": "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."
},
"contract": {
"type": "string"
},
"quantity": {
"type": "number"
},
"imageData": {
"type": "string"
},
"schemaUrl": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "string"
},
"traitType": {
"type": "string"
},
"trait_type": {
"type": "string"
},
"displayType": {
"type": "string"
},
"display_type": {
"type": "string"
}
},
"additionalProperties": true
}
},
"image_data": {
"type": "string"
},
"youtubeUrl": {
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"youtube_url": {
"type": "string"
},
"animationUrl": {
"type": "string"
},
"external_url": {
"type": "string"
},
"tokenIdRange": {
"type": "object",
"properties": {
"max": {
"type": "string"
},
"min": {
"type": "string"
}
},
"additionalProperties": true
},
"animation_url": {
"type": "string"
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}| exchangePolicy* |
| object |
| productOverrides | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"schemaUrl",
"type",
"uuid",
"product",
"shipping",
"exchangePolicy",
"configId",
"signerAddress"
],
"properties": {
"type": {
"enum": [
"ITEM_PRODUCT_V1"
],
"type": "string"
},
"uuid": {
"type": "string"
},
"product": {
"type": "object",
"required": [
"uuid",
"version",
"title",
"description",
"productionInformation_brandName",
"details_offerCategory",
"visuals_images"
],
"properties": {
"uuid": {
"type": "string"
},
"title": {
"type": "string"
},
"version": {
"type": "number"
},
"description": {
"type": "string"
},
"details_tags": {
"type": "array",
"items": {
"type": "string"
}
},
"visuals_images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"visuals_videos": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"details_category": {
"type": "string"
},
"details_sections": {
"type": "array",
"items": {
"type": "string"
}
},
"identification_sKU": {
"type": "string"
},
"details_subCategory": {
"type": "string"
},
"details_subCategory2": {
"type": "string"
},
"details_offerCategory": {
"type": "string"
},
"details_personalisation": {
"type": "array",
"items": {
"type": "string"
}
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_materials": {
"type": "array",
"items": {
"type": "string"
}
},
"productionInformation_modelNumber": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
}
},
"additionalProperties": true
},
"configId": {
"type": "string",
"description": "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."
},
"shipping": {
"type": "object",
"required": [
"returnPeriod"
],
"properties": {
"returnPeriod": {
"type": "string"
},
"defaultVersion": {
"type": "number"
},
"countryOfOrigin": {
"type": "string"
},
"redemptionPoint": {
"type": "string"
},
"supportedJurisdictions": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"deliveryTime"
],
"properties": {
"label": {
"type": "string"
},
"deliveryTime": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
},
"schemaUrl": {
"type": "string"
},
"variations": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"option"
],
"properties": {
"type": {
"type": "string"
},
"option": {
"type": "string"
}
},
"additionalProperties": true
}
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"exchangePolicy": {
"type": "object",
"required": [
"uuid",
"version",
"template",
"sellerContactMethod",
"disputeResolverContactMethod"
],
"properties": {
"uuid": {
"type": "string"
},
"label": {
"type": "string"
},
"version": {
"type": "number"
},
"template": {
"type": "string"
},
"sellerContactMethod": {
"type": "string"
},
"disputeResolverContactMethod": {
"type": "string"
}
},
"additionalProperties": true
},
"productOverrides": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"visuals_images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"visuals_videos": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"identification_sKU": {
"type": "string"
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_materials": {
"type": "array",
"items": {
"type": "string"
}
},
"productionInformation_modelNumber": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}| attributes |
| array |
| bundleUuid* | string |
| licenseUrl* | string |
| youtubeUrl | string |
| description* | string |
| externalUrl* | string |
| animationUrl | string |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"schemaUrl",
"type",
"name",
"description",
"externalUrl",
"licenseUrl",
"bundleUuid",
"seller",
"items",
"configId",
"signerAddress"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": [
"BUNDLE"
],
"type": "string"
},
"image": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"seller": {
"type": "object",
"required": [
"defaultVersion",
"name",
"contactLinks"
],
"properties": {
"name": {
"type": "string"
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"tokenId": {
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"contactLinks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"defaultVersion": {
"type": "number"
}
},
"additionalProperties": true
},
"configId": {
"type": "string",
"description": "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."
},
"condition": {
"type": "string"
},
"imageData": {
"type": "string"
},
"schemaUrl": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"traitType",
"value"
],
"properties": {
"value": {
"type": "string"
},
"traitType": {
"type": "string"
},
"displayType": {
"type": "string"
}
},
"additionalProperties": true
}
},
"bundleUuid": {
"type": "string"
},
"licenseUrl": {
"type": "string"
},
"youtubeUrl": {
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"animationUrl": {
"type": "string"
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
}
},
"additionalProperties": false
}| imageData |
| string |
| schemaUrl* | string |
| attributes* | array |
| licenseUrl* | string |
| variations | array |
| youtubeUrl | string |
| description* | string |
| externalUrl* | string |
| animationUrl | string |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| exchangePolicy* | object |
| productOverrides | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"schemaUrl",
"type",
"uuid",
"name",
"description",
"externalUrl",
"licenseUrl",
"image",
"attributes",
"product",
"seller",
"shipping",
"exchangePolicy",
"configId",
"signerAddress"
],
"properties": {
"name": {
"type": "string"
},
"type": {
"enum": [
"PRODUCT_V1"
],
"type": "string"
},
"uuid": {
"type": "string"
},
"image": {
"type": "string"
},
"seller": {
"type": "object",
"required": [
"defaultVersion",
"name",
"contactLinks"
],
"properties": {
"name": {
"type": "string"
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"tokenId": {
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"contactLinks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"defaultVersion": {
"type": "number"
}
},
"additionalProperties": true
},
"product": {
"type": "object",
"required": [
"uuid",
"version",
"title",
"description",
"productionInformation_brandName",
"details_offerCategory",
"visuals_images"
],
"properties": {
"uuid": {
"type": "string"
},
"title": {
"type": "string"
},
"version": {
"type": "number"
},
"description": {
"type": "string"
},
"details_tags": {
"type": "array",
"items": {
"type": "string"
}
},
"visuals_images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"visuals_videos": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"details_category": {
"type": "string"
},
"details_sections": {
"type": "array",
"items": {
"type": "string"
}
},
"identification_sKU": {
"type": "string"
},
"details_subCategory": {
"type": "string"
},
"details_subCategory2": {
"type": "string"
},
"details_offerCategory": {
"type": "string"
},
"details_personalisation": {
"type": "array",
"items": {
"type": "string"
}
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_materials": {
"type": "array",
"items": {
"type": "string"
}
},
"productionInformation_modelNumber": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
}
},
"additionalProperties": true
},
"configId": {
"type": "string",
"description": "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."
},
"shipping": {
"type": "object",
"required": [
"returnPeriod"
],
"properties": {
"returnPeriod": {
"type": "string"
},
"defaultVersion": {
"type": "number"
},
"countryOfOrigin": {
"type": "string"
},
"redemptionPoint": {
"type": "string"
},
"supportedJurisdictions": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"deliveryTime"
],
"properties": {
"label": {
"type": "string"
},
"deliveryTime": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
},
"condition": {
"type": "string"
},
"imageData": {
"type": "string"
},
"schemaUrl": {
"type": "string"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"traitType",
"value"
],
"properties": {
"value": {
"type": "string"
},
"traitType": {
"type": "string"
},
"displayType": {
"type": "string"
}
},
"additionalProperties": true
}
},
"licenseUrl": {
"type": "string"
},
"variations": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"option"
],
"properties": {
"type": {
"type": "string"
},
"option": {
"type": "string"
}
},
"additionalProperties": true
}
},
"youtubeUrl": {
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"animationUrl": {
"type": "string"
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"exchangePolicy": {
"type": "object",
"required": [
"uuid",
"version",
"template",
"sellerContactMethod",
"disputeResolverContactMethod"
],
"properties": {
"uuid": {
"type": "string"
},
"label": {
"type": "string"
},
"version": {
"type": "number"
},
"template": {
"type": "string"
},
"sellerContactMethod": {
"type": "string"
},
"disputeResolverContactMethod": {
"type": "string"
}
},
"additionalProperties": true
},
"productOverrides": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"visuals_images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"visuals_videos": {
"type": "array",
"items": {
"type": "object",
"required": [
"url"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"identification_sKU": {
"type": "string"
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_materials": {
"type": "array",
"items": {
"type": "string"
}
},
"productionInformation_modelNumber": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}| description |
| string |
| socialLinks | array |
| contactLinks | array |
| authTokenType* | number | Auth token type: 0=None, 1=Lens Protocol profile NFT. |
| executionMode | string | 'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'. |
| salesChannels | array |
| signerAddress* | string | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| legalTradingName | string |
| contactPreference* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"type",
"kind",
"contactPreference",
"authTokenId",
"authTokenType",
"id",
"configId",
"signerAddress"
],
"properties": {
"id": {
"$ref": "#/properties/authTokenId",
"description": "Numeric ID of the existing seller entity to update. Obtain from get_sellers_by_address."
},
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"images": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"type"
],
"properties": {
"fit": {
"type": "string"
},
"tag": {
"type": "string"
},
"url": {
"type": "string"
},
"type": {
"type": "string"
},
"width": {
"type": "number"
},
"height": {
"type": "number"
},
"position": {
"type": "string"
}
},
"additionalProperties": true
}
},
"website": {
"type": "string"
},
"configId": {
"type": "string",
"description": "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."
},
"authTokenId": {
"type": "string",
"description": "NFT token ID used as auth token (e.g. Lens profile ID). Pass '0' if not using auth tokens."
},
"description": {
"type": "string"
},
"socialLinks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"contactLinks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": true
}
},
"authTokenType": {
"type": "number",
"description": "Auth token type: 0=None, 1=Lens Protocol profile NFT."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'direct' = standard on-chain tx (sign locally with your wallet → send_signed_transaction). 'metaTx' = gasless relay via Biconomy (send_meta_transaction). Defaults to 'direct'."
},
"salesChannels": {
"type": "array",
"items": {
"type": "object",
"required": [
"tag"
],
"properties": {
"tag": {
"type": "string"
},
"link": {
"type": "string"
},
"name": {
"type": "string"
},
"deployments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "string"
},
"status": {
"type": "string"
},
"product": {
"type": "object",
"properties": {
"uuid": {
"type": "string"
},
"version": {
"type": "number"
}
},
"additionalProperties": false
},
"lastUpdated": {
"type": "string"
}
},
"additionalProperties": false
}
},
"settingsUrl": {
"type": "string"
},
"settingsEditor": {
"type": "string"
}
},
"additionalProperties": true
}
},
"signerAddress": {
"type": "string",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"legalTradingName": {
"type": "string"
},
"contactPreference": {
"type": "string"
}
},
"additionalProperties": false
}| any |
| Numeric ID of the seller entity. Obtain via get_sellers_by_address. |
| condition | object |
| priceType | number | 0 = static price, 1 = discovery price (auction). |
| metadataUri* | string | IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata. |
| royaltyInfo | object |
| metadataHash* | string | Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools. |
| executionMode | string | '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* | any | Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string. |
| signerAddress* | any | Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally. |
| collectionIndex | any | Index of the seller's NFT collection for vouchers. Omit to use default (index 0). |
| disputeResolverId | string | ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers. |
| quantityAvailable* | number | How many times this offer can be committed to. Must be 1 when creator='BUYER'. |
| useDepositedFunds | boolean | If true, use funds already deposited in the protocol treasury instead of transferring from the wallet. |
| validFromDateInMS* | number | Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate. |
| validUntilDateInMS* | number | Unix timestamp in milliseconds when the offer can no longer be committed to. |
| drMutualizerAddress | any | Optional dispute resolver mutualizer contract address that pools resolution funds. |
| exchangeTokenAddress | any | ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values. |
| buyerCancellationPenalty* | any | Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string. |
| voucherValidDurationInMS* | number | Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead. |
| disputePeriodDurationInMS* | number | Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days. |
| resolutionPeriodDurationInMS* | number | Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days. |
| voucherRedeemableFromDateInMS* | number | Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS. |
| voucherRedeemableUntilDateInMS* | number | Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"properties": {
"price": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH."
},
"agentId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"creator": {
"enum": [
"SELLER",
"BUYER"
],
"type": "string",
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1."
},
"configId": {
"type": "string",
"description": "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": {
"$ref": "#/properties/agentId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"sellerId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"condition": {
"type": "object",
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"properties": {
"method": {
"type": "number",
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID)."
},
"threshold": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Minimum token balance required. Pass as string."
},
"tokenType": {
"type": "number",
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155."
},
"gatingType": {
"type": "number",
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once)."
},
"maxCommits": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Max commits per qualifying address or token ID. Pass as string."
},
"maxTokenId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Max token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"minTokenId": {
"type": "string",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"tokenAddress": {
"type": "string",
"description": "Address of the gate token contract buyers must hold."
}
},
"additionalProperties": false
},
"priceType": {
"type": "number",
"description": "0 = static price, 1 = discovery price (auction)."
},
"metadataUri": {
"type": "string",
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata."
},
"royaltyInfo": {
"type": "object",
"required": [
"recipients",
"bps"
],
"properties": {
"bps": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 0,
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000."
},
"recipients": {
"type": "array",
"items": {
"$ref": "#/properties/exchangeTokenAddress"
},
"minItems": 0,
"description": "Array of addresses receiving resale royalties."
}
},
"additionalProperties": false
},
"metadataHash": {
"type": "string",
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools."
},
"executionMode": {
"enum": [
"direct",
"metaTx"
],
"type": "string",
"description": "'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": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"signerAddress": {
"$ref": "#/properties/condition/properties/tokenAddress",
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally."
},
"collectionIndex": {
"$ref": "#/properties/agentId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"disputeResolverId": {
"type": "string",
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers."
},
"quantityAvailable": {
"type": "number",
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0
},
"useDepositedFunds": {
"type": "boolean",
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet."
},
"validFromDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate."
},
"validUntilDateInMS": {
"type": "number",
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to."
},
"drMutualizerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"$ref": "#/properties/condition/properties/tokenAddress",
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"voucherValidDurationInMS": {
"type": "number",
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead."
},
"disputePeriodDurationInMS": {
"type": "number",
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days."
},
"resolutionPeriodDurationInMS": {
"type": "number",
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days."
},
"voucherRedeemableFromDateInMS": {
"type": "number",
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS."
},
"voucherRedeemableUntilDateInMS": {
"type": "number",
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead."
}
},
"additionalProperties": false
}