Agent 指南
在 MurkFun 上,你只通过自己电脑上运行的 AI Agent 交易。本网站不能交易,不持有任何密钥,也从不要求你签名。
让你的 AI 来买
把这句话粘贴给能在你电脑上执行命令的 AI Agent(Claude Code、Codex、Cursor…)。只能聊天的 AI 做不到。
读 https://murk.fun/skill.md ,按步骤装好 MurkFun,然后从 Railgun 帮我买 0.1 BNB 的 <代币地址>。
上面这句话会让你的 Agent 去读技能文件,它会带着 Agent 完成下面的所有步骤。想手动操作,或想核对 Agent 在做什么,就按下面的步骤来。
1. 安装 MCP 服务
在你自己的电脑上,需要 Node 20 或更新版本,从 MCP 服务器的 GitHub 发布版安装。npm 前缀设在用户目录下(例如用 nvm)就不需要 sudo;所有文件都放在 ~/.murkfun 下。murkfun-mcp init 会创建一个随机的保险库密码文件(已有的会保留),下载并校验 0xbow 电路,并打印你的 MCP 客户端配置。重复运行是安全的。
npm install -g https://github.com/murkfun/murkfun-mcp/releases/latest/download/murkfun-mcp.tgz
murkfun-mcp init同一条命令也会把它更新到最新发布版。如果想从源码构建:
git clone https://github.com/murkfun/murkfun-mcp && cd murkfun-mcp && npm ci && npm run build && npm link服务器把你的密钥和票据保存在你电脑上的加密保险库中,让你的钱包为每笔订单签名,在本地生成零知识证明,并只把已签名、已证明的订单发送给中继。把 ~/.murkfun/passphrase 离线保存一份:没有它,加密备份毫无用处。
2. 接入你的 Agent
随时可以重新打印配置:
murkfun-mcp config claude-code
murkfun-mcp config json- Claude Code:运行打印出的
claude mcp add命令。 - Cursor、Claude Desktop 等客户端:把 JSON 合并进它们的 mcpServers 配置(~/.cursor/mcp.json、claude_desktop_config.json)。
- Codex:把同样的值写进 ~/.codex/config.toml:
[mcp_servers.murkfun]
command = "murkfun-mcp"
args = []
env = { MURKFUN_PASSPHRASE_FILE = "<...>", MURKFUN_RELAYER_URL = "<...>", MURKFUN_DEPLOYMENT = "<...>" }如果打印出的配置里有尖括号中的值(MURKFUN_RELAYER_URL、MURKFUN_DEPLOYMENT),把它换成真实的值。如果你的客户端找不到 murkfun-mcp(它启动服务器时不带你 shell 的 PATH,用 nvm 时常见),用 murkfun-mcp config json --absolute 打印配置。然后重启 Agent,让它加载 murkfun 工具。
你的 Agent 的客户端不支持 MCP?它可以把每个工具当作命令行命令来运行(你的 Agent 如何与 MurkFun 对接)。
3. 添加技能文件
SKILL.md 告诉你的 Agent 安装步骤、操作顺序和硬性规则。它是给 AI 读的文件:skill.md(也在 /skills/murkfun/SKILL.md)。Claude Code 用户:
mkdir -p ~/.claude/skills/murkfun
curl -fsSL https://murk.fun/skill.md -o ~/.claude/skills/murkfun/SKILL.md4. 首次运行
- MurkFun 需要 SPACE ID Agent ID:在 Binance Agentic Wallet 中领取一个(币安 App → 钱包 → AI agent / Agent ID)。然后安装它的命令行工具(
npm install -g @binance/agentic-wallet,再运行baw auth signin),在币安 App 中开启开发者模式,并在 MCP 配置中设置MURKFUN_SIGNER=baw:之后由代理钱包为每笔订单签名(它没有可导出的私钥)。 setup会创建保险库、显示你的钱包地址,并让钱包对 MurkFun 种子消息签名一次。这个钱包是公开的,与你关联;它从不发送 MurkFun 交易。你的化名来自这个签名:你的钱包就是你的备份。- 保护好钱包。如果是代理创建的,请立即用
export_recovery保存它的私钥(一个明文文件;把它移到离线位置并从电脑上删除)。你也可以使用自己的钱包。 - 等到
status显示 holderSet.inAcceptedRoot: true。新的 Agent ID 持有者会分批加入 MurkFun 的持有者集合,无需你发送任何交易,并在其批次发布 1 小时后即可交易。 - 用 Railgun(默认)时,钱包不需要 BNB:它只负责签名。用 0xbow 时,向钱包发送 BNB:你想存入的金额,外加约 0.003 BNB 的 gas。
5. 买入:两个隐私池
Railgun(默认)
- 把 BNB 存入 BNB Chain 上的 Railgun 钱包(公开交易;Railgun 存入和取出各收 0.25%)。新存入的资金要等 Railgun 约 1 小时的等待期结束后才能使用。
buy返回一笔任意金额、已附证明的直接买入订单,以及支付它的 Railgun 交易:解除屏蔽到 MurkFun 的 Railgun 适配器,并绑定到这笔订单。你用 Railgun 钱包或 SDK 构建并证明它,再由submit_railgun交给 MurkFun 的中继发送,所以买入不是由你的任何钱包发出的。- Railgun 只解除屏蔽这一笔金额,买入在同一笔交易中完成;其余部分保持屏蔽。在曲线阶段,MurkFun 只接受来自白名单上的隐私池合约(MurkFun 的 0xbow 适配器和 MurkFun 的 Railgun 适配器)的 BNB,所以普通钱包无法充值或买入;毕业后,代币也会在 PancakeSwap 上公开交易。
0xbow Privacy Pools
公告(2026 年 11 月 8 日):0xbow 在 BNB Chain 上的 ASP 目前不批准新存款,请用 Railgun。已经存进 0xbow 的 BNB 是安全的,随时可以用 0xbow 的 ragequit 取回到你的钱包。
- 从钱包
deposit至少 0.02 BNB(公开交易)。0.5、1 或 5 BNB 这样的整数金额更容易混在别人的存款里。 - 等待 0xbow 的 ASP 批准存款。这可能要几个小时甚至更久,ASP 也可能根本不批准某笔存款:如果你想尽快买入,请用 Railgun。Agent 每 5–10 分钟检查一次
status。 - 每次带 source "note" 的
buy一步就从票据里取出你选定的金额:MurkFun 的 0xbow 适配器正好取出这笔金额,并在同一笔交易里用它买入。找零留在 0xbow,下次再买。不要正好买入你存入的金额。
两种方式下,卖出、提现、上限和费用都一样。详见如何运作和隐私。
6. 交易和提现
- 每次买入或卖出前,你的 Agent 会告诉你金额、预计成交、滑点上限(默认 3%)和中继费,等你确认后再执行。
- 代币在曲线阶段时,一个代号最多持有 1% 的供应量。卖光曲线的那笔买入正好拿到剩下的部分,并在同一笔交易里完成毕业;用不完的 BNB 留在该代币的余额里。如果毕业失败,买入要等到有人用
graduate重试;市场未暂停时,卖出和提取照常可用(一笔卖出会让曲线重新开放)。 - 卖出所得留在 MurkFun 里,作为该代币的 BNB 余额。
withdraw_bnb除市场暂停期间外随时把它付到你给的地址;withdraw_token毕业后可用。用新地址更隐私。请使用你控制的地址:合约只拒绝部分会让资金丢失的目标地址(MurkFun 合约或代币、WBNB),并非全部(例如销毁地址),所以工具会拒绝所有这类地址;对其他任何合约地址(例如 Safe),工具会先请你确认。
你的 Agent 遵守的安全规则
- 它从不索要、打印或发送种子、钱包私钥、MurkFun 消息的签名、口令、恢复文件或保险库。没有任何 MurkFun 工具会返回它们。切勿在其他任何地方签署“MurkFun seed”消息:那个签名就是你的 MurkFun 密钥。
- 每次存入、买入、卖出、提现或发币前,它都会确认金额、代币和目标地址;不经你同意绝不调高滑点。
- 它绝不覆盖已有的保险库,每次只执行一个 MurkFun 操作。
- 它只提现到你给的地址,绝不提到 MurkFun 合约、MurkFun 代币或 WBNB;只有在你确认某个合约地址属于你之后才会发往该合约,并提醒你:存入、提现地址和时间都是公开的。
MCP 工具
| 工具 | 作用 |
|---|---|
setup | 创建加密保险库,检查钱包是否持有 SPACE ID Agent ID(MurkFun 从不铸造它),并让钱包对 MurkFun 种子消息签名一次。你的化名来自这个签名,所以钱包就是你的备份。不会发送任何东西:没有注册。 |
backup · export_recovery | 保险库的加密副本,以及一个含钱包私钥的明文文件(工具只返回文件路径)。 |
deposit | 仅用于 0xbow 买入:从钱包把 BNB 存入 0xbow(公开)。至少 0.02 BNB;整数金额(0.5、1、5 BNB)更不显眼。默认的 Railgun 不需要在这里存入。 |
status | 票据及其 ASP 审批状态、持仓、最近的订单。 |
list_launches · token_info | 新代币、价格、曲线进度、毕业后的场所,以及你自己的余额。 |
buy | 任意金额。从 Railgun 付款(默认:一笔已附证明的订单和支付它的 Railgun 交易,由 submit_railgun 交给中继发送),从已批准的 0xbow 票据付款(source "note";找零留在 0xbow),或从该代币在 MurkFun 里的余额付款(source "balance")。也可以用不超过某个 BNB 金额买入确切数量的代币,例如正好买到 1% 上限或曲线的终点。买入用不完的 BNB(确切数量买入,或卖光曲线的那笔买入)留在该代币在 MurkFun 里的余额中。 |
fund_pseudonym | 返回一笔已证明的订单(把 BNB 记入该代币的代号余额)以及支付它的 Railgun 交易(解除屏蔽到 MurkFun 的 Railgun 适配器)。在曲线阶段,MurkFun 只接受来自白名单上的隐私池合约(MurkFun 的 0xbow 适配器和 MurkFun 的 Railgun 适配器)的 BNB,所以只有在毕业后(代币也会在 PancakeSwap 上公开交易)才会返回普通钱包版本。本身不发送任何交易。 |
sell | 卖给曲线或 PancakeSwap 场所。所得留在 MurkFun 里。 |
withdraw_bnb · withdraw_token | 把 BNB 付出,毕业后可提代币,付到你给的地址(市场暂停期间不可用)。 |
graduate | 重试已售罄曲线的毕业:卖光曲线的那笔买入里的自动毕业失败时使用。任何人都可以调用。 |
order_status | 已提交订单的状态,以及失败原因。 |
upload_token_metadata | 把代币的图片和介绍放到 IPFS 上,由 MurkFun 负责 pin,发币不需要任何 pinning 账号。 |
create_token · claim_lp_fees · set_fee_recipient | 以开发者身份发币。发币就是你的首笔买入:在一笔交易里创建 + 买入,最多到供应量的 30%(平台的开发者上限,不由你设定),从 0xbow 或 Railgun 付款,只付一次中继费,这样没人能抢在你之前买入。领取手续费、修改手续费接收地址。 |
recover_from_wallet | 钱包再次签名:相同的化名、相同的 0xbow 票据,在新机器上从链上找回。 |
restore · recover | 从备份或恢复文件中找回保险库。 |
排错
大多数报错并不是 MurkFun 的服务器出了问题。它们来自五个地方:你自己的配置、你的钱包、MurkFun 的中继、链上 MurkFun 的合约,以及隐私池。
你自己的配置,由你电脑上的 MCP 服务器检查(什么都没有发送)
| 报错包含 | 怎么办 |
|---|---|
set MURKFUN_DEPLOYMENT | MCP 配置里没有 MURKFUN_DEPLOYMENT 或 MURKFUN_RELAYER_URL 的值,而软件包的网络文件里这一项是占位符。把真实的值填进配置;绝不要填猜的值。 |
cannot decrypt the vault | MCP 配置里的密码文件不对。修改配置;绝不要新建保险库。 |
has no BNB for gas | 向钱包发送约 0.003 BNB(用于 0xbow 密钥库和存款)。 |
NO_AGENT_NFT | 这个钱包没有 SPACE ID Agent ID。在币安 Agentic Wallet 中领取一个;MurkFun 无法铸造它。 |
NOT_A_HOLDER_YET | 该钱包还不在 MurkFun 的持有者集合中:新的 Agent ID 持有者会分批加入,批次发布 1 小时后可用。没有签名或发送任何东西;请稍后再试。 |
BELOW_MINIMUM | 提高金额:存款至少 0.02 BNB,从 0xbow 付款的买入必须高于中继费。 |
NOTE_TOO_SMALL | 没有哪张 0xbow 票据有这么多。最多买最大那张票据的金额、把买入拆开,或者再存一些。 |
OVER_CAP | 超过了曲线阶段每个代号 1% 的上限。少买一些,或等毕业。 |
MARKET_PAUSED | 紧急暂停已开启:MurkFun 的所有操作都要等待(发币、买入、卖出、充值、毕业、提现、领取手续费)。余额原样保留;解除暂停后再试。 |
币安 Agentic Wallet(你钱包的命令行工具,什么都没有执行)
| 报错包含 | 怎么办 |
|---|---|
BAW_CONFIRMATION_REQUIRED | 需要在币安 App 里确认才能执行。修改限额或安全设置后,让你的 Agent 重试。 |
351802 | 开发者模式未开启或已过期:在币安 App 中打开它(Agentic Wallet → 设置 → 开发者模式)。 |
MurkFun 的中继(被拒绝的订单没有执行)
| 报错包含 | 怎么办 |
|---|---|
fee_too_low | 费用已经不够付 gas:gas 价格上涨了,或者这笔买入现在会买完曲线并同时支付毕业的费用(完成曲线买入的费用,是普通买入的好几倍)。Agent 会重新报价,并告诉你新的费用。 |
busy | 上一笔订单还在处理中。Agent 会先查 order_status,再重试。 |
broadcast_failed | 什么都没有发送。MCP 服务器已经把同一个订单重发了几次(中继过载、连不上或丢弃订单时也一样);稍后再试。 |
relayer_underfunded | 中继现在付不起 gas。什么都没有发送;稍后再试。 |
simulation_failed | 合约会拒绝这个订单,所以没有发送。原因跟在后面(见下表)。 |
链上:MurkFun 的合约拒绝了这笔交易(什么都没有花掉)
| 报错包含 | 怎么办 |
|---|---|
Slippage | 价格变了。重试一次;只有你愿意时才调高滑点上限。 |
PrivacyPoolRequired | 在曲线阶段,BNB 必须来自 MurkFun 白名单上的隐私池(Railgun 或 0xbow,各自通过 MurkFun 的适配器)。通过 Railgun 买入,或用 0xbow 票据买入。 |
WrongToken | 发币没有创建订单所指定的地址(期间平台条款已变更;还有 WrongRecipient、NotLaunchKey)。代理会用一笔新订单重新发币。 |
WrongNonce | 该化名的另一操作先上链了,或者该订单已被使用(还有 NullifierUsed、UnknownRoot、InvalidProof)。没有花费任何资金;代理会签名并证明一笔新订单。 |
WrongPrivacyPoolAmount | MurkFun 的 0xbow 适配器拒绝了与其订单不符的提取(还有 NotProcessor)。票据未被花费;代理会用一笔新订单重试。 |
curve sold out | 曲线已售罄,但自动毕业失败:买入要等到有人用 graduate 重试。卖出照常可用。 |
NotGraduated | 代币只有毕业后才能离开 MurkFun。继续持有,或者卖出。 |
隐私池(0xbow 或 Railgun)
| 报错包含 | 怎么办 |
|---|---|
WAITING_FOR_ASP | 0xbow 存入后的正常状态。没有花掉任何资金。请等待(可能要几个小时甚至更久),或改用 Railgun 买入。 |
PoolVault_ | 0xbow 的合约拒绝了这次取款(票据在此期间已被花掉,或某个根变了)。Agent 会先查 status,再重试。 |
Railgun | 新存入 Railgun 的资金要先在 Railgun 的等待期里停留约 1 小时,你的 Railgun 钱包才能花它。如果价格或上限挡住了一笔 Railgun 买入,整笔交易会回滚,什么都不会被解除屏蔽。 |
如果某个工具中途失败,Agent 会先调用 status 再重试:票据和余额都从链上读取。
备份与恢复
你的钱包就是你的备份:所有机密都派生自它对一条固定消息的签名。在新电脑上,按上述步骤安装并运行 recover_from_wallet:同一个钱包再次签名,你的化名、余额和 0xbow 票据就会从链上恢复。保护好这个钱包;持有其私钥的人可以签署订单,掌控你在 MurkFun 的资金。
你的 Agent 如何与 MurkFun 对接
- MCP 工具(首选)。你电脑上的 MurkFun MCP 服务为你的 Agent 提供上面这些工具。它把你的秘密保存在加密保险库里,所有证明都在本地生成,只发送已证明的订单。
- 同样的工具也能作为命令行命令使用,适合客户端不支持 MCP 的 Agent(Codex、Cursor、OpenClaw、脚本):
murkfun-mcp <tool> --arg value或--json '{…}'。同样的代码、同样的环境变量、同样的保险库、同样的 JSON 输出;出错时信息写到 stderr,退出码为 1。murkfun-mcp tools列出每个工具及其 JSON Schema。安全规则也一样:任何工具都不输出秘密,秘密只以文件路径传入、绝不写在命令行上,export_recovery 仍然需要 --confirm。同一个保险库上的调用一次只运行一个。 - 底层的 HTTP API。读取 API(
https://api.murk.fun/v1/launches?sort=new、/tokens/<address>、/tokens/<address>/trades)不需要任何密钥:行情数据可以直接从这里读。中继 API 只接受带有用你保险库生成的证明的订单:只能通过会生成证明的客户端使用,比如 MCP 服务。两者都在 API 页面里说明。
export MURKFUN_PASSPHRASE_FILE=~/.murkfun/passphrase
murkfun-mcp status
murkfun-mcp buy --token 0x… --bnbAmount 0.1
murkfun-mcp order_status --id …| 操作 | MCP 工具 | 命令行 | 变成 |
|---|---|---|---|
| 设置保险库 | setup | murkfun-mcp setup | 只有本地文件 |
| 票据、持仓、订单 | status, holders_lookup | murkfun-mcp status | 读取链上数据和你的保险库 |
| 存入 0xbow(仅用于 0xbow 买入) | deposit | murkfun-mcp deposit --amountBnb 1 | 一笔从你钱包发出的交易 |
| 发币(创建 + 你的首笔买入) | upload_token_metadata, create_token | murkfun-mcp create_token --name … --symbol … --metadataURI … --devFeeRecipient 0x… --bnbAmount 0.5 | 中继订单 privacyPoolLaunch + railgunLaunch |
| 只发币不买入 | create_token | murkfun-mcp create_token --name … --symbol … --metadataURI … --devFeeRecipient 0x… | 中继订单 launch |
| 用 Railgun 买入(默认) | buy, submit_railgun | murkfun-mcp buy --token 0x… --bnbAmount 0.1 | 中继订单 railgunBuy |
| 用 0xbow 票据买入 | buy | murkfun-mcp buy --token 0x… --bnbAmount 0.1 --source note | 中继订单 privacyPoolBuy |
| 用 0xbow 票据买入确定数量的代币 | buy | murkfun-mcp buy --token 0x… --tokens cap --source note | 中继订单 privacyPoolBuy |
| 用该代币的余额买入 | buy | murkfun-mcp buy --token 0x… --bnbAmount 0.1 --source balance | 中继订单 buy |
| 用该代币的余额买入确定数量的代币 | buy | murkfun-mcp buy --token 0x… --tokens 1000000 --source balance | 中继订单 buyExactOut |
| 只为买入报价,不发送 | buy | murkfun-mcp buy --token 0x… --bnbAmount 0.1 --dryRun | 向中继查询费用报价并读取链上数据;不发送任何交易 |
| 卖出 | sell | murkfun-mcp sell --token 0x… --percent 50 | 中继订单 sell |
| 提现 BNB | withdraw_bnb | murkfun-mcp withdraw_bnb --token 0x… --to 0x… | 中继订单 withdrawBnb |
| 提取代币 | withdraw_token | murkfun-mcp withdraw_token --token 0x… --to 0x… | 中继订单 withdrawTokens |
| 给代号充值 | fund_pseudonym | murkfun-mcp fund_pseudonym --token 0x… --amountBnb 0.5 | 中继订单 railgunFund |
| 领取手续费 | claim_lp_fees | murkfun-mcp claim_lp_fees --token 0x… | 中继订单 collectLpFees + claimDevFees |
| 修改开发者收款地址 | set_fee_recipient | murkfun-mcp set_fee_recipient --token 0x… --recipient 0x… | 中继订单 setDevRecipient |
| 重试毕业 | graduate | murkfun-mcp graduate --token 0x… | 中继订单 graduate |
| 行情数据 | list_launches, token_info | murkfun-mcp list_launches --limit 20 | 读取 API(或链上数据) |
| 订单状态 | order_status | murkfun-mcp order_status --id … | 向中继查询状态 |
| 备份 | backup, export_recovery | murkfun-mcp export_recovery --path … --confirm | 只有本地文件 |
| 恢复 | restore, recover_from_wallet, recover | murkfun-mcp recover_from_wallet | 只有本地文件 |
接口地址
行情数据:只读 API,不需要密钥,只有 GET,返回 JSON。基础地址 https://api.murk.fun/v1:
curl -s 'https://api.murk.fun/v1/launches?sort=new&limit=20'
curl -s https://api.murk.fun/v1/tokens/<address>
curl -s 'https://api.murk.fun/v1/tokens/<address>/trades?limit=50'
curl -s https://api.murk.fun/v1/tokens/<address>/holders
curl -s 'https://api.murk.fun/v1/tokens/<address>/candles?interval=5m'
curl -s https://api.murk.fun/v1/tokens/<address>/graduation
curl -s https://api.murk.fun/v1/stats
curl -s https://api.murk.fun/v1/params上传接口在同一个主机上:POST /v1/ipfs/image 和 POST /v1/ipfs/metadata 把代币的图片和元数据放到 IPFS(upload_token_metadata 会用到)。
中继:中继地址上的 GET /v1/info、GET /v1/quote、POST /v1/orders、GET /v1/orders/:id。每个订单都带有在你电脑上用你的保险库生成的零知识证明,所以下单要通过 MCP 工具(或对应的命令行),绝不是手写 HTTP 请求。
MCP 服务器使用的地址随软件包一起发布,在其 networks/bsc.json 中;murkfun-mcp network 会打印出来。全部路由和字段:见 API 页面。
BNB Chain 上的合约
BSC 主网(链 ID 56),部署于区块 132262524。源码已在 Sourcify 验证;链接打开 BscScan。
- MurkFunFactory0x11e02275559FEDd72a0B578cc5b4c0F766aCa25ASourcify
- MurkFunMarket0x9717126512c5a4D3b5c0E13421639ea80DACaa91Sourcify
- MurkFunOrders0xCc09A7772aDAf0586040a933b70B1248F432eb87Sourcify
- OrderVerifier0xfA99009F7c850294aDd481cD6764f60F547076b7Sourcify
- MurkFunDex0x69d0B74c1b6C835e212E6EDe9AfB1e7286DD3FF4Sourcify
- MurkFunInfinityHook0x833eAEe7102Ea77C5Bb0C6B2Fb3F64F9032B45e6Sourcify
- MurkFunLocker0xFD25D90f151193A795E4a9De6F0bBB9dD5AA32A8Sourcify
- MurkFunPrivacyPoolAdapter0x0242771ba1758554fa6C806d9219c7dF891c9879Sourcify
- MurkFunRailgunAdapter0x2ba9978Ba84dB605c1b6a7F0885f84Af340Ad249Sourcify
- MurkFunHolderRoots0xD59867DADC96202284Fa54d016C6d66a0adBaE24Sourcify
- BatchVerifier0x3BA574b3d102800c3E08E2F978A4d802C15b8C9ESourcify
自己核验
每笔订单都要证明自己属于的持有者集合,任何人只凭链上数据就能核对:github.com/murkfun/holder-roots 从合约的 Batch 事件重建整棵树,把每个根与 MurkFunHolderRoots 比对,按 SPACE ID 注册表审计整个集合,检查已部署的字节码就是它的源码,并能发送欺诈证明。按下面的命令安装并重建这棵树,或在持有者页面浏览这个集合。
npm install -g https://github.com/murkfun/holder-roots/releases/latest/download/murkfun-holders.tgz
murkfun-holders tree