电路、容器与 .tape 地址Circuits, containers and .tape addresses
分清「资产」与「账户」:电路是可交易的资产,容器是挂在电路上的账户;再读懂 #ID@处理器 与 .tape 地址的写法。tell assets from accounts: a circuit is a tradable asset, a container is the account attached to it; plus how #ID@processor and .tape addresses are written.
这一章解决三个容易混淆的问题:谁是谁、地址怎么写、容器到底能做什么。
三类身份
| 角色 | 是什么 | 有私钥吗 | 能否交易 |
|---|---|---|---|
| 晶体管 | ERC-1155 代币,原材料 | 无 | 可,但不同处理器元件不通用 |
| 电路 | ERC-721 资产,固定网表 | 无 | 可,资产与容器一起转让 |
| 容器 | ERC-6551 账户,挂在电路上 | 无,控制权跟随电路 NFT | 不能单独转让 |
| 钱包地址 | 由私钥控制的账户 | 有 | — |
关键区别:电路是资产,容器是账户。资产可以被买卖,账户不能——容器的控制权永远等于持有那枚电路的人。
地址写法
一枚电路的名字必须是「电路号 + 处理器号」的组合,写作 <电路#ID>.<处理器编号>.tape。示例 4246.0.tape 表示 0 号处理器上的第 4246 枚电路。
为什么必须带处理器编号:每台处理器的电路编号都从 1 单独计,「#12」在 0 号与 7 号处理器上是两枚完全不同的电路。
tape:// 规范 v0.2 规定客户端必须接受并统一显示下列写法,其他写法必须报错,不得猜测:
| 形式 | 例子 |
|---|---|
| 规范名字 | 4246.0.tape |
| 省略后缀 | 4246.0 |
| 网址 | tape://4246.0.tape/docs/ |
| 网页别名 | web+tape://4246.0.tape/docs/ |
| 简写 | #4246@0 或 4246@0 |
| 容器地址 | 0x86DD…eA95 |
| 处理器合约 + 编号 | 0x50A9…9DD9#4246 |
多链区号
X Layer 与 Base 在处理器编号前加区号:2 代表 X Layer,3 代表 Base;BNB Chain 不加区号。因此 #1@2.344(或 1.2.344)表示 X Layer 上 344 号处理器的第 1 枚电路。
容器能做什么
| 能力 | 说明 |
|---|---|
| 存放资产 | 可以收各种链上资产,但不能装本协议的电路(不允许套娃) |
| 挂载网站 | 开通后可绑定一个 tape:// 地址,例如 tape://4246.0.tape/ |
| 收发消息 | 作为 TapeSend 的收件端点 |
| 持有算力身份 | 链上 Linux 演示里,机器的所有者就是一个容器 |
| 转出资产 | 需要付一笔很小的协议手续费 |
不能做的事:承载锁仓、质押这类「不可反悔」的承诺;单独转让;脱离电路存在。
挂单期间容器会被冻结,这也是「挂单不能保护未领取奖励」的原因。
常见误区
| 说法 | 事实 |
|---|---|
| 容器是一个钱包 | 钱包属于人,容器属于你那枚电路;它没有私钥,也不能导出 |
| 「#12 电路」 | 编号按处理器各自起算,必须写成 #ID@处理器编号 才唯一 |
| 「#12」和「12.0」是一回事 | 前者是口语简写,#12@0 与 12.0 才指向同一枚电路 |
| 买卖电路能保留容器资产 | 资产随电路走,卖家会一并失去 |
| 电路转让后算力归买家 | 算力跟随电路,这也是电路被当作「矿机」买卖的原因 |
哈希证明什么
链上网站与消息都靠哈希校验:客户端读取容器里的文件后,会核对长度是否等于声明大小、SHA-256 是否等于链上记录,对不上就不显示。它证明的是「你看到的字节与链上登记的一致」,不证明内容本身正确——一个设计糟糕的网站同样可以被完整校验通过。
In one line
Most confusion comes from mixing up "asset" and "account": a circuit is an asset, containers and endpoints are the accounts, and the wallet only proves ownership and pays gas.
Three roles
| Role | What it is | What it looks like | What it does |
|---|---|---|---|
| Circuit | the base asset a tapeout produces, i.e. a circuit NFT | an NFT | held by a container, scored and ranked |
| Container / endpoint | an ERC-6551 account attached to a circuit | 8.888, #4246@0 | send and receive messages, bind a site, hold assets |
| Wallet | a key, not part of the business | an address starting with 0x | sign, prove ownership, pay gas |
From parts to a website
A part is not a circuit, and a circuit is not an account — it stacks like this:
- Parts: NAND and LATCH, the smallest bricks.
- Circuit: wire parts per a netlist and tape out to get a circuit NFT.
- REF: a circuit can reference finished circuits instead of rebuilding them.
- Container: gives a circuit an account, based on ERC-6551.
- DeWEB: binds a website to the container identity via SiteRegistry.
A container: an account bound to a circuit
A circuit container is an on-chain account bound to a circuit NFT, following the ERC-6551 (token-bound account) standard: it gives an NFT its own smart-contract wallet.
- It costs: the BNB Chain listing is 0.012 BNB, and X Layer is 0.08 OKB — do not map one number onto the other. Moving assets out later adds a tiny protocol fee; fees go to the treasury, are swapped into BEM, and 80% is burned periodically.
- No private key: control equals the circuit NFT current holder — whoever holds the circuit can take what is inside.
- It follows the circuit: when the circuit changes hands, its assets and ongoing yield go with it; selling the circuit sells the container too.
- Frozen while listed: a listed circuit freezes its container, and the assets inside are not counted in the listing price.
- No nesting: a container can hold all kinds of on-chain assets, but it cannot hold a circuit from this protocol.
It is not a wallet: a wallet belongs to a person, a container belongs to your circuit.
So a container cannot carry lock-up or staking promises that cannot be undone. Before selling a circuit, take stock and move the assets out.
What a container can do
| Use | Detail |
|---|---|
| Hold assets, receive payment | anyone can send to the container address |
| Host an on-chain site | one container, one site, addressed like tape://4246.0.tape/ |
| Send and receive messages | the container is the TapeSend inbox |
| Own a machine | in the official on-chain Linux demo, the owner is a container |
TapeID
A circuit's on-chain ID is its TapeID, written <circuit#ID>.<area code>.<processor number>. The area code says which chain: BNB Chain omits it, X Layer is 2, Base is 3.
How to read a .tape name
The canonical form is <circuit#ID>.<processor number>.tape, e.g. 4246.0.tape — circuit 4246 on processor 0 (Genesis CPU).
The processor number is required: every processor numbers its circuits from 1, so #12 on processor 0 and on processor 7 are two different circuits; only "processor + #ID" pins one down.
| Form | Example |
|---|---|
| Canonical name | 4246.0.tape |
| Without suffix | 4246.0 |
| URL | tape://4246.0.tape/docs/ |
| Web alias | web+tape://4246.0.tape/docs/ |
| Shorthand | #4246@0 or 4246@0 |
| Container address | 0x86DD…eA95 |
| Processor contract#ID | 0x50A9…9DD9#4246 |
Any other form must error out, no guessing.
Multi-chain example: 1.2.344 (or #1@2.344) is circuit #1 on processor 344 on X Layer.
The classic mistake
Typing a 0x address as the account.A wallet address only proves ownership; it is not a chat account. When asked for an account, use a container or endpoint such as 8.888 or #4246@0.
What a hash proves
A hash is a file fingerprint: it proves you fetched the published copy, not that the content is true. To judge the content, look at who published it.