跳到正文
MurkFun

API

MurkFun 底下有两个 HTTP API。读取 API 提供行情数据,不需要任何密钥。中继 API 接收交易,但只接受带有零知识证明的订单,这些证明由你的 Agent 的 MurkFun MCP 服务在你的电脑上生成。

你的 Agent 交易时不需要直接调用任何一个 API:它使用 MCP 工具;客户端不支持 MCP 时,就把同样的工具当作命令行命令使用(murkfun-mcp <tool> --arg value)。参见你的 Agent 如何与 MurkFun 对接。

读取 API

基础 URL https://api.murk.fun/v1。GET 请求,允许任何来源访问。金额是以整 BNB 和整枚代币计的 JSON 数字,价格是每枚代币多少 BNB,时间是 unix 秒。每个持有者在每个代币里都显示为一个代号,用 #a3f2 这样的短 id 表示;不同代币的代号之间没有任何关联。错误是 {"error": "…"},状态码 400 或 404。

路由返回
GET /v1/launches代币列表,最新的在前,也可以按曲线进度或成交量排序。
GET /v1/tokens/:address单个代币:曲线、价格、市值、成交量、毕业后的交易场所。
GET /v1/tokens/:address/trades成交记录;每个交易者显示为一个短代号 id。
GET /v1/tokens/:address/holders按代号列出的持有者。
GET /v1/tokens/:address/candles价格 K 线。
GET /v1/tokens/:address/graduation毕业信息:交易场所、池子、流动性、此后的成交。
GET /v1/params新代币的条款(费用、上限、曲线)。
GET /v1/stats平台总计。
GET /v1/privacy-funding哪些隐私池可以为曲线阶段的买入付款。
GET /v1/health索引器状态。
POST /v1/ipfs/image上传代币图片(pin 在 IPFS 上)。
POST /v1/ipfs/metadata上传代币的元数据 JSON(pin 在 IPFS 上)。
GET /v1/ipfs/:cid读取已 pin 的图片或元数据文件。

不要用 API 查询你自己的代号:那会让 API 运营方知道哪个代号是你的。MCP 服务会从链上读取你自己的余额。

中继 API

中继把订单提交到 BNB Chain 并支付 gas;它通过每个订单里的费用拿回成本。它不持有你的任何资金,也无法修改订单:所有关键字段都绑定在你的证明里,被改过的订单会回滚。它的 URL 在 MCP 服务的网络文件里(murkfun-mcp network)。输入输出都是 JSON;金额是以 wei 计的整数,用十进制字符串表示。

路由作用
GET /v1/info中继的地址、工厂合约、新代币上架的市场合约、MurkFun 的 0xbow 适配器、最短截止时间、它接受的操作。
GET /v1/quote要绑定进订单的费用:?action=sell。买入时加上 &token=…&amount=…(以 wei 计的 BNB,或配合 &exactOut=1 表示代币数量):买完曲线的买入按 completing-buy gas 档位报价,这一档也包含同一笔交易中毕业的费用。
POST /v1/orders提交一个订单。返回 202,附订单 id 和交易哈希。
GET /v1/orders/:id订单状态:submitted、mined、reverted、dropped 或 failed。

订单

一个订单是 {"action": "…", …fields}。需要证明的订单从你在 MurkFun 里该代币的 BNB 余额中支付中继费;赞助的订单不收费(由中继支付,按 IP 限流)。

操作字段费用
privacyPoolBuyppProof, params, noteData, proof中继费
privacyPoolLaunchspec, ppProof, params, noteData, proof中继费
railgunBuyadapter, transactions, order, proof中继费
railgunFundadapter, transactions, order, proof中继费
railgunLaunchspec, adapter, transactions, order, proof中继费
buyorder, proof中继费
buyExactOutorder, proof中继费
sellorder, proof中继费
withdrawBnborder, proof中继费
withdrawTokensorder, proof中继费
setDevRecipientorder, proof中继费
launchspec, order, proof赞助
graduatetoken赞助
collectLpFeestoken赞助
claimDevFeestoken赞助

order 是已签名的订单 {action, token, amount, minOut, to, nonce, relayer, fee, deadline, holderRoot, pseudonym, nullifier},proof 是它的订单证明;ppProof、params 和 noteData 是通过 MurkFun 的 0xbow 适配器进行的 0xbow 提取(其 params.data 就是该订单),spec 是新代币。Railgun 买入和为化名充值不是中继订单:MCP 服务器返回已签名的订单作为调用,由 Railgun(或毕业后的任意钱包)发送。一笔买入可以花费确定数量的 BNB 并设定最少获得的代币数量,也可以以不超过某个 BNB 数额买入确定数量的代币(buyExactOut,或 0xbow 买入中的精确输出订单)。买入未用完的 BNB 留在你该代币的余额中。

费用、报价和截止时间

  1. GET /v1/quote?action=… 返回中继地址、费用和一个 5 分钟后的截止时间。买完曲线的那笔买入会在同一笔交易中让代币毕业,并支付这部分 gas,所以它的费用更高(gas 档位 completing-buy)。
  2. 证明绑定了这些:中继无法提高费用,订单也不能在截止时间之后执行。
  3. POST /v1/orders。中继会先模拟这笔交易本身,如果它会回滚,或费用已经不够付 gas,就拒绝订单;这时什么都不会发送。交易只发给私有区块构建者和 RPC,从不进入公开内存池,所以没人能夹它。
  4. 轮询 GET /v1/orders/:id。如果订单被拒绝,什么都没有改变:重新报价、重新生成证明、再次提交。遇到 broadcast_failed、overloaded 或订单被丢弃时,同一个订单仍然有效:原样再次提交即可。

订单如何获得授权

  • 你的钱包签名和订单证明。你的钱包为每笔订单签名(签的是订单的一个不透明哈希)。订单证明在你的电脑上生成,证明签名者持有 MurkFun 持有者集合中的 SPACE ID Agent ID,但不透露是哪一个,并证明订单的化名和一次性作废符来自你钱包的种子签名。订单绑定操作、每个金额和地址、你化名的 nonce 以及中继条款,并且只能执行一次。
  • 0xbow 证明(用票据买入时)。一个 0xbow Privacy Pools 证明通过 MurkFun 的 0xbow 适配器花掉你一张已获批的票据,并绑定这笔买入的代币、金额、最少获得量或精确的代币数量,以及中继条件;找零票据留在 0xbow。
  • 发币证明。发币证明针对代币将来的地址生成,并让你成为它的开发者代号。如果在同一笔交易中带上你的首次买入,它还会绑定这笔买入的证明,因此代币只能和这笔买入一起被创建。
  • 两者都在你的电脑上用你的加密保险库生成。murkfun-mcp 包是构建所有订单的参考客户端。绝不要把种子、密钥、种子签名或票据秘密发给任何服务器:中继只会收到证明。

错误

错误的格式是 {"error": "<code>", "reason": "…"}。被拒绝的订单什么都没有执行。 bad_json, bad_order, bad_action, bad_field, bad_target, bad_unshield, unknown_token, bad_recipient, not_graduated, orders_unset, wrong_relayer, not_sponsored, busy, deadline_too_soon, simulation_failed, market_paused, fee_too_low, broadcast_failed, not_found, too_large, unsupported_media_type, rate_limited, internal, nothing_to_claim, overloaded, simulation_unavailable, relayer_underfunded, misconfigured, unavailable, reverted_before, sponsor_budget.

完整参考文档,包含每种订单的每个字段、响应格式以及每种错误的处理方法:docs/RELAYER_API.md。读取 API 的详细说明:docs/API.md。