Hedgefun Protocol v1
首个面向代币化美股的策略代币发射台。
挑一只美股,写一条策略,发一个 Hedgefun。
挑一只票,写一条策略——五个数字——然后发出去。换回来的是一个代币,它的国库按你的策略永久交易那只真股票,并把赚到的利润 拿去回购代币、当场销毁。只要它还在跑,每一笔卖出都分给创作者一份。
不需要出一分本金:全部供应量单边种进池子,永久留在那里。没有管理人、没有 keeper、没有钥匙,也不需要谁批准——你的 策略在任何人买之前就公开,发射那一刻冻死。
发射出来的那个东西叫 Hedgefun。合约里管它叫 strategy(strategies(id)、strategyCount),所以 ABI 和对接页上是
那个词;在这一页里,策略是那条规则,Hedgefun 是跑这条规则的那个东西。
第一次来?看图懂机制把整台机器画出来,并让一条策略走过六种行情;谁做什么讲持币人、交易者、创作者和 keeper。
公开发射已经开了:Robinhood Chain 上 12 只股票已上架,第一个 Hedgefun 已经在跑。2026-09-22 链上读到 publicLaunch 为
true、strategyCount 为 1。地址在下面。
关键事实
- 代币在自己的 Uniswap V4 池里对着它那只股票交易。
- 买入税销毁。 卖出税以股票结算,供养国库、创作者和协议。
- 发射流动性是永久的。没有毕业,也没有迁移。
- 已发射的代币没有 owner:策略、税率、流动性都定死。协议方保留 四项划死边界的权力,没有一项够得到某个国库的钱或它的策略。
- 持币人和国库之间的联系是回购并销毁。这里没有份额,所以没有净值、也没有赎回。
台面在 hedgefun.trade,用一个独立注册的域名——这样「人们在上面签交易的应用」就不会和
「陌生人取的代币名字」共享同一个浏览器 origin。hedgehood.app�5� 是介绍它并链接过去的页面。
我们运营的域名只有 �4�、hedgehood.app、docs.hedgehood.app,其他穿着这套设计的站点,拼写再接近也是
别人的。
部署地址
链 4663,Robinhood Chain。从提交 3dc07eb 部署并冻结。
核心合约
| 合约 | 地址 | 干什么的 |
|---|---|---|
HedgeFunFactory | 0x58F6Ced8d02cD2567f1458801440Bc4eb67fA961 | 发射策略,并保存每一个策略的记录(strategies(id)) |
HedgeFunHook | 0x2A16d0973385952cFBE750D37f803d0958472844 | 所有 Hedgefun 的池子共用的那一个 Uniswap v4 hook:收税,以及税的归集 |
HedgeFunTradeRouter | 0xb281F7D91325A3A386A00cA0F6010BC8B1491c8C | 用 USDG 买卖某个 Hedgefun 的代币 |
HedgeFunLaunchRouter | 0x470F5DeB0897118F6575F72183781C6a0610E1FA | 一笔交易里完成发射 + 首买或注资 |
TradingCalendar | 0xFE9E85f0C258Fc2757eB6Acd1ca032Ec860487F5 | 交易日历,也是急停闸 |
工厂内部调用的 TreasuryDeployer 和 TokenDeployer 在对接那页,连同部署提交和核对情况。
治理
| 地址 | |
|---|---|
| 协议多签(Safe,3/4) | 0x2910117dd2cB431173Ae9Fb6eAF30726321d1693 |
每个 Hedgefun 各自创建的
从 factory.strategies(id) 读,返回 (token, treasury, hook, stock, creator)。第一个:
| 地址 | |
|---|---|
代币(HedgeFunToken) | 0xF5501c0D85992dD59371e15e3e7b60654ebaF332 |
它的国库(HedgeFunTreasury) | 0xc21873529515990C80BACe0931141e6B9D5A4fe0 |
已上架的股票
12 只,每只都带着上架时定死的预言机和 V3 池。2026-09-22 链上核对过。
| 股票 | 股票代币 | 价格预言机 |
|---|---|---|
| NVDA | 0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC | 0x03c77f527Aa1B0B304602e3fB9Ac994dd1c157f8 |
| SPCX | 0x4a0E65A3EcceC6dBe60AE065F2e7bb85Fae35eEa | 0xC109426706b9D01719ED82e8cd027fA91fBcdC0b |
| CRCL | 0xdF0992E440dD0be65BD8439b609d6D4366bf1CB5 | 0x3bd2c093948D38A5eC2D945C5b065e5Db89aaB36 |
| GOOGL | 0x2e0847E8910a9732eB3fb1bb4b70a580ADAD4FE3 | 0x15400359B0D14B4151FAe80b837abF3fA1977256 |
| AMZN | 0x12f190a9F9d7D37a250758b26824B97CE941bF54 | 0xb34d278D2c792B7C48252C5eB8130Db45e35294e |
| GME | 0x1b0E319c6A659F002271B69dB8A7df2F911c153E | 0x7548A343D06E45507Dd8F546D9d9Fdf684575ecE |
| META | 0xc0D6457C16Cc70d6790Dd43521C899C87ce02f35 | 0x699E34068b8975bE113eD5fF12e429c69BCf1011 |
| USAR | 0xd917B029C761D264c6A312BBbcDA868658eF86a6 | 0x02dE419166CED89fc9FCe2687CdBcBbc9eDe2612 |
| MSTR | 0xec262a75e413fAfD0dF80480274532C79D42da09 | 0x19d0328F3152d1361db7B3Dd7708Cc36A779d612 |
| AMD | 0x86923f96303D656E4aa86D9d42D1e57ad2023fdC | 0xc809bDf7E31E4830de2b03e6f809869Fb99f2246 |
| MU | 0xfF080c8ce2E5feadaCa0Da81314Ae59D232d4afD | 0x4D15A4A1028f001800774A3d2DC31d77945399a4 |
| INTC | 0xc72b96e0E48ecd4DC75E1e45396e26300BC39681 | 0xd399113f3196044A001614Ca9dda9cD8c9424264 |
每一行就是 listings(stock),它同时还返回 V3 池和开盘价——请从工厂读,别从这页抄。
已发射
CRCLGRID —— Hedgefun CRCL Range Grid
第一个,由协议多签于 2026-09-22 08:48 UTC 发射,区块 69,523,800。
CRCLGRID 是平台发起的首个测试。我们把这次启动配置视为一次失败的尝试:发射时没有配置双边流动性, 国库也没有预先注入 USDG 抄底储备。
按这只策略的配置,国库需要先等某个已记账的股票 lot 达到 +20% 的第一档止盈位并完成卖出,才能将收回的本金 转成 USDG 储备。在此之前,即使出现 15% 的下跌,国库也没有资金抄底。由于不设止损,如果始终没有 lot 达到第一档止盈位,也没有额外注入 USDG 储备,策略就可能永远不执行股票卖出或抄底买入,完全错过市场底部。
这里说的是国库策略的买卖限制;持有人在代币池里卖出 CRCLGRID,并不以达到第一档止盈位为前提。
| 代币 | 0xF5501c0D85992dD59371e15e3e7b60654ebaF332 |
| 国库 | 0xc21873529515990C80BACe0931141e6B9D5A4fe0 |
| 股票 | CRCL,0xdF0992E440dD0be65BD8439b609d6D4366bf1CB5 |
| V4 pool id | 0xfe98797b4dc2e5008712f812f3d90acba5adb216f8aa32e412fa377fb90b0b64 |
| 发射交易 | 0x9a0c0240e9d2172440b70968294896a2b236e42ebf717fe781262b5666a1ca82 |
| 税 | 两边各 10%,现在是平常税率 |
| 策略 | +20% 止盈一档、+40% 第二档,跌 15% 用储备的 20% 抄底,不设止损——每个 lot 都卖在成本之上 |
| 过期带宽 | 10 bps/小时,也就是 owner 给 CRCL 设的上限 |
2026-09-22 链上读到:供应量 999,020,555 / 1,000,000,000——已经烧掉 979,444 枚;国库有 1 个 lot、0.068 CRCL,
health() 为 true,CRCL 报 95.68 USDG。这些数字请实时读链,别从这页抄。
一次发射怎么走
1 · 挑一只已上架的股票。 预言机和池子跟着上架一起给定,这正是价格没有任何参与方能推动的原因。
2 · 写策略。 名字、符号、税率、你自己那一份,外加五个数字:tp1、tp2、dip、stop、lotBps。供应量、开盘价、
执行边界和协议抽成由工厂定死。
3 · 发射。 一笔交易部署代币和国库、开出 <token>/<stock> V4 池,把全部供应量种进去。launch 带着 predict
返回的哈希,所以你拿到的就是你看到的那份报价。
4 · 同一笔交易里还可以顺手做完:你自己的第一笔买入、给国库第一批股票、注入 USDG 抄底储备、写代币页面(logo、描述、 五个链接)。进了国库的东西就留在国库里。
飞轮
五个站,一个圈。有人交易这个代币;每笔成交都抽税;卖出那边的税去买真股票,买入那边的税直接烧掉;你的策略打理这些 股票;利润把代币买回来烧掉;代币比刚才更少了。然后又有人来交易。
谁都能当 quant。 你需要的是对一只股票的一个看法,外加五个数字把它表达出来。策略在任何人买之前就公开、发射即冻死 ——这正是陌生人敢下注的原因。
跑得好的策略会回报写它的人。 每一笔卖出都分给创作者一份,用那只股票结算,永久。烧供应、让盘面热起来,轮子就一直 在付钱给写策略的那个人。
同一个循环,接线版
两处销毁,两个来源:买入的税当场烧掉;而一笔赚钱的卖出,烧的是国库先花钱买回来的代币。
税
| 用什么收 | 去哪 | |
|---|---|---|
| 买入 | 代币 | 销毁,扣掉 0.5% 给调用 sweep 结算的人 |
| 买入,开盘前 3 秒 | 代币 | 99% → 66% → 33% → 平常税率,多出来的部分和其余一起烧 |
| 卖出 | 股票 | sweep 小费 · 协议 · 创作者 · 国库 |
| 卖出,开盘时与每次回购之后 | 股票 | 同样的分法,税率尖峰后线性衰减回平常值 |
两件前端必须做对的事:
- 报实时税率——该池的
buyRateBps/sellRateBps。开盘那几秒,平常税率会差出多达 99 个百分点。 - 把发射者拿走的量显示出来。 发射交易里的买入豁免窗口、也没有上限:在冻结版合约上实测,花 80,000 股票以平常税率拿走 约 90% 的供应量,而同一秒里陌生人的同样买入要付约 1%。这个数字该写在页面上。
发射窗口把开盘的延迟竞赛变成了一场三秒的降价拍卖。
exact-output 只在「按平常税率买入」时接受:税收在进来的股票上并做毛额换算,使整条路线成本相同。卖出只走 exact-input ——V4 只对未指定的那条腿收税,而 exact-output 卖出时那条腿是输入,在那里收税等于把本该进国库的税烧掉。
协议费,以及它和 $HEDGE 的关系
协议靠跑在它上面的东西赚钱。这里就是卖出税里的一条线:扣掉 sweep 小费之后,其中 20% 归协议,用股票结算,剩下的在创作者 和国库之间分。买入不给协议钱——买入的税是烧掉的。
这一份付给工厂上的 protocol 地址,链上读出来是 0x2910117dd2cB431173Ae9Fb6eAF30726321d1693——也就是持有工厂的那个多签。
协议收入进的是协议国库,不是公司钱包,也不是任何一个发射的国库。
$HEDGE 是另一个锅,而且会一直是。 $HEDGE 的交易税照旧按它自己那页写的方式发给 $HEDGE 持币人。Hedgefun 的 任何一次发射都不给 $HEDGE 持币人发钱,$HEDGE 的税也不给 Hedgefun 一分钱。两笔收入、两拨人,中间没有管道。
协议国库拿这笔钱做什么,是一个决定,不是一个机制。赚得够多的话,回购 $HEDGE 是桌上的选项——由多签来做、公开地做、 等数字撑得起的时候做。链上没有任何合约把 Hedgefun 的收入导给 $HEDGE,没有时间表,这里也不承诺回购一定会发生。
策略
卖出税以股票进来,按预言机价记成一个 lot。之后全是机械的,而且每一步都是公开调用,谁调用谁从成交里拿赏金:
| 调用 | 做什么 |
|---|---|
book() | 把到账的股票按当前预言机价记成一个有成本的 lot |
takeProfit(lot) | 到「成本 + tp1」卖一部分,到「成本 + tp2」卖掉剩下的。本金变回 USDG,利润留在股票里 |
stopLoss(lot) | 创作者设了才有:在成本之下卖出,不销毁代币 |
buyDip() | 比上次卖价低了 dip 之后,花掉部分储备买股票,记成新的 lot |
buyback() | 用累积利润在代币自己的池子里买回代币并销毁 |
一个 lot 卖在自己的成本之上,唯一的例外是创作者自己设的止损。所以已实现利润始终为正,行情横着的时候国库是等,而不是 一路卖下去。
没人管着,它为什么还能转
没有 keeper,也没有钥匙。上面每一个调用都对所有人开放:它自己拿预言机的价格对触发条件,要么执行,要么返回 false。所以
问题从来不是「谁有资格来跑这条策略」,而是「谁先冲上去」——答案是想拿赏金的那个人:
| 调用 | 赏金是什么、用什么付 |
|---|---|
takeProfit | 抽利润的一份,用股票付 |
stopLoss | 抽成交额的一份,用 USDG 付——止损没有利润可抽 |
buyDip | 抽花出去那笔钱的一份,用 USDG 付,而且是从花的钱里扣,不是从报价里扣 |
buyback | 抽买回来那批代币的一份,用代币付,剩下的全烧 |
| hook 的 sweep | 另算一份小费,抽这次 sweep 分出去的量 |
这一份是 bountyBps:上线值 0.5%,合约上限 2%。book() 本身不付钱——它是让那些付钱的调用成为可能的免费调用,所以
一般跟在同一个 bundle 里顺手做掉。
价格到了目标,那笔交易就突然变得值钱,于是有人会去发它;价格差得远,调用就返回 false,代价只有一点 gas。整个调度器就
是这么回事——没有东西可以暂停、没有人需要被雇、也没有钥匙可以丢。而且调用的人挑不了价格:成交是在预言机推出来的边界内
对着池子打的,他能选的只有什么时候去问。
tp1 和 tp2 没有上限。定成本的 100 倍,就意味着国库只在那个价才卖——在它触发之前没有利润、没有回购、没有销毁,抄底储备
也没有东西可补。看一个发射的故事之前,先看它的止盈档。
国库从零开始,靠换手长大:股票作为卖出税进来,USDG 来自已实现利润,所以抄底排在第一次止盈之后。创作者想让它第一天就有
弹药,直接打进去就行:股票进来是未入账状态,任何人调 book() 入账;USDG 进来就是抄底储备。它会一直留在国库里。
一笔卖出成交到「预言机价减滑点上限」允许的程度:池子自己算深度,lot 只交出实际卖掉的部分,单次调用最多提供 owner 按上架 逐个设定的一个卖出块。
三个数字,各自量的是什么
一次发射会显示三个看起来很像的数,而它们各自是从不同地方量出来的。
市场 FDV——池子的边际价格 × 一个标明口径的供应量。开盘 FDV 是一个用股票计价的发射参数:默认供应量 1,000,000,000
枚,NVDA 的上架开盘价是每枚 4.42e-8 股,所以 NVDA 上的发射开盘在 44.2 股 NVDA——在 NVDA 报 226.14 USDG 那一刻约合
$10,000,并且随股价一起动。说清用的是「已发行」还是「已发行减已销毁」,并且销毁只扣一次。
池内股票——这个 Hedgefun 自己的池子现在持有多少股票,外加一个标明价格来源和时间的参考值;代币那一侧按数量列在旁边。单池
数字要从池子自己的状态算:这条链上所有 V4 池的余额都放在共享的 PoolManager 里,balanceOf(PoolManager) 是所有池子之和。
真卖能拿到多少,取决于规模、价格在区间的位置、滑点和卖出税。
国库资产——国库实际持有的股票和 USDG,拆成本金、已实现收益、下一次回购可用额度。这三块是同一笔钱的不同阶段,所以并排 列出而不是相加;池内资产和国库资产也是两个口袋。国库估值除以供应量不是赎回价——国库通往持币人的路是回购并销毁。
读不到的数字就写「未获取」,并带上价格来源、读取时间和是否过期——这里的喂价是 24/5 的,工作日傍晚「过期」是正常状态。 演练里的数字只放在带日期的示例里。
两个池子,两件事
代币自己的池子永远是 Uniswap V4,挂在共用的 hook 上。国库的股票腿走 Uniswap V3,并用 10 分钟 TWAP 印证现价——V3 保留了休市时定价需要的观测值,而 observation ring 短到撑不住窗口的池子会在构造时被拒绝。
所以上架跟着 V3 的深度走,这也是第一批只有 12 只而不是整个名单的原因。随着各自的场所达标,会有更多股票上架。
代币一周七天都在交易,股票腿跟着开市时间走
新进来的股票在下一个开盘按开盘价入账。某些上架允许在休市期间做有限度的工作,靠的是过期带宽:创作者在发射时从 0 选到
owner 为该股票设的上限。带宽放宽的是「现价距离上一次 Chainlink 打印可以有多远,而国库还继续工作」,成交仍然按预言机推出来
的价格边界执行——所以带宽更宽买到的是容忍度,不是更好的价格。它和策略其余部分一样在发射时冻结。
三个价里写的每一条都适用:RHxxx / USD 命名、答案里已经含了乘数、24/5、公司行动期间的 oraclePaused()。
预言机对这些全部失败关闭。
留在原地的流动性
V4 把流动性仓位键在「谁调用的、哪两个 tick、什么 salt」上。种池那一笔的调用者是工厂自己,在它自己的回调里,而工厂的字节码 里没有任何名字的函数会在同一个 key 上再调一次。这点对着真实的 V4 PoolManager 验证过:把工厂用的精确 tick 和流动性数值 直接交给一个测试合约,仓位照样留在原地。对创作者如此,对协议方如此,对所有人都如此。
协议方保留了什么
工厂的 owner 是一个 Safe。对已发射的 Hedgefun,它保留四项权力:
- 通过交易日历停掉交易,用于任何策略预测不到的休市(国葬、飓风)。它可以让一个 Hedgefun 在某一天停止交易,而它交易的价格始终 是预言机的价格。
- 改自己那个收款地址(某个池的协议收款)。自己的钱,无延迟。
- 改一个已经消失的创作者的收款地址——必须先在链上提案、14 天后才生效;创作者一个调用就能否决,并封掉新提案 180 天。 那个调用同时也是「我还在」的证明。
- 把国库的投票权指给一个受托人。 它不移动任何资产,也碰不到规则。这是为「某个发行方开放委托接口的那一天」预留的: 股票代币可以被发行方升级,而已发射的国库不能——出生时没留的舱门,以后永远加不上。
对将来的发射,owner 还决定:上架哪些股票、工厂默认值、每只股票的带宽上限、执行闸门与卖出块、哪些外围合约可以代创作者 发射、以及是否开放公开发射。这些都只作用于还没发生的发射。代币的页面——logo、描述、链接——属于发射它的那个地址。
路线图:持币人去投国库手里那些股份的票
投票席位在 v1 就存在,而且它的归属是实时从工厂读的,所以它可以变成一个「由该代币持币人选受托人」的合约——不需要改动 任何国库,也不需要迁移任何已经发射的东西。v1 里留下它,为的就是这一天。等哪个发行方为代币化股票开放委托接口,它就生效。
它管的是股票自己的公司治理:国库持有的那些股份怎么投票。国库的钱、它的策略、它的回购都在发射时定死,而持币人和国库 之间的联系,依然是回购并销毁。
你在承担什么
-
国库是单只股票的多头。 那只股票动,它就干活;不动,它就等。
-
整套东西靠换手供养。 有人交易,才有税进国库、才有销毁。
-
止盈定得高就卖得少,销毁可能在很长一段时间里很稀疏。
-
股票代币可以被发行方升级,发行方能暂停或拉黑转账,而国库的持仓依赖这个代币。
-
发射者的第一笔买入不限量。 买之前先看他拿走了多少。
-
评审过,审计进行中。 九轮内部评审加两轮外部评审,没有遗留的 Critical / High / Medium,一千多个测试以及对真实链上 状态的 fork 测试;审计报告还没公开。hook 和已发射的 Hedgefun 上线即不可变。
-
一次发射不代表任何人的背书——不代表该股票的发行方,也不代表协议方。任何人都可以用任何名字在任何已上架的股票上发射。
-
法律定性未评估。 一个国库会累积代币化股票的代币,还没有经过律师审阅。
-
它不对所有人开放。 Hedgefun 对美国人士、受全面制裁地区,以及在当地从事此类交易属违法的地方关闭——见 谁不可以用。
这是一个界面,不是投资建议,这里的任何内容都不构成出售要约或购买邀请。尽管名字里带 fun,Hedgefun 不是基金:没有份额、 没有净值、不能赎回、没有管理人。见使用条款。