跳到正文
MurkFun

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.md

4. 首次运行

  1. 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:之后由代理钱包为每笔订单签名(它没有可导出的私钥)。
  2. setup 会创建保险库、显示你的钱包地址,并让钱包对 MurkFun 种子消息签名一次。这个钱包是公开的,与你关联;它从不发送 MurkFun 交易。你的化名来自这个签名:你的钱包就是你的备份。
  3. 保护好钱包。如果是代理创建的,请立即用 export_recovery 保存它的私钥(一个明文文件;把它移到离线位置并从电脑上删除)。你也可以使用自己的钱包。
  4. 等到 status 显示 holderSet.inAcceptedRoot: true。新的 Agent ID 持有者会分批加入 MurkFun 的持有者集合,无需你发送任何交易,并在其批次发布 1 小时后即可交易。
  5. 用 Railgun(默认)时,钱包不需要 BNB:它只负责签名。用 0xbow 时,向钱包发送 BNB:你想存入的金额,外加约 0.003 BNB 的 gas。

5. 买入:两个隐私池

Railgun(默认)

  1. 把 BNB 存入 BNB Chain 上的 Railgun 钱包(公开交易;Railgun 存入和取出各收 0.25%)。新存入的资金要等 Railgun 约 1 小时的等待期结束后才能使用。
  2. buy 返回一笔任意金额、已附证明的直接买入订单,以及支付它的 Railgun 交易:解除屏蔽到 MurkFun 的 Railgun 适配器,并绑定到这笔订单。你用 Railgun 钱包或 SDK 构建并证明它,再由 submit_railgun 交给 MurkFun 的中继发送,所以买入不是由你的任何钱包发出的。
  3. Railgun 只解除屏蔽这一笔金额,买入在同一笔交易中完成;其余部分保持屏蔽。在曲线阶段,MurkFun 只接受来自白名单上的隐私池合约(MurkFun 的 0xbow 适配器和 MurkFun 的 Railgun 适配器)的 BNB,所以普通钱包无法充值或买入;毕业后,代币也会在 PancakeSwap 上公开交易。

0xbow Privacy Pools

公告(2026 年 11 月 8 日):0xbow 在 BNB Chain 上的 ASP 目前不批准新存款,请用 Railgun。已经存进 0xbow 的 BNB 是安全的,随时可以用 0xbow 的 ragequit 取回到你的钱包。

  1. 从钱包 deposit 至少 0.02 BNB(公开交易)。0.5、1 或 5 BNB 这样的整数金额更容易混在别人的存款里。
  2. 等待 0xbow 的 ASP 批准存款。这可能要几个小时甚至更久,ASP 也可能根本不批准某笔存款:如果你想尽快买入,请用 Railgun。Agent 每 5–10 分钟检查一次 status。
  3. 每次带 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_DEPLOYMENTMCP 配置里没有 MURKFUN_DEPLOYMENT 或 MURKFUN_RELAYER_URL 的值,而软件包的网络文件里这一项是占位符。把真实的值填进配置;绝不要填猜的值。
cannot decrypt the vaultMCP 配置里的密码文件不对。修改配置;绝不要新建保险库。
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)。没有花费任何资金;代理会签名并证明一笔新订单。
WrongPrivacyPoolAmountMurkFun 的 0xbow 适配器拒绝了与其订单不符的提取(还有 NotProcessor)。票据未被花费;代理会用一笔新订单重试。
curve sold out曲线已售罄,但自动毕业失败:买入要等到有人用 graduate 重试。卖出照常可用。
NotGraduated代币只有毕业后才能离开 MurkFun。继续持有,或者卖出。

隐私池(0xbow 或 Railgun)

报错包含怎么办
WAITING_FOR_ASP0xbow 存入后的正常状态。没有花掉任何资金。请等待(可能要几个小时甚至更久),或改用 Railgun 买入。
PoolVault_0xbow 的合约拒绝了这次取款(票据在此期间已被花掉,或某个根变了)。Agent 会先查 status,再重试。
Railgun新存入 Railgun 的资金要先在 Railgun 的等待期里停留约 1 小时,你的 Railgun 钱包才能花它。如果价格或上限挡住了一笔 Railgun 买入,整笔交易会回滚,什么都不会被解除屏蔽。

如果某个工具中途失败,Agent 会先调用 status 再重试:票据和余额都从链上读取。

备份与恢复

你的钱包就是你的备份:所有机密都派生自它对一条固定消息的签名。在新电脑上,按上述步骤安装并运行 recover_from_wallet:同一个钱包再次签名,你的化名、余额和 0xbow 票据就会从链上恢复。保护好这个钱包;持有其私钥的人可以签署订单,掌控你在 MurkFun 的资金。

你的 Agent 如何与 MurkFun 对接

  1. MCP 工具(首选)。你电脑上的 MurkFun MCP 服务为你的 Agent 提供上面这些工具。它把你的秘密保存在加密保险库里,所有证明都在本地生成,只发送已证明的订单。
  2. 同样的工具也能作为命令行命令使用,适合客户端不支持 MCP 的 Agent(Codex、Cursor、OpenClaw、脚本):murkfun-mcp <tool> --arg value 或 --json '{…}'。同样的代码、同样的环境变量、同样的保险库、同样的 JSON 输出;出错时信息写到 stderr,退出码为 1。murkfun-mcp tools 列出每个工具及其 JSON Schema。安全规则也一样:任何工具都不输出秘密,秘密只以文件路径传入、绝不写在命令行上,export_recovery 仍然需要 --confirm。同一个保险库上的调用一次只运行一个。
  3. 底层的 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 工具命令行变成
设置保险库setupmurkfun-mcp setup只有本地文件
票据、持仓、订单status, holders_lookupmurkfun-mcp status读取链上数据和你的保险库
存入 0xbow(仅用于 0xbow 买入)depositmurkfun-mcp deposit --amountBnb 1一笔从你钱包发出的交易
发币(创建 + 你的首笔买入)upload_token_metadata, create_tokenmurkfun-mcp create_token --name … --symbol … --metadataURI … --devFeeRecipient 0x… --bnbAmount 0.5中继订单 privacyPoolLaunch + railgunLaunch
只发币不买入create_tokenmurkfun-mcp create_token --name … --symbol … --metadataURI … --devFeeRecipient 0x…中继订单 launch
用 Railgun 买入(默认)buy, submit_railgunmurkfun-mcp buy --token 0x… --bnbAmount 0.1中继订单 railgunBuy
用 0xbow 票据买入buymurkfun-mcp buy --token 0x… --bnbAmount 0.1 --source note中继订单 privacyPoolBuy
用 0xbow 票据买入确定数量的代币buymurkfun-mcp buy --token 0x… --tokens cap --source note中继订单 privacyPoolBuy
用该代币的余额买入buymurkfun-mcp buy --token 0x… --bnbAmount 0.1 --source balance中继订单 buy
用该代币的余额买入确定数量的代币buymurkfun-mcp buy --token 0x… --tokens 1000000 --source balance中继订单 buyExactOut
只为买入报价,不发送buymurkfun-mcp buy --token 0x… --bnbAmount 0.1 --dryRun向中继查询费用报价并读取链上数据;不发送任何交易
卖出sellmurkfun-mcp sell --token 0x… --percent 50中继订单 sell
提现 BNBwithdraw_bnbmurkfun-mcp withdraw_bnb --token 0x… --to 0x…中继订单 withdrawBnb
提取代币withdraw_tokenmurkfun-mcp withdraw_token --token 0x… --to 0x…中继订单 withdrawTokens
给代号充值fund_pseudonymmurkfun-mcp fund_pseudonym --token 0x… --amountBnb 0.5中继订单 railgunFund
领取手续费claim_lp_feesmurkfun-mcp claim_lp_fees --token 0x…中继订单 collectLpFees + claimDevFees
修改开发者收款地址set_fee_recipientmurkfun-mcp set_fee_recipient --token 0x… --recipient 0x…中继订单 setDevRecipient
重试毕业graduatemurkfun-mcp graduate --token 0x…中继订单 graduate
行情数据list_launches, token_infomurkfun-mcp list_launches --limit 20读取 API(或链上数据)
订单状态order_statusmurkfun-mcp order_status --id …向中继查询状态
备份backup, export_recoverymurkfun-mcp export_recovery --path … --confirm只有本地文件
恢复restore, recover_from_wallet, recovermurkfun-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。

自己核验

每笔订单都要证明自己属于的持有者集合,任何人只凭链上数据就能核对: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