打开手动添加
展开网络选择器,依次选择“添加网络”和“手动添加网络”。Coinbosa Chain 需要手动填写:对于钱包事先并不知道的网络,这是正常的做法。
这条链兼容 EVM:MetaMask、Hardhat、Foundry、ethers.js 和 viem 无需改造即可连接。本页说明哪些能用,并指出边界在哪里——既包括公共端点的边界,也包括网络本身的边界。
描述一个 EVM 网络只需要少数几个数值。它们不是意向:它们作用于每一个区块,并且可以在链上重新读到。
| 字段 | 要填写的值 |
|---|---|
| 网络名称 | Coinbosa Chain |
| 新的 RPC URL | https://explorer.coinbosa.com/rpc |
| 链 ID | 26262 — 十六进制为 0x6696 |
| 货币符号 | BOSA |
| 小数位 | 18 |
| 区块浏览器 URL | https://explorer.coinbosa.com |
展开网络选择器,依次选择“添加网络”和“手动添加网络”。Coinbosa Chain 需要手动填写:对于钱包事先并不知道的网络,这是正常的做法。
钱包会向端点发起查询,如果节点返回的标识与填写的不一致,就拒绝保存。这项检查可以防止某个端点冒充另一个网络。
余额以 BOSA 显示,最新区块按 Parlia 共识的节奏推进——目标为 5 秒,在连续 500 个区块上实测为 5.018 秒。
18 位小数不是一个可调选项。以太坊虚拟机的基本单位是 wei,这个值在 gas 计算和所有钱包中都是写死的。没有任何字段可以更改它。
应用可以用一次弹窗提示完成网络添加,用户无需手动抄录任何内容。
await window.ethereum.request({
method: 'wallet_addEthereumChain',
params: [{
chainId: '0x6696',
chainName: 'Coinbosa Chain',
nativeCurrency: { name: 'Coinbosa', symbol: 'BOSA', decimals: 18 },
rpcUrls: ['https://explorer.coinbosa.com/rpc'],
blockExplorerUrls: ['https://explorer.coinbosa.com']
}]
});
26262 在这里写作 0x6696,带前缀且不补前导零。这是这一步最常见的错误:以十进制传入的标识会被拒绝,而且往往没有明确的提示。eth_chainId 返回的也是同样的形式。
任何网站都可以请求添加一个网络,并自行选择名称和符号。真正标识一条链的,是它的标识、它的区块 0 哈希,以及端点地址。
不需要任何专门的插件:对这些工具来说,Coinbosa Chain 就是一个普通的 EVM 网络。唯一需要留意的是所选的 EVM 版本。
module.exports = {
solidity: {
version: '0.8.26',
settings: { evmVersion: 'shanghai' }
},
networks: {
coinbosa: {
url: 'https://explorer.coinbosa.com/rpc',
chainId: 26262,
accounts: [process.env.CLE_PRIVEE] // 绝不以明文写入代码仓库
}
}
};
[profile.default]
solc_version = "0.8.26"
evm_version = "shanghai"
[rpc_endpoints]
coinbosa = "https://explorer.coinbosa.com/rpc"
# forge script script/Deploy.s.sol \
# --rpc-url coinbosa --broadcast
请为 Shanghai 编译,而不是 Cancun。Solidity 默认目标是 Cancun:若没有 evmVersion: 'shanghai'
私钥绝不能放进配置文件。它应从环境变量或加密存储中读取,其文件也应留在代码仓库之外。Coinbosa 团队的任何成员都绝不会向你索要私钥或助记词。
Coinbosa Chain 内置原生 DeFi & DEX 套件:开发者可在其中发布智能合约、创建流动性池,并不受限制地部署 BRC20 代币。
部署走的是常规 EVM 工具链,也就是上面配置好的那些。一笔已签名的交易就够了:无需申请,也无需事先获得批准。
流动性池像普通合约一样部署,依托这条链的 BRC20 代币,其接口在下文说明。
发行 BRC20 代币不需要任何许可。唯一要遵守的约定是接口,以便与讲 ERC-20 的钱包和服务保持兼容。
BRC20——Bosa smart contract 20——是这条链的代币标准。它的接口兼容 ERC-20:任何能读懂 ERC-20 的钱包、跨链桥或服务都无需改造即可使用。
interface IBRC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint256);
function getOwner() external view returns (address);
function balanceOf(address compte) external view returns (uint256);
function allowance(address proprietaire, address delegue) external view returns (uint256);
function transfer(address vers, uint256 montant) external returns (bool);
function approve(address delegue, uint256 montant) external returns (bool);
function transferFrom(address de, address vers, uint256 montant) external returns (bool);
event Transfer(address indexed de, address indexed vers, uint256 montant);
event Approval(address indexed proprietaire, address indexed delegue, uint256 montant);
}
这是与普通 ERC-20 之间唯一值得注意的行为差异。transferOwnership 只是指定一个待确认的接收方,并不交出任何权限;只有当对方从自己的地址调用 acceptOwnership 时,所有权才会转移。
一步转给一个填错的地址是不可逆的:没有人持有那把密钥,任何仅限所有者调用的函数都再也无法调用,合约将永久失去所有者。第二步正是用来证明接收方确实控制着这个地址。
getOwner 以标准化的方式暴露所有者。mint 仅限所有者调用,并可通过 finishMinting 永久关闭;burn 对持币者开放。最后,increaseAllowance 和 decreaseAllowance 避免了 approve 的竞态问题。
比特币上存在一个同名标准,两者在技术上毫无关系。Ordinals 铭文的 BRC-20 与这里的标准只是同名而已:写成“Coinbosa 的 BRC20”即可消除歧义。
公共节点用于读取链上数据和提交已签名的交易。凡是能用来窥探或操控节点的接口都已关闭,昂贵的请求也设有上限:没有上限时,一个两百字节的请求就可能要求扫描整条链。
| 方法族 | 状态 | 涵盖内容 |
|---|---|---|
| eth | 开放 | 区块、余额、存储、gas 估算、日志、发送已签名的交易。 |
| net | 开放 | 网络身份——钱包添加这条链所需要的信息。 |
| web3 | 关闭 | 公布客户端的确切版本及其 commit 哈希——一份开箱即用的目标清单。 |
| personal, admin | 关闭 | 节点密钥库、对等节点、服务、文件写入。 |
| debug, txpool, miner | 关闭 | 内部状态、交易队列、区块产出。 |
| 传输 | HTTPS,仅限 POST——其他方法一律被拒绝。 |
|---|---|
| 请求大小 | 设有上限;更重的请求会在处理前被拒绝。 |
| 批量调用 | 按每个 HTTP 请求设上限。 |
| 日志查询范围 | 每次调用 eth_getLogs 均有上限;长历史需分段读取。 |
| 日志过滤器 | 每个检索位置上的地址数与备选主题数均有上限。 |
| 浏览器来源 | 仅限 explorer.coinbosa.com;服务器到服务器的调用不受此限。 |
这个端点是为读取和提交而设的。它不提供 WebSocket 订阅:应用需要轮询节点,而不是订阅。而要重新读取某个较早区块的状态,则需要一个归档节点,任何人都可以从代码仓库自行运行。
下面的数值来自白皮书。它们不要求别人相信我们:两个请求就足以把它们找回来。
| 共识与出块时间 | Parlia — 目标:5 秒 | 实测:5.018 秒,共 500 个区块 |
|---|---|
| 链 ID | 26262 — EIP-155 防重放保护 |
| epoch 切换 | 验证者间隔固定——在第 200、400、600、800 个区块处验证 |
| 共识系统合约 | 定制编写(Solidity / Go-Ethereum),直接在链上运行 |
| 原生代币标准 | BRC20,兼容 ERC-20 — 自动化测试套件 |
| BOSA 供应量 | 700,000,000,18 位小数 |
| 区块 0 哈希 | 0x8dcdadc247a98f33728cae944e20ce7c49c74b35cfba31495f85e98979018da6 |
| 区块 0 状态根 | 0x93682eb9182a55531d47014b76a285b45d3e720a2951f9ffbdc67f52995f8c03 |
| 投入生产 | 2026 年 8 月 7 日 |
# doit renvoyer "0x6696" — soit 26262
curl -s -X POST https://explorer.coinbosa.com/rpc \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# doit renvoyer l empreinte 0x8dcdadc2... publiee plus haut
curl -s -X POST https://explorer.coinbosa.com/rpc \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,
"method":"eth_getBlockByNumber","params":["0x0",false]}'
客户端、合约、genesis 和部署脚本都发布在 Coinbosa 代码仓库。重新编译 genesis 必须精确复现上文公布的区块 0 哈希。
名称和符号可以照抄;链 ID 和区块 0 哈希不行。发送交易之前要比对的正是后两者,区块浏览器会明明白白地显示它们。
这个网络由谁发行发行方、围绕这条链构建的生态系统,以及 BOSA 供应量的分配。
打开关于页面