Server definition
- Hash
- sha256:fc074da5a7fc6831d5a0bb4eec824db4958ace4ade7de13396bd7a8a53b67217
- What it is
- What a remote MCP server returned when asked what it offers: 63 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"amount": {
"description": "Allowance in wei. Use max uint256 string for unlimited: '115792089237316195423570985008687907853269984665640564039457584007913129639935'.",
"type": "string"
},
"configId": {
"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.",
"type": "string"
},
"exchangeTokenAddress": {
"description": "ERC-20 token contract address to approve for the Boson Protocol diamond.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "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."
}
},
"required": [
"exchangeTokenAddress",
"amount",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "approve_exchange_token",
"outputSchema": null
},
{
"description": "Cancels a committed voucher. Caller must be the buyer (voucher holder). Buyer forfeits buyerCancellationPenalty; remainder is refunded. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "cancel_voucher",
"outputSchema": null
},
{
"description": "Fulfils a buyer-initiated offer (creator='BUYER') by the seller. Caller must be the seller. Provide matching collateral. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"collectionIndex": {
"$ref": "#/properties/offerId"
},
"configId": {
"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.",
"type": "string"
},
"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."
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"offerId": {
"description": "ID of a buyer-initiated offer (creator='BUYER') to commit to. The seller fulfils the offer.",
"type": "string"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"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.",
"type": "string"
},
"minItems": 0,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"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."
}
},
"required": [
"offerId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "commit_to_buyer_offer",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"buyer": {
"description": "Optional buyer address if different from signerAddress. When set, executionMode must be 'direct'.",
"type": "string"
},
"configId": {
"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.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"offerId": {
"description": "ID of a conditional (token-gated) offer to commit to. Caller must hold the gating token specified by the offer's condition.",
"type": "string"
},
"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."
},
"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)."
}
},
"required": [
"offerId",
"tokenId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "commit_to_conditional_offer",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"offerId": {
"description": "ID of a conditional (token-gated) offer to commit to and immediately redeem in a single transaction.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"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)."
}
},
"required": [
"offerId",
"tokenId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "commit_to_conditional_offer_and_redeem_voucher",
"outputSchema": null
},
{
"description": "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. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"buyer": {
"description": "Optional buyer address if different from signerAddress. When set, executionMode must be 'direct'.",
"type": "string"
},
"configId": {
"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.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"offerId": {
"description": "ID of the active offer to commit to. Creates an exchange and mints a voucher NFT.",
"type": "string"
},
"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."
}
},
"required": [
"offerId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "commit_to_offer",
"outputSchema": null
},
{
"description": "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). Skips voucher transferability and starts the dispute period clock immediately. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"offerId": {
"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.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"offerId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "commit_to_offer_and_redeem_voucher",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "complete_exchange",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"configId",
"signerAddress"
],
"type": "object"
},
"name": "create_buyer",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"buyerPercentBasisPoints": {
"$ref": "#/properties/exchangeId",
"description": "Proposed percentage of disputed funds for the buyer, 0–10000 (basis points). The counterparty must sign this same value."
},
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"buyerPercentBasisPoints",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "create_dispute_resolution_proposal",
"outputSchema": null
},
{
"description": "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'.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/price",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/price",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"collectionIndex": {
"$ref": "#/properties/agentId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"configId": {
"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.",
"type": "string"
},
"creator": {
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.",
"enum": [
"SELLER",
"BUYER"
],
"type": "string"
},
"disputePeriodDurationInMS": {
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.",
"type": "number"
},
"disputeResolverId": {
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.",
"type": "string"
},
"drMutualizerAddress": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional dispute resolver mutualizer contract address that pools resolution funds."
},
"exchangeTokenAddress": {
"description": "ERC-20 token accepted for payment. Omit or use address(0) for native ETH. Call get_supported_tokens for valid values.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"feeLimit": {
"$ref": "#/properties/agentId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"metadataHash": {
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.",
"type": "string"
},
"metadataUri": {
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.",
"type": "string"
},
"price": {
"description": "Offer price in the exchange token's smallest unit (wei). Pass as string to avoid precision loss, e.g. '1000000000000000000' = 1 ETH.",
"type": "string"
},
"priceType": {
"description": "0 = static price, 1 = discovery price (auction).",
"type": "number"
},
"quantityAvailable": {
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0,
"type": "number"
},
"resolutionPeriodDurationInMS": {
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.",
"type": "number"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"items": {
"$ref": "#/properties/exchangeTokenAddress"
},
"minItems": 0,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"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."
},
"validFromDateInMS": {
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.",
"type": "number"
},
"validUntilDateInMS": {
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to.",
"type": "number"
},
"voucherRedeemableFromDateInMS": {
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.",
"type": "number"
},
"voucherRedeemableUntilDateInMS": {
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.",
"type": "number"
},
"voucherValidDurationInMS": {
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.",
"type": "number"
}
},
"required": [
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "create_offer",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/collectionIndex",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"buyerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"collectionIndex": {
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0).",
"type": "string"
},
"committer": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address of the buyer committing in the same transaction."
},
"condition": {
"additionalProperties": false,
"properties": {
"gatingType": {
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once).",
"type": "number"
},
"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."
},
"method": {
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID).",
"type": "number"
},
"minTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"threshold": {
"$ref": "#/properties/collectionIndex",
"description": "Minimum token balance required. Pass as string."
},
"tokenAddress": {
"$ref": "#/properties/offerCreator",
"description": "Address of the gate token contract buyers must hold."
},
"tokenType": {
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155.",
"type": "number"
}
},
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"type": "object"
},
"conditionalTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type)."
},
"configId": {
"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.",
"type": "string"
},
"creator": {
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.",
"enum": [
"SELLER",
"BUYER"
],
"type": "string"
},
"disputePeriodDurationInMS": {
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.",
"type": "number"
},
"disputeResolverId": {
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.",
"type": "string"
},
"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."
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"feeLimit": {
"$ref": "#/properties/collectionIndex",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"metadataHash": {
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.",
"type": "string"
},
"metadataUri": {
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.",
"type": "string"
},
"offerCreator": {
"description": "Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address.",
"type": "string"
},
"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."
},
"priceType": {
"description": "0 = static price, 1 = discovery price (auction).",
"type": "number"
},
"quantityAvailable": {
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0,
"type": "number"
},
"resolutionPeriodDurationInMS": {
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.",
"type": "number"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"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,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"sellerDeposit": {
"$ref": "#/properties/collectionIndex",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"sellerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"signature": {
"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.",
"type": "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."
},
"useDepositedFunds": {
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet.",
"type": "boolean"
},
"validFromDateInMS": {
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.",
"type": "number"
},
"validUntilDateInMS": {
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to.",
"type": "number"
},
"voucherRedeemableFromDateInMS": {
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.",
"type": "number"
},
"voucherRedeemableUntilDateInMS": {
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.",
"type": "number"
},
"voucherValidDurationInMS": {
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.",
"type": "number"
}
},
"required": [
"signature",
"offerCreator",
"committer",
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "create_offer_and_commit",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/collectionIndex",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"buyerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"collectionIndex": {
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0).",
"type": "string"
},
"committer": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address of the buyer committing in the same transaction."
},
"condition": {
"additionalProperties": false,
"properties": {
"gatingType": {
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once).",
"type": "number"
},
"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."
},
"method": {
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID).",
"type": "number"
},
"minTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"threshold": {
"$ref": "#/properties/collectionIndex",
"description": "Minimum token balance required. Pass as string."
},
"tokenAddress": {
"$ref": "#/properties/offerCreator",
"description": "Address of the gate token contract buyers must hold."
},
"tokenType": {
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155.",
"type": "number"
}
},
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"type": "object"
},
"conditionalTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type)."
},
"configId": {
"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.",
"type": "string"
},
"creator": {
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.",
"enum": [
"SELLER",
"BUYER"
],
"type": "string"
},
"disputePeriodDurationInMS": {
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.",
"type": "number"
},
"disputeResolverId": {
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.",
"type": "string"
},
"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."
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"feeLimit": {
"$ref": "#/properties/collectionIndex",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"metadataHash": {
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.",
"type": "string"
},
"metadataUri": {
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.",
"type": "string"
},
"offerCreator": {
"description": "Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address.",
"type": "string"
},
"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."
},
"priceType": {
"description": "0 = static price, 1 = discovery price (auction).",
"type": "number"
},
"quantityAvailable": {
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0,
"type": "number"
},
"resolutionPeriodDurationInMS": {
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.",
"type": "number"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"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,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"sellerDeposit": {
"$ref": "#/properties/collectionIndex",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"sellerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"signature": {
"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.",
"type": "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."
},
"useDepositedFunds": {
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet.",
"type": "boolean"
},
"validFromDateInMS": {
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.",
"type": "number"
},
"validUntilDateInMS": {
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to.",
"type": "number"
},
"voucherRedeemableFromDateInMS": {
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.",
"type": "number"
},
"voucherRedeemableUntilDateInMS": {
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.",
"type": "number"
},
"voucherValidDurationInMS": {
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.",
"type": "number"
}
},
"required": [
"signature",
"offerCreator",
"committer",
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "create_offer_commit_and_redeem",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"collectionIndex": {
"$ref": "#/properties/agentId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"condition": {
"additionalProperties": false,
"properties": {
"gatingType": {
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once).",
"type": "number"
},
"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."
},
"method": {
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID).",
"type": "number"
},
"minTokenId": {
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string.",
"type": "string"
},
"threshold": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Minimum token balance required. Pass as string."
},
"tokenAddress": {
"description": "Address of the gate token contract buyers must hold.",
"type": "string"
},
"tokenType": {
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155.",
"type": "number"
}
},
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"type": "object"
},
"configId": {
"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.",
"type": "string"
},
"creator": {
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.",
"enum": [
"SELLER",
"BUYER"
],
"type": "string"
},
"disputePeriodDurationInMS": {
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.",
"type": "number"
},
"disputeResolverId": {
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.",
"type": "string"
},
"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."
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"feeLimit": {
"$ref": "#/properties/agentId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"metadataHash": {
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.",
"type": "string"
},
"metadataUri": {
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.",
"type": "string"
},
"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."
},
"priceType": {
"description": "0 = static price, 1 = discovery price (auction).",
"type": "number"
},
"quantityAvailable": {
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0,
"type": "number"
},
"resolutionPeriodDurationInMS": {
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.",
"type": "number"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"items": {
"$ref": "#/properties/exchangeTokenAddress"
},
"minItems": 0,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"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."
},
"validFromDateInMS": {
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.",
"type": "number"
},
"validUntilDateInMS": {
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to.",
"type": "number"
},
"voucherRedeemableFromDateInMS": {
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.",
"type": "number"
},
"voucherRedeemableUntilDateInMS": {
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.",
"type": "number"
},
"voucherValidDurationInMS": {
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.",
"type": "number"
}
},
"required": [
"condition",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "create_offer_with_condition",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"authTokenId": {
"$ref": "#/properties/royaltyPercentage",
"description": "NFT token ID used as auth token (e.g. Lens profile ID). Pass '0' if not using auth tokens."
},
"authTokenType": {
"description": "Auth token type: 0=None, 1=Lens Protocol profile NFT.",
"type": "number"
},
"configId": {
"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.",
"type": "string"
},
"contactLinks": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url",
"tag"
],
"type": "object"
},
"type": "array"
},
"contactPreference": {
"type": "string"
},
"contractUri": {
"description": "URI for OpenSea-style storefront metadata. Can be IPFS URI or empty string.",
"type": "string"
},
"description": {
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"images": {
"items": {
"additionalProperties": true,
"properties": {
"fit": {
"type": "string"
},
"height": {
"type": "number"
},
"position": {
"type": "string"
},
"tag": {
"type": "string"
},
"type": {
"type": "string"
},
"url": {
"type": "string"
},
"width": {
"type": "number"
}
},
"required": [
"url",
"type"
],
"type": "object"
},
"type": "array"
},
"kind": {
"type": "string"
},
"legalTradingName": {
"type": "string"
},
"name": {
"type": "string"
},
"royaltyPercentage": {
"description": "Default resale royalty in basis points (0–10000). Applied to all offers unless overridden.",
"type": "string"
},
"salesChannels": {
"items": {
"additionalProperties": true,
"properties": {
"deployments": {
"items": {
"additionalProperties": false,
"properties": {
"lastUpdated": {
"type": "string"
},
"link": {
"type": "string"
},
"product": {
"additionalProperties": false,
"properties": {
"uuid": {
"type": "string"
},
"version": {
"type": "number"
}
},
"type": "object"
},
"status": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"link": {
"type": "string"
},
"name": {
"type": "string"
},
"settingsEditor": {
"type": "string"
},
"settingsUrl": {
"type": "string"
},
"tag": {
"type": "string"
}
},
"required": [
"tag"
],
"type": "object"
},
"type": "array"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"socialLinks": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url",
"tag"
],
"type": "object"
},
"type": "array"
},
"type": {
"type": "string"
},
"website": {
"type": "string"
}
},
"required": [
"type",
"kind",
"contactPreference",
"contractUri",
"royaltyPercentage",
"authTokenId",
"authTokenType",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "create_seller",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"buyerPercent": {
"$ref": "#/properties/exchangeId",
"description": "Percentage of disputed funds to buyer in basis points (0–10000). 10000 = all to buyer, 0 = all to seller."
},
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"buyerPercent",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "decide_dispute",
"outputSchema": null
},
{
"description": "Deposits ERC-20 or native tokens into an entity's protocol treasury (e.g. seller deposit). For ERC-20, call approve_exchange_token first. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"amount": {
"$ref": "#/properties/entityId",
"description": "Amount in wei. For ERC-20, approve_exchange_token must be called first. Pass as string."
},
"configId": {
"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.",
"type": "string"
},
"entityId": {
"description": "Numeric ID of the entity to credit. Must match signerAddress's seller account.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"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."
},
"tokenAddress": {
"description": "ERC-20 token to deposit. Use address(0) for native ETH.",
"type": "string"
}
},
"required": [
"entityId",
"tokenAddress",
"amount",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "deposit_funds",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "escalate_dispute",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "expire_dispute",
"outputSchema": null
},
{
"description": "Marks multiple expired disputes in one transaction. All exchanges must be in 'Disputed' state past their respective timeouts. Permissionless. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeIds": {
"description": "Array of exchange IDs whose dispute period has passed. All must be in 'Disputed' state past their timeout.",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeIds",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "expire_dispute_batch",
"outputSchema": null
},
{
"description": "Expires an escalated dispute once the resolver's response period passes without a decision. Permissionless — anyone can call. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "expire_escalated_dispute",
"outputSchema": null
},
{
"description": "Extends the deadline of an active dispute. Dispute must be in 'Resolving' state. Either party can call this. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"newDisputeTimeout": {
"$ref": "#/properties/exchangeId",
"description": "New absolute Unix timestamp in SECONDS (not ms) for the dispute deadline. Must be later than current timeout."
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"newDisputeTimeout",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "extend_dispute_timeout",
"outputSchema": null
},
{
"description": "Reads product groupings with at least one non-voided variant from the Boson subgraph. Useful for storefront displays. Supports pagination and ordering. Read-only.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"productsFilter": {
"additionalProperties": {},
"type": "object"
},
"productsFirst": {
"type": "number"
},
"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"
},
"productsSkip": {
"type": "number"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_all_products_with_not_voided_variants",
"outputSchema": null
},
{
"description": "Returns all valid configId values for this server. Call first to discover which network/deployment to use. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_config_ids",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"disputeId": {
"description": "Numeric ID of the dispute to retrieve. Note: disputeId equals the exchangeId of the associated exchange.",
"type": "string"
},
"queryVars": {
"description": "Optional additional subgraph query variables for field selection. Leave empty for default fields."
}
},
"required": [
"disputeId",
"configId"
],
"type": "object"
},
"name": "get_dispute_by_id",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"disputeResolversFilter": {
"additionalProperties": {},
"type": "object"
},
"disputeResolversFirst": {
"type": "number"
},
"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"
},
"disputeResolversSkip": {
"type": "number"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_dispute_resolvers",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"disputesFilter": {
"additionalProperties": {},
"type": "object"
},
"disputesFirst": {
"type": "number"
},
"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"
},
"disputesSkip": {
"type": "number"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_disputes",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangesFilter": {
"additionalProperties": {},
"type": "object"
},
"exchangesFirst": {
"type": "number"
},
"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"
},
"exchangesSkip": {
"type": "number"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_exchanges",
"outputSchema": null
},
{
"description": "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 }.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"fundsFilter": {
"additionalProperties": {},
"type": "object"
},
"fundsFirst": {
"type": "number"
},
"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"
},
"fundsSkip": {
"type": "number"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_funds",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangesFilter": {
"additionalProperties": {},
"type": "object"
},
"exchangesFirst": {
"type": "number"
},
"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"
},
"exchangesSkip": {
"type": "number"
},
"includeExchanges": {
"type": "boolean"
},
"offersFilter": {
"additionalProperties": {},
"type": "object"
},
"offersFirst": {
"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"
},
"offersOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"offersSkip": {
"type": "number"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_offers",
"outputSchema": null
},
{
"description": "Returns all dACP agents registered with this MCP server instance, with their associated protocol entities and roles. No auth required.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_registered_agents",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"includeExchanges": {
"type": "boolean"
},
"includeFunds": {
"type": "boolean"
},
"includeLogs": {
"type": "boolean"
},
"includeOffers": {
"type": "boolean"
},
"sellersFilter": {
"additionalProperties": {},
"type": "object"
},
"sellersFirst": {
"type": "number"
},
"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"
},
"sellersOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"sellersSkip": {
"type": "number"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_sellers",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"address": {
"type": "string"
},
"configId": {
"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.",
"type": "string"
},
"includeExchanges": {
"type": "boolean"
},
"includeFunds": {
"type": "boolean"
},
"includeLogs": {
"type": "boolean"
},
"includeOffers": {
"type": "boolean"
},
"sellersFilter": {
"additionalProperties": {},
"type": "object"
},
"sellersFirst": {
"type": "number"
},
"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"
},
"sellersOrderDirection": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"sellersSkip": {
"type": "number"
}
},
"required": [
"address",
"configId"
],
"type": "object"
},
"name": "get_sellers_by_address",
"outputSchema": null
},
{
"description": "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 }.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
}
},
"required": [
"configId"
],
"type": "object"
},
"name": "get_supported_tokens",
"outputSchema": null
},
{
"description": "Raises a dispute on a redeemed exchange. Caller must be the buyer. Must be called within disputePeriodDurationInMS after redemption. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "raise_dispute",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "redeem_voucher",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "refuse_escalated_dispute",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"entities": {
"items": {
"additionalProperties": false,
"properties": {
"configId": {
"type": "string"
},
"entityId": {
"type": "string"
},
"role": {
"enum": [
"buyer",
"seller",
"disputeResolver"
],
"type": "string"
},
"signature": {
"pattern": "^0x[0-9a-fA-F]{130}$",
"type": "string"
},
"signerAddress": {
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted.",
"type": "string"
}
},
"required": [
"configId",
"role",
"entityId",
"signerAddress",
"signature"
],
"type": "object"
},
"type": "array"
},
"name": {
"type": "string"
}
},
"required": [
"name",
"description",
"entities"
],
"type": "object"
},
"name": "register_agent",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"offerData": {
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/offerData/properties/price"
},
"buyerCancelPenalty": {
"$ref": "#/properties/offerData/properties/price"
},
"collectionIndex": {
"$ref": "#/properties/offerData/properties/price"
},
"disputePeriodDurationInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"disputeResolverId": {
"$ref": "#/properties/offerData/properties/price"
},
"exchangeToken": {
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted.",
"type": "string"
},
"feeLimit": {
"$ref": "#/properties/offerData/properties/price"
},
"metadataHash": {
"type": "string"
},
"metadataUri": {
"type": "string"
},
"price": {
"type": "string"
},
"priceType": {
"type": "number"
},
"quantityAvailable": {
"$ref": "#/properties/offerData/properties/price"
},
"resolutionPeriodDurationInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"items": {
"$ref": "#/properties/offerData/properties/exchangeToken"
},
"minItems": 0,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"sellerDeposit": {
"$ref": "#/properties/offerData/properties/price"
},
"validFromDateInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"validUntilDateInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"voucherRedeemableFromDateInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"voucherRedeemableUntilDateInMS": {
"$ref": "#/properties/offerData/properties/price"
},
"voucherValidDurationInMS": {
"$ref": "#/properties/offerData/properties/price"
}
},
"required": [
"price",
"sellerDeposit",
"agentId",
"buyerCancelPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"resolutionPeriodDurationInMS",
"exchangeToken",
"disputeResolverId",
"metadataUri",
"metadataHash",
"collectionIndex"
],
"type": "object"
},
"offerMetadata": {
"additionalProperties": false,
"properties": {
"disputeResolverContactMethod": {
"type": "string"
},
"escalationDeposit": {
"$ref": "#/properties/offerData/properties/price"
},
"escalationResponsePeriodInSec": {
"$ref": "#/properties/offerData/properties/price"
},
"returnPeriodInDays": {
"type": "number"
},
"sellerContactMethod": {
"type": "string"
},
"sellerTradingName": {
"type": "string"
}
},
"required": [
"sellerContactMethod",
"disputeResolverContactMethod",
"escalationDeposit",
"escalationResponsePeriodInSec",
"sellerTradingName",
"returnPeriodInDays"
],
"type": "object"
},
"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."
},
"template": {
"type": "string"
}
},
"required": [
"template",
"offerData",
"offerMetadata",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "render_contractual_agreement",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"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)."
},
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"sigR": {
"description": "32-byte R component of the ECDSA resolution signature as 0x-prefixed hex. From the locally-signed EIP-712 signature parameters.",
"type": "string"
},
"sigS": {
"description": "32-byte S component as 0x-prefixed hex. From the locally-signed EIP-712 signature parameters.",
"type": "string"
},
"sigV": {
"$ref": "#/properties/exchangeId",
"description": "Recovery byte V: 27 or 28. From the locally-signed EIP-712 signature parameters."
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"buyerPercentBasisPoints",
"sigR",
"sigS",
"sigV",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "resolve_dispute",
"outputSchema": null
},
{
"description": "Retracts a raised dispute, releasing seller deposit and restoring completion flow. Caller must be the buyer who raised it. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "retract_dispute",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeId": {
"description": "Numeric ID of the exchange/dispute to act on. Obtain from get_exchanges or the response of commit_to_offer.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"exchangeId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "revoke_voucher",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"includeInvalidOffers": {
"description": "When true, include products whose offers are outside their validity window. Defaults to false (valid offers only).",
"type": "boolean"
},
"keywords": {
"description": "List of keywords matched against product title, description, brand, category, and tags.",
"items": {
"minLength": 1,
"type": "string"
},
"minItems": 1,
"type": "array"
},
"productsFilter": {
"additionalProperties": {},
"type": "object"
},
"productsFirst": {
"type": "number"
},
"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"
},
"productsSkip": {
"type": "number"
}
},
"required": [
"keywords",
"configId"
],
"type": "object"
},
"name": "search_products",
"outputSchema": null
},
{
"description": "Relays a Biconomy forwarded meta-transaction (ERC-20 gas payment). Requires a complete ERC20ForwardRequest and domain separator signature. Returns: relay transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"contractAddress": {
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted.",
"type": "string"
},
"domainSeparator": {
"pattern": "^0x[a-fA-F0-9]{64}$",
"type": "string"
},
"request": {
"additionalProperties": false,
"properties": {
"batchId": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"minimum": 0,
"type": "number"
}
]
},
"batchNonce": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"minimum": 0,
"type": "number"
}
]
},
"data": {
"minLength": 1,
"pattern": "^0x[a-fA-F0-9]+$",
"type": "string"
},
"deadline": {
"minimum": 0,
"type": "number"
},
"from": {
"$ref": "#/properties/contractAddress"
},
"to": {
"$ref": "#/properties/contractAddress"
},
"token": {
"$ref": "#/properties/contractAddress"
},
"tokenGasPrice": {
"minLength": 1,
"type": "string"
},
"txGas": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"minimum": 0,
"type": "number"
}
]
}
},
"required": [
"from",
"to",
"token",
"txGas",
"tokenGasPrice",
"batchId",
"batchNonce",
"deadline",
"data"
],
"type": "object"
},
"signature": {
"pattern": "^0x[a-fA-F0-9]+$",
"type": "string"
},
"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."
}
},
"required": [
"contractAddress",
"request",
"domainSeparator",
"signature",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "send_forwarded_meta_transaction",
"outputSchema": null
},
{
"description": "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. Returns: relay transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"functionName": {
"minLength": 1,
"type": "string"
},
"functionSignature": {
"pattern": "^0x[a-fA-F0-9]+$",
"type": "string"
},
"nonce": {
"type": [
"string",
"number"
]
},
"sigR": {
"pattern": "^0x[a-fA-F0-9]{64}$",
"type": "string"
},
"sigS": {
"pattern": "^0x[a-fA-F0-9]{64}$",
"type": "string"
},
"sigV": {
"type": [
"string",
"number"
]
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"functionName",
"functionSignature",
"nonce",
"sigR",
"sigS",
"sigV",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "send_meta_transaction",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"contractAddress": {
"description": "Valid Ethereum address (e.g. '0xAbCd...' or '0xabcd...'). Mixed-case addresses are checksum-validated; all-lowercase and all-uppercase addresses are also accepted.",
"type": "string"
},
"functionSignature": {
"pattern": "^0x[a-fA-F0-9]+$",
"type": "string"
},
"sigR": {
"pattern": "^0x[a-fA-F0-9]{64}$",
"type": "string"
},
"sigS": {
"pattern": "^0x[a-fA-F0-9]{64}$",
"type": "string"
},
"sigV": {
"type": [
"string",
"number"
]
},
"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."
}
},
"required": [
"contractAddress",
"functionSignature",
"sigR",
"sigS",
"sigV",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "send_native_meta_transaction",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"signedTransaction": {
"description": "RLP-encoded signed Ethereum transaction as 0x-prefixed hex string. Obtain from local wallet signing (e.g. ethers `wallet.signTransaction(tx)`).",
"type": "string"
}
},
"required": [
"signedTransaction",
"configId"
],
"type": "object"
},
"name": "send_signed_transaction",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/collectionIndex",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"buyerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"collectionIndex": {
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0).",
"type": "string"
},
"committer": {
"$ref": "#/properties/offerCreator",
"description": "Ethereum address of the buyer committing in the same transaction."
},
"condition": {
"additionalProperties": false,
"properties": {
"gatingType": {
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once).",
"type": "number"
},
"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."
},
"method": {
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID).",
"type": "number"
},
"minTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string."
},
"threshold": {
"$ref": "#/properties/collectionIndex",
"description": "Minimum token balance required. Pass as string."
},
"tokenAddress": {
"$ref": "#/properties/offerCreator",
"description": "Address of the gate token contract buyers must hold."
},
"tokenType": {
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155.",
"type": "number"
}
},
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"type": "object"
},
"conditionalTokenId": {
"$ref": "#/properties/collectionIndex",
"description": "Optional token ID of the NFT gate token used by this specific commit (for SpecificToken gating type)."
},
"configId": {
"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.",
"type": "string"
},
"creator": {
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.",
"enum": [
"SELLER",
"BUYER"
],
"type": "string"
},
"disputePeriodDurationInMS": {
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.",
"type": "number"
},
"disputeResolverId": {
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.",
"type": "string"
},
"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."
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"feeLimit": {
"$ref": "#/properties/collectionIndex",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"metadataHash": {
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.",
"type": "string"
},
"metadataUri": {
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.",
"type": "string"
},
"offerCreator": {
"description": "Ethereum address of the seller creating this non-listed offer. Must match the seller's assistant address.",
"type": "string"
},
"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."
},
"priceType": {
"description": "0 = static price, 1 = discovery price (auction).",
"type": "number"
},
"quantityAvailable": {
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0,
"type": "number"
},
"resolutionPeriodDurationInMS": {
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.",
"type": "number"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"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,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"sellerDeposit": {
"$ref": "#/properties/collectionIndex",
"description": "Seller collateral in same unit as price. Released to seller on completion or forfeited on dispute. Pass as string."
},
"sellerId": {
"$ref": "#/properties/collectionIndex",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"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."
},
"useDepositedFunds": {
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet.",
"type": "boolean"
},
"validFromDateInMS": {
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.",
"type": "number"
},
"validUntilDateInMS": {
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to.",
"type": "number"
},
"voucherRedeemableFromDateInMS": {
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.",
"type": "number"
},
"voucherRedeemableUntilDateInMS": {
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.",
"type": "number"
},
"voucherValidDurationInMS": {
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.",
"type": "number"
}
},
"required": [
"offerCreator",
"committer",
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "sign_full_offer",
"outputSchema": null
},
{
"description": "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); use the result to build a TransferAuthorization { strategy: 'DAIPermit' } for a meta-tx flow. Returns: typed data structure.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeTokenAddress": {
"description": "ERC-20 token contract address that supports the permit/authorization standard.",
"type": "string"
},
"expiry": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds after which the DAI-style 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."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"tokenDomainName": {
"description": "EIP-712 domain name of the DAI-style token (e.g. 'Dai Stablecoin').",
"minLength": 1,
"type": "string"
},
"value": {
"description": "Amount in wei the spender is authorized to pull from the signer.",
"type": "string"
}
},
"required": [
"exchangeTokenAddress",
"value",
"tokenDomainName",
"expiry",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "sign_receive_with_dai_permit",
"outputSchema": null
},
{
"description": "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); use the resulting signature to build a TransferAuthorization { strategy: 'EIP2612' } for a meta-tx flow. Returns: typed data structure.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"deadline": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds after which the permit is no longer valid."
},
"exchangeTokenAddress": {
"description": "ERC-20 token contract address that supports the permit/authorization standard.",
"type": "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."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"tokenDomainName": {
"description": "EIP-712 domain name of the token contract (e.g. 'USD Coin'). Required for ERC-3009 / EIP-2612 domain separator.",
"minLength": 1,
"type": "string"
},
"tokenDomainVersion": {
"description": "EIP-712 domain version of the token contract (e.g. '2'). Required for ERC-3009 / EIP-2612 domain separator.",
"minLength": 1,
"type": "string"
},
"value": {
"description": "Amount in wei the spender is authorized to pull from the signer.",
"type": "string"
}
},
"required": [
"exchangeTokenAddress",
"value",
"tokenDomainName",
"tokenDomainVersion",
"deadline",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "sign_receive_with_erc2612_permit",
"outputSchema": null
},
{
"description": "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); use the resulting signature + nonce to build a TransferAuthorization { strategy: 'ERC3009' } for a meta-tx flow. Returns: typed data structure.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangeTokenAddress": {
"description": "ERC-20 token contract address that supports the permit/authorization standard.",
"type": "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."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"tokenDomainName": {
"description": "EIP-712 domain name of the token contract (e.g. 'USD Coin'). Required for ERC-3009 / EIP-2612 domain separator.",
"minLength": 1,
"type": "string"
},
"tokenDomainVersion": {
"description": "EIP-712 domain version of the token contract (e.g. '2'). Required for ERC-3009 / EIP-2612 domain separator.",
"minLength": 1,
"type": "string"
},
"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."
},
"value": {
"description": "Amount in wei the spender is authorized to pull from the signer.",
"type": "string"
}
},
"required": [
"exchangeTokenAddress",
"value",
"tokenDomainName",
"tokenDomainVersion",
"validAfter",
"validBefore",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "sign_receive_with_erc3009_authorization",
"outputSchema": null
},
{
"description": "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); use the result to build a TransferAuthorization { strategy: 'Permit2' } for a meta-tx flow. Returns: typed data structure.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"deadline": {
"$ref": "#/properties/value",
"description": "Unix timestamp in seconds after which the Permit2 authorization is no longer valid."
},
"exchangeTokenAddress": {
"description": "ERC-20 token contract address that supports the permit/authorization standard.",
"type": "string"
},
"permit2Address": {
"$ref": "#/properties/spender",
"description": "Optional Uniswap Permit2 contract address. Defaults to contracts.permit2 from SDK config."
},
"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."
},
"spender": {
"$ref": "#/properties/exchangeTokenAddress",
"description": "Optional spender address. Defaults to the Boson Protocol diamond from SDK config."
},
"value": {
"description": "Amount in wei the spender is authorized to pull from the signer.",
"type": "string"
}
},
"required": [
"exchangeTokenAddress",
"value",
"deadline",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "sign_receive_with_permit2",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"animationUrl": {
"type": "string"
},
"attributes": {
"items": {
"additionalProperties": true,
"properties": {
"displayType": {
"type": "string"
},
"traitType": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"traitType",
"value"
],
"type": "object"
},
"type": "array"
},
"condition": {
"type": "string"
},
"configId": {
"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.",
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"image": {
"type": "string"
},
"imageData": {
"type": "string"
},
"licenseUrl": {
"type": "string"
},
"name": {
"type": "string"
},
"schemaUrl": {
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"type": {
"enum": [
"BASE"
],
"type": "string"
},
"youtubeUrl": {
"type": "string"
}
},
"required": [
"schemaUrl",
"type",
"name",
"description",
"externalUrl",
"licenseUrl",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "store_base_metadata",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"animationUrl": {
"type": "string"
},
"animation_url": {
"type": "string"
},
"attributes": {
"items": {
"additionalProperties": true,
"properties": {
"displayType": {
"type": "string"
},
"display_type": {
"type": "string"
},
"traitType": {
"type": "string"
},
"trait_type": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"chainId": {
"type": "number"
},
"configId": {
"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.",
"type": "string"
},
"contract": {
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"external_url": {
"type": "string"
},
"image": {
"type": "string"
},
"imageData": {
"type": "string"
},
"image_data": {
"type": "string"
},
"name": {
"type": "string"
},
"quantity": {
"type": "number"
},
"schemaUrl": {
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"terms": {
"items": {
"additionalProperties": true,
"properties": {
"displayKey": {
"type": "string"
},
"key": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"key",
"value"
],
"type": "object"
},
"type": "array"
},
"tokenId": {
"type": "string"
},
"tokenIdRange": {
"additionalProperties": true,
"properties": {
"max": {
"type": "string"
},
"min": {
"type": "string"
}
},
"type": "object"
},
"type": {
"enum": [
"ITEM_NFT"
],
"type": "string"
},
"youtubeUrl": {
"type": "string"
},
"youtube_url": {
"type": "string"
}
},
"required": [
"schemaUrl",
"type",
"name",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "store_bundle_item_nft_metadata",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"exchangePolicy": {
"additionalProperties": true,
"properties": {
"disputeResolverContactMethod": {
"type": "string"
},
"label": {
"type": "string"
},
"sellerContactMethod": {
"type": "string"
},
"template": {
"type": "string"
},
"uuid": {
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"uuid",
"version",
"template",
"sellerContactMethod",
"disputeResolverContactMethod"
],
"type": "object"
},
"product": {
"additionalProperties": true,
"properties": {
"description": {
"type": "string"
},
"details_category": {
"type": "string"
},
"details_offerCategory": {
"type": "string"
},
"details_personalisation": {
"items": {
"type": "string"
},
"type": "array"
},
"details_sections": {
"items": {
"type": "string"
},
"type": "array"
},
"details_subCategory": {
"type": "string"
},
"details_subCategory2": {
"type": "string"
},
"details_tags": {
"items": {
"type": "string"
},
"type": "array"
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"identification_sKU": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
},
"productionInformation_materials": {
"items": {
"type": "string"
},
"type": "array"
},
"productionInformation_modelNumber": {
"type": "string"
},
"title": {
"type": "string"
},
"uuid": {
"type": "string"
},
"version": {
"type": "number"
},
"visuals_images": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"visuals_videos": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"uuid",
"version",
"title",
"description",
"productionInformation_brandName",
"details_offerCategory",
"visuals_images"
],
"type": "object"
},
"productOverrides": {
"additionalProperties": true,
"properties": {
"description": {
"type": "string"
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"identification_sKU": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
},
"productionInformation_materials": {
"items": {
"type": "string"
},
"type": "array"
},
"productionInformation_modelNumber": {
"type": "string"
},
"title": {
"type": "string"
},
"visuals_images": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"visuals_videos": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"schemaUrl": {
"type": "string"
},
"shipping": {
"additionalProperties": true,
"properties": {
"countryOfOrigin": {
"type": "string"
},
"defaultVersion": {
"type": "number"
},
"redemptionPoint": {
"type": "string"
},
"returnPeriod": {
"type": "string"
},
"supportedJurisdictions": {
"items": {
"additionalProperties": true,
"properties": {
"deliveryTime": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"label",
"deliveryTime"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"returnPeriod"
],
"type": "object"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"type": {
"enum": [
"ITEM_PRODUCT_V1"
],
"type": "string"
},
"uuid": {
"type": "string"
},
"variations": {
"items": {
"additionalProperties": true,
"properties": {
"option": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"type",
"option"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"schemaUrl",
"type",
"uuid",
"product",
"shipping",
"exchangePolicy",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "store_bundle_item_product_v1_metadata",
"outputSchema": null
},
{
"description": "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 }.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"animationUrl": {
"type": "string"
},
"attributes": {
"items": {
"additionalProperties": true,
"properties": {
"displayType": {
"type": "string"
},
"traitType": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"traitType",
"value"
],
"type": "object"
},
"type": "array"
},
"bundleUuid": {
"type": "string"
},
"condition": {
"type": "string"
},
"configId": {
"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.",
"type": "string"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"image": {
"type": "string"
},
"imageData": {
"type": "string"
},
"items": {
"items": {
"additionalProperties": true,
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"licenseUrl": {
"type": "string"
},
"name": {
"type": "string"
},
"schemaUrl": {
"type": "string"
},
"seller": {
"additionalProperties": true,
"properties": {
"contactLinks": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url",
"tag"
],
"type": "object"
},
"type": "array"
},
"defaultVersion": {
"type": "number"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"images": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"name": {
"type": "string"
},
"tokenId": {
"type": "string"
}
},
"required": [
"defaultVersion",
"name",
"contactLinks"
],
"type": "object"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"type": {
"enum": [
"BUNDLE"
],
"type": "string"
},
"youtubeUrl": {
"type": "string"
}
},
"required": [
"schemaUrl",
"type",
"name",
"description",
"externalUrl",
"licenseUrl",
"bundleUuid",
"seller",
"items",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "store_bundle_metadata",
"outputSchema": null
},
{
"description": "Stores a ProductV1 metadata object to IPFS. Call before create_offer to get metadataUri and metadataHash. Returns: { metadataUri: 'ipfs://...', metadataHash: '0x...' }.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"animationUrl": {
"type": "string"
},
"attributes": {
"items": {
"additionalProperties": true,
"properties": {
"displayType": {
"type": "string"
},
"traitType": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"traitType",
"value"
],
"type": "object"
},
"type": "array"
},
"condition": {
"type": "string"
},
"configId": {
"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.",
"type": "string"
},
"description": {
"type": "string"
},
"exchangePolicy": {
"additionalProperties": true,
"properties": {
"disputeResolverContactMethod": {
"type": "string"
},
"label": {
"type": "string"
},
"sellerContactMethod": {
"type": "string"
},
"template": {
"type": "string"
},
"uuid": {
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"uuid",
"version",
"template",
"sellerContactMethod",
"disputeResolverContactMethod"
],
"type": "object"
},
"externalUrl": {
"type": "string"
},
"image": {
"type": "string"
},
"imageData": {
"type": "string"
},
"licenseUrl": {
"type": "string"
},
"name": {
"type": "string"
},
"product": {
"additionalProperties": true,
"properties": {
"description": {
"type": "string"
},
"details_category": {
"type": "string"
},
"details_offerCategory": {
"type": "string"
},
"details_personalisation": {
"items": {
"type": "string"
},
"type": "array"
},
"details_sections": {
"items": {
"type": "string"
},
"type": "array"
},
"details_subCategory": {
"type": "string"
},
"details_subCategory2": {
"type": "string"
},
"details_tags": {
"items": {
"type": "string"
},
"type": "array"
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"identification_sKU": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
},
"productionInformation_materials": {
"items": {
"type": "string"
},
"type": "array"
},
"productionInformation_modelNumber": {
"type": "string"
},
"title": {
"type": "string"
},
"uuid": {
"type": "string"
},
"version": {
"type": "number"
},
"visuals_images": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"visuals_videos": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"uuid",
"version",
"title",
"description",
"productionInformation_brandName",
"details_offerCategory",
"visuals_images"
],
"type": "object"
},
"productOverrides": {
"additionalProperties": true,
"properties": {
"description": {
"type": "string"
},
"identification_productId": {
"type": "string"
},
"identification_productIdType": {
"type": "string"
},
"identification_sKU": {
"type": "string"
},
"productionInformation_brandName": {
"type": "string"
},
"productionInformation_manufacturer": {
"type": "string"
},
"productionInformation_manufacturerPartNumber": {
"type": "string"
},
"productionInformation_materials": {
"items": {
"type": "string"
},
"type": "array"
},
"productionInformation_modelNumber": {
"type": "string"
},
"title": {
"type": "string"
},
"visuals_images": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"visuals_videos": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"schemaUrl": {
"type": "string"
},
"seller": {
"additionalProperties": true,
"properties": {
"contactLinks": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url",
"tag"
],
"type": "object"
},
"type": "array"
},
"defaultVersion": {
"type": "number"
},
"description": {
"type": "string"
},
"externalUrl": {
"type": "string"
},
"images": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"type": "array"
},
"name": {
"type": "string"
},
"tokenId": {
"type": "string"
}
},
"required": [
"defaultVersion",
"name",
"contactLinks"
],
"type": "object"
},
"shipping": {
"additionalProperties": true,
"properties": {
"countryOfOrigin": {
"type": "string"
},
"defaultVersion": {
"type": "number"
},
"redemptionPoint": {
"type": "string"
},
"returnPeriod": {
"type": "string"
},
"supportedJurisdictions": {
"items": {
"additionalProperties": true,
"properties": {
"deliveryTime": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"label",
"deliveryTime"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"returnPeriod"
],
"type": "object"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"type": {
"enum": [
"PRODUCT_V1"
],
"type": "string"
},
"uuid": {
"type": "string"
},
"variations": {
"items": {
"additionalProperties": true,
"properties": {
"option": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"type",
"option"
],
"type": "object"
},
"type": "array"
},
"youtubeUrl": {
"type": "string"
}
},
"required": [
"schemaUrl",
"type",
"uuid",
"name",
"description",
"externalUrl",
"licenseUrl",
"image",
"attributes",
"product",
"seller",
"shipping",
"exchangePolicy",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "store_product_v1_metadata",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"authTokenId": {
"description": "NFT token ID used as auth token (e.g. Lens profile ID). Pass '0' if not using auth tokens.",
"type": "string"
},
"authTokenType": {
"description": "Auth token type: 0=None, 1=Lens Protocol profile NFT.",
"type": "number"
},
"configId": {
"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.",
"type": "string"
},
"contactLinks": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url",
"tag"
],
"type": "object"
},
"type": "array"
},
"contactPreference": {
"type": "string"
},
"description": {
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"id": {
"$ref": "#/properties/authTokenId",
"description": "Numeric ID of the existing seller entity to update. Obtain from get_sellers_by_address."
},
"images": {
"items": {
"additionalProperties": true,
"properties": {
"fit": {
"type": "string"
},
"height": {
"type": "number"
},
"position": {
"type": "string"
},
"tag": {
"type": "string"
},
"type": {
"type": "string"
},
"url": {
"type": "string"
},
"width": {
"type": "number"
}
},
"required": [
"url",
"type"
],
"type": "object"
},
"type": "array"
},
"kind": {
"type": "string"
},
"legalTradingName": {
"type": "string"
},
"name": {
"type": "string"
},
"salesChannels": {
"items": {
"additionalProperties": true,
"properties": {
"deployments": {
"items": {
"additionalProperties": false,
"properties": {
"lastUpdated": {
"type": "string"
},
"link": {
"type": "string"
},
"product": {
"additionalProperties": false,
"properties": {
"uuid": {
"type": "string"
},
"version": {
"type": "number"
}
},
"type": "object"
},
"status": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"link": {
"type": "string"
},
"name": {
"type": "string"
},
"settingsEditor": {
"type": "string"
},
"settingsUrl": {
"type": "string"
},
"tag": {
"type": "string"
}
},
"required": [
"tag"
],
"type": "object"
},
"type": "array"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
},
"socialLinks": {
"items": {
"additionalProperties": true,
"properties": {
"tag": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"url",
"tag"
],
"type": "object"
},
"type": "array"
},
"type": {
"type": "string"
},
"website": {
"type": "string"
}
},
"required": [
"type",
"kind",
"contactPreference",
"authTokenId",
"authTokenType",
"id",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "update_seller",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"metadata": {
"additionalProperties": true,
"properties": {
"type": {
"minLength": 1,
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"metadata"
],
"type": "object"
},
"name": "validate_metadata",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"buyerCancellationPenalty": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Amount buyer forfeits on cancel, in same unit as price. Must be <= price. Pass as string."
},
"buyerId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Numeric ID of the buyer entity. Use '0' for seller-initiated offers."
},
"collectionIndex": {
"$ref": "#/properties/agentId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"condition": {
"additionalProperties": false,
"properties": {
"gatingType": {
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once).",
"type": "number"
},
"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."
},
"method": {
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID).",
"type": "number"
},
"minTokenId": {
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string.",
"type": "string"
},
"threshold": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Minimum token balance required. Pass as string."
},
"tokenAddress": {
"description": "Address of the gate token contract buyers must hold.",
"type": "string"
},
"tokenType": {
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155.",
"type": "number"
}
},
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"type": "object"
},
"configId": {
"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.",
"type": "string"
},
"creator": {
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.",
"enum": [
"SELLER",
"BUYER"
],
"type": "string"
},
"disputePeriodDurationInMS": {
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.",
"type": "number"
},
"disputeResolverId": {
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.",
"type": "string"
},
"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."
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"feeLimit": {
"$ref": "#/properties/agentId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"metadataHash": {
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.",
"type": "string"
},
"metadataUri": {
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.",
"type": "string"
},
"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."
},
"priceType": {
"description": "0 = static price, 1 = discovery price (auction).",
"type": "number"
},
"quantityAvailable": {
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0,
"type": "number"
},
"resolutionPeriodDurationInMS": {
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.",
"type": "number"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"items": {
"$ref": "#/properties/exchangeTokenAddress"
},
"minItems": 0,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"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."
},
"sellerId": {
"$ref": "#/properties/condition/properties/minTokenId",
"description": "Numeric ID of the seller entity. Obtain via get_sellers_by_address."
},
"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."
},
"useDepositedFunds": {
"description": "If true, use funds already deposited in the protocol treasury instead of transferring from the wallet.",
"type": "boolean"
},
"validFromDateInMS": {
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.",
"type": "number"
},
"validUntilDateInMS": {
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to.",
"type": "number"
},
"voucherRedeemableFromDateInMS": {
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.",
"type": "number"
},
"voucherRedeemableUntilDateInMS": {
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.",
"type": "number"
},
"voucherValidDurationInMS": {
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.",
"type": "number"
}
},
"required": [
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "void_non_listed_offer",
"outputSchema": null
},
{
"description": "Voids multiple private offers atomically. Same prerequisite as void_non_listed_offer, but for an array of full offer objects. Returns unsigned transaction data.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"fullOffers": {
"items": {
"additionalProperties": false,
"properties": {
"agentId": {
"$ref": "#/properties/fullOffers/items/properties/sellerId",
"description": "Optional dACP agent facilitating this offer. Omit or pass '0' if no agent."
},
"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."
},
"buyerId": {
"$ref": "#/properties/fullOffers/items/properties/sellerId"
},
"collectionIndex": {
"$ref": "#/properties/fullOffers/items/properties/sellerId",
"description": "Index of the seller's NFT collection for vouchers. Omit to use default (index 0)."
},
"condition": {
"additionalProperties": false,
"properties": {
"gatingType": {
"description": "0=PerAddress (each address commits once), 1=PerTokenId (each token ID can be used once).",
"type": "number"
},
"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."
},
"method": {
"description": "Gating method: 0=None, 1=Threshold (hold >= threshold tokens), 2=SpecificToken (hold specific token ID).",
"type": "number"
},
"minTokenId": {
"description": "Min token ID (inclusive) for ERC-721/1155 criteria. Pass as string.",
"type": "string"
},
"threshold": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId",
"description": "Minimum token balance required. Pass as string."
},
"tokenAddress": {
"description": "Address of the gate token contract buyers must hold.",
"type": "string"
},
"tokenType": {
"description": "Token standard: 0=ERC-20, 1=ERC-721, 2=ERC-1155.",
"type": "number"
}
},
"required": [
"method",
"tokenType",
"tokenAddress",
"gatingType",
"minTokenId",
"maxTokenId",
"threshold",
"maxCommits"
],
"type": "object"
},
"creator": {
"description": "'SELLER' (default) = seller creates offer. 'BUYER' = buyer-initiated offer, quantity must be 1.",
"enum": [
"SELLER",
"BUYER"
],
"type": "string"
},
"disputePeriodDurationInMS": {
"description": "Duration in ms for buyer to raise a dispute after redeeming. Example: 604800000 = 7 days.",
"type": "number"
},
"disputeResolverId": {
"description": "ID of the dispute resolver for escalated disputes. Call get_dispute_resolvers to list available resolvers.",
"type": "string"
},
"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."
},
"feeLimit": {
"$ref": "#/properties/fullOffers/items/properties/sellerId",
"description": "Max protocol fee the seller accepts in same token unit. Pass as string."
},
"metadataHash": {
"description": "Keccak256 hash of the metadata JSON. Returned alongside metadataUri from the store_*_metadata tools.",
"type": "string"
},
"metadataUri": {
"description": "IPFS URI pointing to the offer metadata JSON. Obtain by calling store_product_v1_metadata, store_bundle_metadata, or store_base_metadata.",
"type": "string"
},
"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."
},
"priceType": {
"description": "0 = static price, 1 = discovery price (auction).",
"type": "number"
},
"quantityAvailable": {
"description": "How many times this offer can be committed to. Must be 1 when creator='BUYER'.",
"exclusiveMinimum": 0,
"type": "number"
},
"resolutionPeriodDurationInMS": {
"description": "Duration in ms to respond to a resolution proposal before it expires. Example: 259200000 = 3 days.",
"type": "number"
},
"royaltyInfo": {
"additionalProperties": false,
"properties": {
"bps": {
"description": "Royalty amounts per recipient in basis points (1 bp = 0.01%). Parallel to recipients. Total must not exceed 10000.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array"
},
"recipients": {
"description": "Array of addresses receiving resale royalties.",
"items": {
"$ref": "#/properties/fullOffers/items/properties/exchangeTokenAddress"
},
"minItems": 0,
"type": "array"
}
},
"required": [
"recipients",
"bps"
],
"type": "object"
},
"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."
},
"sellerId": {
"$ref": "#/properties/fullOffers/items/properties/condition/properties/minTokenId"
},
"useDepositedFunds": {
"type": "boolean"
},
"validFromDateInMS": {
"description": "Unix timestamp in milliseconds when the offer becomes active. Example: Date.now() for immediate.",
"type": "number"
},
"validUntilDateInMS": {
"description": "Unix timestamp in milliseconds when the offer can no longer be committed to.",
"type": "number"
},
"voucherRedeemableFromDateInMS": {
"description": "Timestamp in ms from which buyer can redeem. Must be >= validFromDateInMS.",
"type": "number"
},
"voucherRedeemableUntilDateInMS": {
"description": "Timestamp in ms after which voucher cannot be redeemed. Set to 0 to use voucherValidDurationInMS instead.",
"type": "number"
},
"voucherValidDurationInMS": {
"description": "Voucher is redeemable for this many ms after commit. Set to 0 to use voucherRedeemableUntilDateInMS instead.",
"type": "number"
}
},
"required": [
"sellerId",
"buyerId",
"metadataUri",
"metadataHash",
"price",
"sellerDeposit",
"buyerCancellationPenalty",
"quantityAvailable",
"validFromDateInMS",
"validUntilDateInMS",
"voucherRedeemableFromDateInMS",
"voucherRedeemableUntilDateInMS",
"disputePeriodDurationInMS",
"voucherValidDurationInMS",
"resolutionPeriodDurationInMS"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"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."
}
},
"required": [
"fullOffers",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "void_non_listed_offer_batch",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"offerId": {
"description": "ID of the listed offer to void. Caller must be the seller assistant. Existing exchanges are unaffected.",
"type": "string"
},
"signerAddress": {
"description": "Ethereum address that will sign and send this transaction. Must match the wallet that will sign the returned transaction locally.",
"type": "string"
}
},
"required": [
"offerId",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "void_offer",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"configId": {
"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.",
"type": "string"
},
"entityId": {
"description": "Numeric ID of the seller or buyer entity withdrawing funds.",
"type": "string"
},
"executionMode": {
"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'.",
"enum": [
"direct",
"metaTx"
],
"type": "string"
},
"list": {
"items": {
"additionalProperties": false,
"properties": {
"amount": {
"$ref": "#/properties/entityId",
"description": "Amount in token's smallest unit (wei). Use '0' to withdraw full available balance. Pass as string."
},
"tokenAddress": {
"description": "ERC-20 token address to withdraw. Use address(0) for native ETH.",
"type": "string"
}
},
"required": [
"tokenAddress",
"amount"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"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."
}
},
"required": [
"entityId",
"list",
"configId",
"signerAddress"
],
"type": "object"
},
"name": "withdraw_funds",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:fc074da5a7fc6831d5a0bb4eec824db4958ace4ade7de13396bd7a8a53b67217 | sha256sum