a曲线即做市商
Sats 没有预铸,也没有外部流动性池。合约里的曲线本身就是唯一的对手方:买入时按曲线价现铸,卖出时按曲线价回收并销毁。
价格只由曲线资金 U 决定,任何时候都可以买卖,不依赖挂单深度。机制沿用 sato / sat1 的同一公式。
曲线价 p(U) = (S ÷ 21,000,000) × e^(U ÷ S) 已铸出 Q(U) = 21,000,000 × (1 − e^(−U ÷ S)) S = 21,000(开启时锁定)
BSC文档 · v0.1
网站只调用只读接口;/api/prepare/* 仅供 Agent 构造交易使用。
基于 sato 的曲线机制 · 铭文代币,曲线即做市商
Sats 没有预铸,也没有外部流动性池。合约里的曲线本身就是唯一的对手方:买入时按曲线价现铸,卖出时按曲线价回收并销毁。
价格只由曲线资金 U 决定,任何时候都可以买卖,不依赖挂单深度。机制沿用 sato / sat1 的同一公式。
曲线价 p(U) = (S ÷ 21,000,000) × e^(U ÷ S) 已铸出 Q(U) = 21,000,000 × (1 − e^(−U ÷ S)) S = 21,000(开启时锁定)
曲线资金每增加 S × ln2 ≈ 14,556 USDT,价格翻一倍。2,100 万是渐近上限,曲线资金再多也铸不满。
卖出让曲线资金减少,价格沿同一条曲线回落。
到达 m 倍所需曲线资金 = S × ln(m) 2× ≈ 14,556 · 10× ≈ 48,354 · 100× ≈ 96,709 USDT
开启后 48,000 个区块(约 6 小时)内,只有 sat20 能在曲线上铸币。每张 sat20 铸一次,铸完即销毁。
额度从 21 USDT 开始,按区块线性增长,40,000 个区块(约 5 小时)涨到 2,100 USDT,之后保持到铸币期结束。单张最少 5 USDT,单笔最多 5 张、合计不超过 2,100 USDT。
额度只决定每张可铸的上限,成交价由当时的曲线价决定。
额度(b) = 21 + 2,079 × min(b − B0, 40,000) ÷ 40,000
每张铭刻的 2.1 USDT 全部进金库。开启时金库总额 = 当时存在的 sat20 × 2.1(铭满且无销毁时为 44,100 USDT)。
开启起分 168 轮,第一轮在开启区块,之后每轮在上一轮执行后至少 8,000 个区块(合计至少约 7 天),在曲线上买入 Sats,买到的 Sats 全部归当时的 sat20 持有人。任何人都可以触发到期的轮次。
第 n 轮累计买入 = T × n ÷ 168
曲线上每笔买卖收 1%:0.9% 归 sat20 持有人,0.1% 为协议费。铸币与金库释放同样计入。
Sats 普通转账不收税;sat20 市场成交收 2%,由卖方承担。
每张每日交易费 ≈ 每日曲线成交额 × 0.9% ÷ 剩余 sat20
金库释放与交易费按当时存在的 sat20 张数平分。张数只减不增:铸币即销毁,开启前销毁返还也会减少。
铸币进入曲线的资金推高曲线价;分配始终按剩余张数计算。
如果 21,000 张全部铸完,sat20 不再存在,之后曲线税全部作为协议费归项目方收款地址,Sats 照常在曲线上自由买卖。
曲线价格随买卖双向变动,卖出也会让价格回落。动态模拟仅按假设推演,不代表未来结果。合约开启后参数永久锁定,无法修改。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /.well-known/sat20.json | Discovery:合约地址、链 ID、接口版本 |
| GET | /api/stats | 全局统计:已铭刻、销毁、持有人、价格 |
| GET | /api/activity | 动态流,支持 types 过滤与游标分页 |
| GET | /api/inscriptions | sat20 列表 |
| GET | /api/inscriptions/{id} | 单张 sat20 详情 |
| GET | /api/inscriptions/{id}/history | 单张 sat20 历史 |
| GET | /api/addresses/{address} | 地址持仓、额度、挂单与求购 |
| GET | /api/market/stats | 市场统计 |
| GET | /api/market/listings | 挂单列表 |
| GET | /api/market/bids | 求购单 |
| GET | /api/market/depth | 买卖深度 |
| GET | /api/market/trades | 成交记录 |
| GET | /api/market/candles | 价格 K 线 |
| GET | /api/holders | 持有人排行 |
| GET | /api/mint/state | 铸币状态:额度、开启区块、报价 |
| GET | /api/mint/history | sat20 铸币记录 |
| GET | /api/curve | Sats 曲线:曲线价、曲线资金、刻度 |
| GET | /api/curve/trades | 曲线买卖记录 |
| GET | /api/rewards | sat20 收益:金库分配与交易费 |
| GET | /api/treasury | 金库进度 |
| GET | /api/treasury/rounds | 金库执行记录 |
| GET | /api/token | Sats 代币信息 |
| GET | /api/simulator | 动态模拟的输入参数 |
| SSE | /api/signal | 实时事件推送 |
通过 SSE 订阅链上事件(铭刻、销毁返还、挂单、成交、曲线买卖等)。本站的「实时动态」与市场页的闪烁提示均来自这一通道;连接数超限时返回 too_many_streams。
const es = new EventSource('https://api.sat20.fun/api/signal?events=inscribe,refund,sale,list')
es.addEventListener('sale', (e) => render(JSON.parse(e.data)))
// 断线后带 Last-Event-ID 重连;10 分钟后服务端主动关闭;每 IP 最多 4 个连接{ "error": { "code": "…", "message": "…" }, "apiVersion": "0.1" }
invalid_query / invalid_address
参数错误
not_found
编号或地址不存在
rate_limited / too_many_streams
限流,等待 Retry-After 秒
contracts_not_configured
合约尚未部署