FAQ
"Why is my transaction unsigned?"
The MCP server never signs. State-changing tools return an unsigned tx; your code signs and broadcasts. See Build for AI agents → The 3-step signing pattern.
"How long is the dispute window?"
Set per-offer via OfferDurations.disputePeriod. It starts at REDEEMED. Typical: 7–30 days.
"Can a seller and buyer be the same wallet?"
Yes. The protocol treats them as distinct entities even if they share an address. Common for testing.
"What happens if the voucher window expires before I redeem?"
The exchange transitions to EXPIRED. The buyer recovers price; the seller keeps sellerDeposit. Either party can call expireVoucher.
"Can I update an offer after publishing?"
No. Offers are immutable. Void and re-create.
"How do I cancel an exchange after I commit?"
cancelVoucher(exchangeId). You pay buyerCancelPenalty to the seller; rest is refunded.
"Are gas fees included in the listed price?"
No. Listed price is what the seller receives (minus protocol/agent fees). The buyer pays gas separately (unless using meta-tx). See Concepts → Funds, escrow & payouts.
"Can a smart account commit?"
Yes. The Diamond accepts EIP-1271 signatures. Safe, ERC-4337 accounts, and other contract wallets work.
"What's the difference between cancelVoucher and revokeVoucher?"
cancelVoucher is buyer-initiated (penalty paid to seller). revokeVoucher is seller-initiated (seller deposit forfeited to buyer). Both end the exchange.
"What's an agentId of 0?"
No protocol agent attached. The protocol fee goes entirely to Boson; no third-party cut. Set a real agentId only if you have a registered protocol agent.
"How do I find my seller ID?"
sdk.getSellersByAddress(yourAddress) or mcp.getSellersByAddress({ wallet: yourAddress }).
"Does Boson work on EVM L3s / app chains?"
If the chain has a Diamond deployment in the address files, yes. If not, no. Adding a new chain is a config + deployment process; open an issue.
"Can I run Boson against a forked node?"
Yes. Deploy the contracts (use scripts/deploy-suite.js in boson-protocol-contracts) and use a local-* ConfigId.
"Where do I report a security issue?"
Email security@bosonprotocol.io per the boson-protocol-contracts security policy.