跳到主要内容

创建代币

POST https://api.shrine.trade/bnb/api/create-token

为你构建 Flap 的发币交易:通过 Flap 的 IPFS 网关固定元数据、Flap 要求的靓号地址、你想要的税设置,以及(如果需要)同一笔交易里的开发者买入。你签名并发送,交易确认的那一刻代币和它的联合曲线就存在了。

shrine.trade 不收取创建费用,Flap 也不收:唯一的成本是 Gas。交易的 value 就是你的开发者买入(如果有)。

Flap

每次发射都上 Flap 联合曲线,卖出 8 亿枚后自动毕业到 PancakeSwap。两种代币:

  • 普通币:不带税。毕业到 PancakeSwap Infinity 池子,LP 费用作为分红发给持有者。
  • 税币:你设定买入税和卖出税,每笔交易收取。Flap 的税系统决定它去哪:给你、销毁、分给持有者、注入流动性,或任意组合。毕业到 PancakeSwap v2。Flap 上大多数发射都是这种。
关于私钥输入框

私钥永远不会离开你的机器。 它在本地签名,只有签好的交易会交给 /api/send 广播。私钥本身永远不会发给 shrine.trade。

固定优先:构建会等图片和元数据在 IPFS 上固定完成,所以代币一发射就带着图片出现在 flap.sh 上。

示例

const { readFileSync } = require("node:fs");
const { Wallet } = require("ethers");

// ─── 你的代币 ───────────────────────────────────────
const PRIVATE_KEY = "0xYOUR_PRIVATE_KEY";
const NAME = "Grene";
const SYMBOL = "GRENE";
const IMAGE = "./logo.png"; // 图片文件,和脚本放在一起
const DESCRIPTION = "the greenest coin on BNB Chain";

// ─── 链接,都可选,留空即不填 ────────────────────
const TWITTER = "https://x.com/grene";
const TELEGRAM = "";
const WEBSITE = "https://grene.example";

// ─── 经济模型 ────────────────────────────────────────
const PAIR_TOKEN = "BNB"; // 曲线的计价资产:BNB、USD1、NVDAB 或 TSLAB 等股票代号,或一个地址
const DEV_BUY = ""; // 你自己的开盘买入,以 PAIR_TOKEN 计。"" = 不买
const BUY_TAX = 0; // 每笔买入的税率 %。两个都为 0 = 普通币
const SELL_TAX = 0; // 每笔卖出的税率 %
const BENEFICIARY = ""; // 你那份税打到哪。"" = 发币钱包
// 税怎么分,占税的 %,加起来必须是 100:
const TO_YOU = 100; // 给 BENEFICIARY,以计价资产支付
const BURNED = 0;
const TO_HOLDERS = 0; // 作为分红,以 DIVIDEND_TOKEN 支付
const TO_LIQUIDITY = 0;
const DIVIDEND_TOKEN = "quote"; // "quote"、"self" 或一个 ERC-20 地址
// ──────────────────────────────────────────────────────

async function main() {
const wallet = new Wallet(PRIVATE_KEY); // 只用来签名,不连任何节点

// 1. 通过 Flap 的 IPFS 网关固定图片和元数据。
const form = new FormData();
form.append("file", new Blob([readFileSync(IMAGE)], { type: "image/png" }), "logo.png");
form.append("description", DESCRIPTION);
form.append("twitter", TWITTER);
form.append("telegram", TELEGRAM);
form.append("website", WEBSITE);

const up = await fetch("https://api.shrine.trade/bnb/api/upload-image", {
method: "POST",
body: form,
});
const uploaded = await up.json();
if (uploaded.error) throw new Error(`${uploaded.error}: ${uploaded.message}`);
console.log("元数据已固定:", uploaded.meta);

// 2. 让 shrine.trade 构建发币交易。
const res = await fetch("https://api.shrine.trade/bnb/api/create-token", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({
name: NAME,
symbol: SYMBOL,
meta: uploaded.meta,
pairToken: PAIR_TOKEN,
buyTaxBps: BUY_TAX * 100,
sellTaxBps: SELL_TAX * 100,
// 为空时整个省略,API 会用合理的默认值。
...(DEV_BUY ? { initialBuy: DEV_BUY } : {}),
...(BENEFICIARY ? { beneficiary: BENEFICIARY } : {}),
...(BUY_TAX || SELL_TAX ? {
marketingBps: TO_YOU * 100, deflationBps: BURNED * 100,
dividendBps: TO_HOLDERS * 100, lpBps: TO_LIQUIDITY * 100,
dividendToken: DIVIDEND_TOKEN,
} : {}),
from: wallet.address,
}),
});
const body = await res.json();
if (body.error) throw new Error(`${body.error}: ${body.message}`);
console.log("代币地址将是", body.token, "-", body.tokenType);

// 3. 本地签名,私钥不会离开这个脚本。
// 4. 把签好的交易按顺序交给 API 广播(USD1 开发者买入前面会多一笔授权)。
// 不需要自己的 RPC。
let explorer;
for (const tx of body.txs) {
const signed = await wallet.signTransaction({
to: tx.to, data: tx.data, value: BigInt(tx.value), gasLimit: BigInt(tx.gas),
maxFeePerGas: BigInt(tx.maxFeePerGas), maxPriorityFeePerGas: BigInt(tx.maxPriorityFeePerGas),
nonce: tx.nonce, chainId: tx.chainId, type: 2,
});
const sent = await (await fetch("https://api.shrine.trade/bnb/api/send", {
method: "POST", headers: { "content-type": "application/json" },
body: JSON.stringify({ signedTx: signed }),
})).json();
if (sent.error) throw new Error(`${sent.error}: ${sent.message}`);
if (sent.status !== "landed") throw new Error(`${tx.description} ${sent.status}: ${sent.explorer}`);
explorer = sent.explorer;
}

// 5. 地址在发送前就已知:Flap 用 CREATE2 部署。
console.log("代币已发射:", body.token);
console.log("tx:", explorer);
console.log("页面:", "https://flap.sh/token/" + body.token);
}

main();

保存为 launch.js,把图片命名为 logo.png 放在旁边,然后:

npm install ethers
node launch.js

支持的计价资产

Flap 代币可以用 BNB 计价,可以用稳定币或主流币计价,也可以用币安在 BNB 链上发行的代币化股票和 ETF 计价:一个直接对着英伟达、特斯拉、SpaceX、标普 500 或黄金交易的 meme 币。Flap 还接受其他 Flap 代币作为计价资产("子币")。pairToken"BNB"、下表中的代号(不分大小写)或一个地址;Flap 未启用的资产返回 pair_token_not_approved

选定后发射时固定,就是曲线里存的东西。买家照样用 BNB 付款:下面每一种资产,Flap 都会在买入交易内部把 BNB 换成计价资产,卖出默认换回 BNB。股票计价的代币,税也以那只股票收取:marketingBps 用 NVDAB 付给你,dividendBps 用它分给持有者(dividendToken 默认就是计价资产)。

加密资产

代码资产精度地址
BNBBNB18原生 BNB,无地址
USDTTether USD180x55d398326f99059fF775485246999027B3197955
USD1USD1180x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d
UUnited Stables180xcE24439F2D9C6a2289F741120FE202248B666666
lisUSDLista USD180x0782b6d8c4551B9760e74c0545a9bCD90bdc41E5
BTCBBitcoin (BTCB)180x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c
ETHEthereum180x2170Ed0880ac9A755fd29B2688956BD959F933F8
SOLSolana180x570A5D26f7765Ecb712C0924E4De545B89fD43dF

股票、ETF 与黄金

币安发行的代币化股票,每个代币对应一股标的:1 个 NVDAB 就是一股英伟达,所以 NVDAB 发射里 0.01 的开发者买入是百分之一股。

代码资产精度地址
XAUTTether Gold60x21cAef8A43163Eea865baeE23b9C2E327696A3bf
SPYBSPY (S&P 500 ETF)180x7138b48df7D98D7e3cc221BfE7192D0a178182D8
QQQBInvesco QQQ Trust180x205812CdBed920aFf76C6580abD681a46D11efc7
NVDABNVIDIA180x02Fca66C1D1aFB4E2A7884261eB00F63598a7436
AAPLBApple180x431a3BEE82E2ca41e49895CbECE5bB0F76A89b7A
TSLABTesla180x5b1910eAaD6450E50f816082Aa078C41F10C292f
MSFTBMicrosoft180x80106cb3EAD06659A5ad19DF39D9b4733863B9b0
GOOGLBAlphabet180x3F53De71c126BdaBAe20f9cD64848d317f6C3238
SPCXBSpaceX180xbe9D156892E55e7154BcD3cB0FEA677F9D3103E1
SKHYBSK Hynix180xCA750eF65f295BBECd685Abf54e82CAf297BDB61
HOODBRobinhood180xA394dCEa3fd3847fD793afBFd163E2e3858B7c65
BABABAlibaba180x4eF9d3062c7F6ebA4AAE4990c5036598C6eff4ec
GMEBGameStop180x46cEeFDa28Dd7207059ed19B0acdc026955bb15C
NFLXBNetflix180xD6829Ea836b6FA224d099D40E54B31262f874631
MSTRBStrategy (MicroStrategy)180xE87afb3076AeB0f9B14E368DE8145ae6a2826A14
DJTBTrump Media & Technology Group180xF2ec508422174Ee564de98187db9359D318AFB6b
MRNABModerna180x5fd86da9B05abE396fe9d02a4A213A7c00556503
FLNCBFluence Energy180x4af1D41cd9dD950dcA43984b43aaA2A8702714Ac
SOXLBDirexion Semiconductor Bull 3X ETF180xd97d097a89113fa59b76c572E5b2Eb647E8eefaf
SOXSBDirexion Semiconductor Bear 3X ETF180xE28Cd11C99AF2df76bb8aDA4Cd0ef3904378280F

以上是 2026 年 9 月的列表。币安发行新股票并由 Flap 启用后,它的地址立刻就能作为 pairToken 使用,代号会在下一个版本加入。

无论用什么计价,每条曲线都在同一个点毕业:10 亿总量中卖出 8 亿。这是 Flap 的 Portal 在 BNB 链上唯一接受的毕业点。

税系统

税币的税分四路,以 bps 计,加起来 10000:

份额去向
marketingBpsbeneficiary,以计价资产自动支付。这是创作者的收益。
deflationBps销毁。
dividendBps持有至少 minimumShareBalance 枚代币的人,以 dividendToken 支付:计价资产、代币本身或另一个 ERC-20。通过 创作者收益 领取。
lpBps注入代币的 PancakeSwap 流动性。

默认全部给受益人。买入税和卖出税可以不同(buyTaxBps: 300, sellTaxBps: 1000 很常见);税在毕业后持续 taxDays 天,并在毕业后的 antiFarmerHours 小时内对所有池子而不只是主池生效。在曲线上,税作为每笔交易的额外费用收取,去向相同。

在到达以上任何一处之前,Flap 会保留最多 0.3% 的征税交易量。shrine.trade 分文不取。这里的一切在发射时固定。

请求

字段类型说明
name字符串代币名称。不唯一,永远用地址识别代币。
symbol字符串代号。
logo字符串图片 URL,或 base64 的 data: URL。API 会获取它并通过 Flap 网关固定图片和元数据。与 meta 二选一。
meta字符串已通过 POST /api/upload-image 固定的元数据 CID(上面的脚本就是这么做的)。跳过固定步骤,此时忽略 descriptionsocials
description字符串,可选项目简介,和图片一起固定。
socials对象,可选{ twitter, telegram, website },任意项可为 ""
pairToken字符串,可选曲线的计价资产。"BNB"(默认)、支持的计价资产 中的代号如 "USD1""NVDAB",或 Flap 已启用的任何计价资产地址。
initialBuy十进制字符串,可选同一笔交易里你自己的开盘买入,以计价资产计(BNB 发射即 BNB)。它在创建曲线的交易内执行,没人能抢在前面。USD1 的开发者买入前面会多一笔 approve_quote
buyTaxBps / sellTaxBps数字,可选每笔买入 / 卖出的税,bps(100 = 1%)。任一大于 0 即为税币,两者可以不同。发射后不可更改。默认 0
taxDays数字,可选税币:毕业后税持续的天数。默认 365
antiFarmerHours数字,可选税币:毕业后这么多小时内税对所有池子生效,防止 LP 挖矿绕过。最多 8760。默认 0
beneficiary地址,可选税币:税中营销份额的去向。默认为 from
marketingBps / deflationBps / dividendBps / lpBps数字,可选税币:税如何分配,占税的 bps:给受益人、销毁、分给持有者、注入流动性。必须加起来 10000,未填的为 0。默认全部给受益人。
dividendToken字符串,可选配合 dividendBps:持有者收到什么。"quote"(默认)为计价资产,"self" 为代币本身,或 Flap 能兑换到的 ERC-20 地址。
minimumShareBalance十进制字符串,可选有分红时(带 dividendBps 的税币,以及所有普通币):持有者领取分红所需的最低余额。Flap 的下限是 10000,也是默认值。
slippage数字,可选开发者买入的滑点百分比。默认 5
from地址你的钱包(创作者)。

发币要花多少

Flap 不收创建费,所以发币只花 Gas:按 BNB 链平常的 0.05 gwei,税币约 0.0004 BNB,普通币更少,再加你的开发者买入。节点在执行前会预留 gasLimit x maxFeePerGas,两个数字都有余量(上限多 20%,价格上限 1.25 倍),所以钱包要比实际花费多持有一点,差额同一区块退回。准备 0.001 BNB 做一次普通发射就不会不够。

Flap 对每个创作者钱包有发币频率限制,触发时返回 launch_rate_limited

返回

一个真实的例子,3%/3% 税币,带 0.001 BNB 开发者买入:

{
"txs": [
{
"to": "0xe2cE6ab80874Fa9Fa2aAE65D277Dd6B8e65C9De0",
"data": "0x…",
"value": "1000000000000000",
"gas": 7230661,
"maxFeePerGas": "62500000",
"maxPriorityFeePerGas": "50000000",
"nonce": 12,
"chainId": 56,
"type": 2,
"description": "create"
}
],
"token": "0x32e00b9c8eb2ff2462b61b692475d7670ea07777",
"salt": "0xe37d685461db060f32606abcd0af9c18d4bc275244d46edbf0123869d1367347",
"tokenType": "tax_v3",
"launchFee": "0",
"launchFeeFormatted": "0",
"pairToken": "BNB",
"pairTokenSymbol": "BNB",
"pairTokenDecimals": 18,
"graduationSupply": "800000000000000000000000000",
"graduationSupplyFormatted": "800000000",
"meta": "bafkreieraixgnucog5qpve3qqqapghudod7ogi5ztlorgavbjszahk3lga",
"metaUri": "https://ipfs.io/ipfs/bafkreieraixgnucog5qpve3qqqapghudod7ogi5ztlorgavbjszahk3lga",
"beneficiary": "0x8894E0a0c962CB723c1976a4421c95949bE2D4E3",
"buyTaxBps": 300,
"sellTaxBps": 300,
"tax": {
"taxDays": 365,
"antiFarmerHours": 0,
"marketingBps": 10000,
"deflationBps": 0,
"dividendBps": 0,
"lpBps": 0,
"dividendToken": "quote",
"minimumShareBalance": "0"
},
"initialBuy": "1000000000000000",
"initialBuyFormatted": "0.001",
"expectedTokensOut": "173060121205804955576978",
"expectedTokensOutFormatted": "173060.121205804955576978",
"expectedEconomics": "Flap tax token: 3.00% tax on buys and 3.00% on sells for 365 days after graduation …"
}
  • txs:按顺序签名并发送。通常只有一笔 create。ERC-20 计价的开发者买入前面会多一笔 approve_quote
  • token:代币地址,发送前就已知:Flap 用 CREATE2 和我们搜索到的 salt 部署。税币以 7777 结尾,普通币以 8888 结尾,Flap 要求如此。
  • tokenTypestandard_v3tax_v3
  • launchFee:永远是 0,Flap 不收创建费。交易的 value 是开发者买入。
  • meta / metaUri:固定好的元数据,CID 和网关地址。
  • beneficiarybuyTaxBpssellTaxBpstax:回显发射将使用的设置:税的时长和防挖矿窗口、分配比例、分红代币和持有门槛。普通币的 lpFeesTo 永远是 holders
  • initialBuyexpectedTokensOut:以计价资产基础单位计的开发者买入及其得到的代币数,按真实发射模拟。仅在有 initialBuy 时出现。
  • expectedEconomics:代币条款的一句话总结。