集合出价与按属性出价:OpenSea 上两种共享挂单的匹配规则、冻结与撤回 图 1
集合出价与按属性出价:OpenSea 上两种共享挂单的匹配规则、冻结与撤回 · 图 1

集合出价:一个报价吃掉合集里的任意一枚

在 NFT 市场里,普通报价(Item Offer)必须绑定合约地址加代币编号,而集合出价(Collection Offer)只绑定合集本身:你挂出一个价格和数量,这个报价对合集里任何一枚 NFT 都有效,第一个点击接受的持有人就把它成交。OpenSea 的开发者文档把这类挂单归入 advanced trading,底层走 Seaport 协议——报价本质上是一份链下签名订单,接受时才上链结算。

对买家来说,这种结构省去了逐枚出价的麻烦;对卖家来说,它意味着不需要等某一个人的专属报价,任何挂在整个合集上的有效报价都可以被你的藏品触发。两种视角共用同一份订单簿,规则完全对称。

集合出价与按属性出价:OpenSea 上两种共享挂单的匹配规则、冻结与撤回 图 2
集合出价与按属性出价:OpenSea 上两种共享挂单的匹配规则、冻结与撤回 · 图 2

按属性出价:再加一层特征过滤

按属性出价(Trait Offer)是集合出价的收窄版:报价除了指向合集,还附带一个特征条件,例如只接受背景为某个色系的藏品。OpenSea SDK 的接口里它和集合出价共用同一个创建函数,只是多传一个 trait 过滤参数。匹配时市场会同时检查合集归属和属性值,两者都对上才算合法接受对象。

要注意的是,属性来自合集自己的元数据或属性注册表,如果项目方改过属性口径,同一特征在不同市场页面可能显示不一致。出高价前先把目标属性在几条代表藏品上人工核对一遍。

WETH 报价有杠杆上限

报价不要求你每挂一单就锁一笔链上资金。OpenSea 对用 WETH 挂的报价实施了杠杆限制:文档写明单品报价和集合报价的上限都是 1000 倍——余额 1 个 WETH 最多可以挂出总计 1000 WETH 的在途报价,超过再挂就会报错。这是市场侧的风控参数,不是链上强制:它管理的是通过官方接口创建的报价,恶意或超额的报价在有人接受、资金对不上时会直接结算失败。

杠杆不等于免费:报价被接受的那一刻你必须拿出全额 WETH,否则交易回滚,你损失的是一笔失败的 gas。挂大报价前把自己的可用余额、在途报价总额两本账对齐。

冻结发生在哪一层

与单品即时挂单不同,集合类报价在创建时通常不从你钱包里划走资金——它是一份签好名的订单,登记在市场的订单索引里。真正的资产移动发生在接受成交那一笔交易:买家的 WETH 被拆包成 ETH,连同版税、市场费一起按订单里的分配项划转。所以你无法像查质押合约那样在区块浏览器上”看到”一堆被锁住的报价资金,能查的是订单本身:签名者、到期时间戳、数量上限。

报价被部分成交时数量会递减。一个数量 5 的集合报价被人接受了 2 次,剩下 3 份额度继续有效,直到用尽或到期。

和即时买价挂单的资金位置对比

同一枚藏品可能同时出现在两种挂单里:卖家侧的”立即购买”挂单会把 NFT 划进市场合约或授权市场划转,买家侧的集合报价则只是一份签名。所以你在订单簿看到的价格信息,背后是两套完全不同的资产状态——一侧真锁了货,一侧连钱都没动。对买家,接受带锁货的挂单几乎不会失败(除非过期),接集合报价则要过买家余额这一关;对卖家,两种成交路径在钱包弹窗里长得几乎一样,动手前多看一眼订单类型那行小字值得养成习惯。

撤回、到期和该核对的字段

撤回一份报价有两种写法:调用市场的取消函数(cancel)让这份签名订单永久失效,或者用批量取消把自己的报价一次性作废——Seaport 用递增计数器让旧签名整体过期。到期则是订单自带的 deadline 字段,时间一到,接受交易会直接失败。

接受集合报价的卖家侧,动手前值得核对四件事:订单里的合集地址是否与你合约一致、trait 条件是否真的匹配你的藏品、市场价与版税拆分后的实收金额、以及到期时间。报价数量、杠杆上限、冻结方式都可能随市场版本调整,本文口径以 2026 年 8 月的 OpenSea 开发者文档为准。集合行情波动大,本文只解释机制,不构成任何投资建议。