公牛是什么
公牛是 Solana 上的一个 NFT,以 Metaplex Core 资产的形式铸造,而且每头公牛都拥有一个钱包。持有这头公牛,你就持有一个跟着它走的链上账户:艺术是表层,底下的账户才是系统。这个合集有 7,777 头公牛,与 $ANSEM 绑定。
这一个基元就是整个设计。如果一头公牛就是一个钱包,那么它可以持有价值,让这份价值运转,有一天还能由一个自主代理来照料,而这一切都在你自己保管密钥的前提下进行。本文余下的部分,就是建立在这个基元之上的经济,按它生长的顺序:袋子、唤醒它的铁砧、它交易所在的食槽、它挖的井,以及它可以雇的农夫。
这一切都由你托管。公牛就在你的钱包里,袋子由 NFT 本身驱动,你和它们之间没有任何东西:没有托管方,没有存入,没有链下余额。之后的每一层都是可选的、叠加的。你可以拥有一头公牛什么都不做,也可以激活它、用它交易、挖一口井、雇一个农夫。没有任何东西是被迫的,也没有任何东西被汇集。
鞍袋
鞍袋就是你的公牛所拥有的钱包。一个 Metaplex Core 资产可以带一个 asset-signer PDA:一个由资产本身控制的程序派生账户,只能通过资产自己的权限来动它。那个账户就是鞍袋。它不是你要管理的另一把密钥;公牛就是密钥。
有三个特性让它成为地基。它是非托管的:袋子只通过公牛的持有者签名,项目方对它既没有密钥,也没有任何能动它的管理路径。它随资产一起走:卖掉公牛,袋子连同里面的一切,会按代币标准的规则在同一笔交易里转移,没有什么要迁移,也没有登记表要信任。而且它是可读的:这个 PDA 任何人都能推导出来,所以任何查看的索引器都能看到袋子里装了什么。
袋子像任何钱包一样持有 SPL 代币和未平仓的仓位。因为它的所有者是一个 PDA,而不是一把普通的密钥对,所以对袋子的操作是一条经由资产权限路由的链上指令,而不是来自你随身携带的密钥的一次签名。这在今天已经运作:持有者往袋子里存入、从袋子里收取,而公牛神的揭示已经在链上把资产铸造进特定的袋子里。
激活
一头刚出厂的公牛是惰性的:它只持有艺术和身份,别无其他。要让它运转,需要激活一次。激活是一笔链上支付,指明是哪头公牛,之后一块铁砧会被铸造进它的鞍袋。铁砧是这头公牛已经醒来的可见标记;那笔不可篡改地记在这头公牛名下的支付,就是证明。
有两点让激活不只是一笔费用。它随资产一起转移:因为铁砧住在袋子里,而袋子随公牛一起走,所以一头激活过的公牛卖出去时仍是激活过的。激活是资产的一项持久属性,不是一笔对它消耗掉的费用。而且它是一次性的、无状态的:付一次,永久有效,没有什么要续费,也没有订阅。
这道门绑在链上,不在网站里。因为袋子的指令是公开的,一道只在应用里执行的边界根本不是边界。激活由资产 Execute 事件上的一个生命周期钩子来强制执行,所以是一个程序批准或拒绝每一次袋子操作,而不只是某个界面替你构建的那些。(路线图:把铁砧放进袋子的通道复用了已经验证过的公牛神铸造。)
食槽
食槽是 Bulltoshi 的链上兑换场所:一条为 $ANSEM、$TBULL 以及牛群交易的那些币服务的 AMM 路由。报价来自池子的储备,而不是第三方数据源,所以你签下的数量就是链上会结算的数量。
每一笔兑换都付一小笔手续费,就像任何 DEX 一样。手续费归入国库,国库自行决定如何花它:资金投入、流动性,以及它选择做的社区分发。它从来不是欠持有者的收益。
井
井是一头公牛在自己的鞍袋里挖出的一个流动性仓位:一个在 Meteora DLMM 上的集中流动性仓位,由袋子的 PDA 拥有。机制是普通的 DeFi;所有权才是重点。
你用自己的资产给井注入资金,只有你能把它取出,而它赚到的交易手续费归你,因为这个仓位是你的。项目方在经济上的触碰,是一笔只在你操作时才收取的、按比例的小额负载,绝不是对一个休眠仓位的持续抽取。这是标准的 LP 机制,不是项目方的派发。袋子不再是一个静态的容器,而成为一个你持有并掌控的仓位。
一个 DLMM 把流动性按离散的价格箱来定价。每个价格箱与相邻箱之间是一个固定的几何步长,而一个仓位是围绕活跃箱的一段连续的价格箱区间,活跃箱是当前交易中唯一赚钱的箱:
# a DLMM prices liquidity in discrete bins p_i = (1 + s)^i bin price; s = binStep / 10_000 range = [i_L .. i_U] a contiguous span of bins around active bin a # only the active bin a earns fees on the current trade
这笔按比例的负载是一组参数,只在你对仓位操作时应用,绝不是一种持续的抽取。用符号表示:
fee_in = λ_in · amount_in on add / dig fee_out = λ_out · amount_out on withdraw perf = φ · max(0, value_out - value_in) on realized gain # planned: λ_in = λ_out = 2%, φ = 20%, charged only when you act
一个集中的仓位会随着价格移动而漂出区间。跟着水走是一次原地再平衡:井移动去迎合市场,而不必平仓再开仓,所以没有新的仓位租金,也没有翻搅。今天这是你按下的一个按钮;下一节讲的就是能替你按它的东西。
一点提醒,直说了。一个集中流动性仓位是一种适用于震荡行情的收益工具,不是稳赢:在强趋势里,它的表现可能不如单纯持有那两种代币。井赚取手续费;它不承诺回报,本文也不暗示有回报。
农夫
一口需要手动看守的井,大多数持有者都会任由它漂移。所以一口井可以雇一个农夫:一个自主代理,它盯着仓位,当水移动时就跟上去,按某个时间表或某个触发条件替你再平衡。井从自己赚到的钱里付给农夫。
农夫不是一个由项目方指派并运行的操作者。它是你附在自己井上的一条规则,任何人随后都可以执行它,以换取一笔赏金。调用者干活并拿走赏金;项目方不持有任何签名密钥,不替你运行任何守护程序,也不对你的仓位行使任何裁量权。规则由你写,规则就是权限。
你在雇用时设定边界:价格带宽度、触发阈值、两次再平衡之间的冷却时间、方向、每次移动的最大滑点,以及对照一个独立参考的价格合理性检查。你可以随时更改或撤回这条规则。调用者是可替换的;规则是你的。
一条规则是一组守卫。只有当每一个守卫同时成立时,一次曲柄调用才能移动一口井,所以一个被攻破的或贪婪的调用者无法在坏价位、过于频繁或过远地再平衡:
# a crank may rebalance a well only when ALL guards hold |a - c| > N active bin drifted past N bins from center c now - t_last ≥ T_cool cooldown since the last rebalance elapsed |p_pool - p_ref| / p_ref ≤ ε pool agrees with an independent reference slippage(move) ≤ σ_max per-move slippage cap width ≥ w_min minimum band width
整个循环很小。对一口井的一次曲柄调用,用伪代码表示:
rule = (c, width, N, T_cool, σ_max, w_min, p_ref, ε, bounty) crank(well, rule): require now - well.t_last ≥ rule.T_cool a = active_bin(well.pool) require |a - rule.c| > rule.N require |price(a) - rule.p_ref| / rule.p_ref ≤ rule.ε new_range = (a - rule.width, a + rule.width) rebalance_in_place(well, new_range, max_slippage = rule.σ_max) pay(caller, min(rule.bounty, κ · pot_value(well))) well.t_last = now
赏金是有上限的,而且它取代了业绩费,不是叠加在其上。因为曲柄调用是无需许可的,它付给调用它的人,而不是付给项目方:
0 < bounty ≤ κ · V_pot κ small; replaces the 20% performance fee, paid to the caller, never to the project
代理里的“AI”是一个光谱,而安全的那一端先上线。一个确定性的守护程序(如果活跃区间漂移了一个设定的幅度,就把区间再平衡到以市场为中心、按你选定的方向)只执行你陈述的规则,自己不做任何决定。自适应策略代理是更晚、更重的一步。先做基于规则的农夫。(路线图。)
伙伴
鞍袋是可组合的:一个能持有 Solana 所能表示的任何东西的账户。以下是路线图上的更多方向。每一个都还很早,每一个都在链上、公开地构建,而且没有一个是承诺。
属于自己的一枚币
任何一头公牛都可以铸造自己的代币,一枚从这头公牛的钱包里、通过牛群已经在用的场所发行的 SPL 币。它与这头公牛绑定,由它的持有者发行,不是项目方下发的。
兽皮
像素艺术是用来穿的,兽皮采取的第一种形态是真正的服装:与一个服装伙伴一起制作,凭袋子来认领,这样实体的那件东西就在链上系回它出自的那头确切的公牛。在钱包里可证明,在街上认得出。
但一件服装只是第一个表面。一头有脸、有名字、有追随者的公牛是一个正在等待的品牌,而兽皮是它走进物理世界的那扇门:一个由它的持有者承载的标签,身份在链上确定,版本有限。每张兽皮去往何处,交由这头公牛和持有它的那双手决定。牛群有 7,777 张脸。其中有些会成为你认得的名字。
真实收益
再往后,一个鞍袋可以持有代币化的现实世界资产,比如国债或大宗商品,它们以美元计价而波动,而不是以一个 meme 币的手续费计价。设计是持有,不是交易:你自己通过发行方自己的通道取得资产,它留在你的袋子里,项目方从不汇集资金,也不居间交易。一条地平线,刻意画得很慢。
不变量
有几个特性贯穿以上每一层,无论下一条通道接进来的是什么。它们不是最后拴上去的免责声明;它们就是这个设计的形状。
- 自我托管
- 你的密钥持有你的资产。项目方对一个袋子、一口井或一个仓位没有任何管理路径。农夫是一条你设定、任何人都可以执行的规则,绝不是托管方,也绝不是项目方指派的操作者。
- 自主决定
- 你操作、注资、挖掘、设定规则、并撤回它。项目方构建工具;它不替你做决定,也不对你的仓位行使裁量权。
- 不汇集
- 没有哪一层会把持有者的资金汇集到项目方的控制之下。每个袋子都是它自己的账户。这就是一个带功能的钱包与一只基金之间的界线。
- 不承诺
- 这里没有任何东西是对回报的主张。公牛就是公牛。国库分发的任何东西都是它选择送出的礼物,不是它欠下的债。
没有人为了组建一个牛群去请求许可。网络就是这么回事。查看你的公牛。