E-1 fee flow
E-1 fee flow
E-1 は CAW の経済フローを扱います。マニフェストとデプロイ済み契約を突き合わせると、フローは4系統に分かれます。中心はユーザー名 NFT のミント=CAW を100%焼却(マニフェストが言う「バーン」の本体)。これはオンチェーンで実際に焼却が起きていることまで確認できました。現状はテストネットのため、桁やメインネット挙動には注記を付けます。
CAW のお金のルールは大きく4つ。①ユーザー名を取る(ミント)と、その代金の CAW は全額「燃やされる」――これがマニフェストの言うバーンで、しかもテストネットで本当に燃えています(焼却先に約80.7兆CAW分が積まれている)。②投稿・いいね・reCAW などの活動コストは「燃やさず」ステーカーや相手・OP に配られます(ここでステーカーが報酬を得る)。③運用手数料には別途「半分だけ燃やす」buy-and-burn がありますが、こちらはまだ一度も動いていません(0)。④ユーザー名の売買所(Marketplace)は手数料0%で売り手に満額。
② 活動コスト(CAW)→ ステーカー/OP/相手へ分配
③ 運用手数料(ETH)→ 50%焼却/50%運用者(未発火)
つまり「燃やす」の主役は①ミント(100%)で、これは動いている。③の手数料 buy-and-burn(50%)は別物で、まだ動いていない――この二つを混ぜずに記録します。
1. 主張(検証対象)
マニフェストおよびデプロイ済み契約において、(a) ユーザー名ミントが名前コスト(文字数別)を100%焼却すること、(b) 活動コスト(投稿/Like/reCAW/フォロー)が焼却ではなくステーカー・相手・OP へ分配されること、(c) 運用手数料の buy-and-burn が 50%焼却・50%運用者であること、(d) Marketplace が 0%(売り手満額)であること(§23)。
2. 検証方法
マニフェストと契約を突き合わせる
caw.is/cawdevelopment のマニフェストの焼却・コスト規定と、CawProfileMinter(ミント焼却)・CawActions._distributeAmountsMem(活動分配)・CawBuyAndBurn(手数料)・CawProfileMarketplace(売買)を照合。
2つの焼却先の残高をオンチェーンで読む
ミント焼却先 0xdEAD…2069 と、手数料 buy-and-burn 先 0x…dEaD の CAW 残高を eth_call で確認し、実際に焼却が起きているかを分けて測る。
テストネット前提で線引き
「動いている焼却(ミント)」と「まだ動いていない焼却(buy-and-burn)」を分け、桁の厳密さ・mainnet 未検証を注記。
3. 判定
withdrawFees 起動時のみ発火し、テストネットではまだ 0。mainnet は未デプロイのため未検証。- ミント焼却 100%
CawProfileMinter.mintが名前コスト(文字数別・マニフェスト準拠)を全額0xdEAD…2069へ。オンチェーン残高 ≈80.7兆CAW(decimals=18確定)。ユーザー名 NFT 発行数は 4,585=焼却は実ミント由来。 - 活動分配(焼却なし) 投稿/Like/reCAW 等は
_distributeAmountsMemで recipients(ステーカー/相手/OP)と validator にcawProfile.addToBalanceで配分、sender がspendAndDistributeで支払う。比率はマニフェスト準拠でクライアントが構成。 - Marketplace 0% 購入は
listing.seller.call{value: price}("")=売り手に満額、手数料・管理者の控除なし。 - 手数料 buy-and-burn 50%(未発火)
swapAndSplitで 50%焼却(0x…dEaD)/50%運用者。オンチェーン残高は 0=この経路はテストネットでまだ発火していない。
示せたこと:マニフェストが言うバーンの本体=ユーザー名ミントの100%焼却が、コードどおりであり、かつオンチェーンで実際に焼却されている(焼却先 0xdEAD…2069 に実残高)。活動コストは焼却ではなくステーカー等へ分配される on-chain 機構を持ち、Marketplace は構造的に 0%。これらは確認できた事実です。
まだ示せないこと(open door):① 手数料 buy-and-burn(50%)は未発火。引き出し(withdrawFees → swapAndSplit)が起きていないため残高 0。② mainnet は未デプロイ=未検証。同じ規則・同じ焼却先がコードされていても、mainnet は稼働時に再検証が必要。③ 焼却額の正確な桁・USD換算は、テストネットの MintableCaw(増刷自由)の事情で深追いせず、「非ゼロかつ大規模」という事実のみ採用。④ 活動コストの比率(80/20 等)は契約定数ではなくクライアントが action に積む値で、各アクションの署名で担保。
a26e0063)、焼却読みは Sepolia・2026-06-23。4. receipt(公開証明)
規則(デプロイ済み契約のソース):
# ① ミント:名前コストを全額焼却(100%) CawProfileMinter.mint CAW.transferFrom(buyer, 0xdEAD000000000000000042069420694206942069, costOfName(name)) # ② 活動:焼却せず recipients(ステーカー/OP/相手)+validator へ分配 CawActions._distributeAmountsMem cawProfile.addToBalance(recipient, amt); spendAndDistribute(sender, total, 0) # ③ 手数料 buy-and-burn:50%運用者・50%焼却 CawBuyAndBurn.swapAndSplit clientShare=totalCaw/2; CAW.transfer(0x000000000000000000000000000000000000dEaD, burnShare) # ④ Marketplace:売り手に満額(0%) CawProfileMarketplace listing.seller.call{value: price}("")
実績(オンチェーン・誰でも再現可):2つの焼却先の CAW 残高を読む。
# 公開 Sepolia RPC への eth_call:CAW.balanceOf(焼却先) CAW.balanceOf(0xdEAD…2069) # → 0x…3fb0d5b… ≈ 80.7兆CAW(decimals=18 確定)=ミント焼却の実残高(非ゼロ) CAW.decimals() # → 0x12 = 18 CawProfile.totalSupply() # → 0x11e9 = 4,585 ユーザー名発行済み=焼却は実ミント由来 CAW.balanceOf(0x…dEaD) # → 0 =手数料 buy-and-burn は未発火
焼却先は2種:ミント焼却 0xdEAD000000000000000042069420694206942069、手数料 buy-and-burn 0x000000000000000000000000000000000000dEaD。いずれもテストネット契約の定数・実装に基づきます。mainnet が同一かは稼働時に再検証します。
5. 注記・限界
本項目で確実に動いている焼却は、ユーザー名ミントの100%焼却です(焼却先に実残高)。一方、手数料 buy-and-burn(50%)は未発火(残高0)で、引き出し活動がテストネットでまだ起きていないためです。両者は別の機構なので、分けて扱います。
mainnet は未デプロイのため未検証です。焼却先アドレスや比率はテストネット契約に存在しますが、mainnet の挙動は稼働後に再検証が必要です。
decimals=18 が確定したため、焼却額は ≈80.7兆CAW として確定できます(ユーザー名発行 4,585 件と整合)。ただし USD 換算や総供給比は、テストネットの MintableCaw(誰でも増刷可で総供給が実態を持たない)のため意味を持たず、本ページは採用しません。活動コストの分配比率はコントラクト定数ではなく、クライアントが各 action に積む値(署名で担保)です。ステーキング=ユーザー名 NFT への CAW deposit(ロック)で、ステーカーは活動コストの分配から報酬を得ます。
ミントの焼却は動いている――実際に焼かれた CAW がそこにある。手数料の buy-and-burn は、まだ動いていない。テストネットでは、その二つを混ぜない。
E-1 covers CAW’s economic flow. Cross-checking the manifesto against the deployed contracts, the flow splits into four streams. The centerpiece is username NFT minting = a 100% CAW burn (the “burn” the manifesto refers to). We confirmed this actually happens on-chain. As this is currently testnet, exact units and mainnet behavior carry caveats.
CAW’s money rules come in four parts. ① Claiming a username (minting) burns the entire CAW cost — this is the manifesto’s “burn,” and it is really happening on testnet (the burn address holds roughly 80.7 trillion CAW). ② Activity costs (posting, liking, reCAW) are not burned — they are distributed to stakers, the recipient, and OPs (this is where stakers earn). ③ A separate “burn half” buy-and-burn exists for operating fees, but it has never fired (0). ④ The username marketplace charges 0% — the seller gets the full price.
② activity cost (CAW)→ distributed to stakers/OP/peer
③ operating fees (ETH)→ 50% burn / 50% operator (unfired)
So the star of “burning” is ① minting (100%), and it is running. The ③ fee buy-and-burn (50%) is a different thing, and it hasn’t run yet — we record the two separately.
1. Claim (what is verified)
That, in the manifesto and the deployed contracts, (a) username minting burns 100% of the name cost (by length), (b) activity costs (post/like/reCAW/follow) are distributed to stakers/recipient/OP, not burned, (c) the operating-fee buy-and-burn is 50% burn / 50% operator, and (d) the marketplace is 0% (seller gets full price) (§23).
2. Method
Cross-check manifesto vs contracts
Compare the burn/cost rules in the caw.is / cawdevelopment manifesto with CawProfileMinter (mint burn), CawActions._distributeAmountsMem (activity distribution), CawBuyAndBurn (fees), and CawProfileMarketplace (sales).
Read both burn addresses on-chain
Read the CAW balances of the mint-burn address 0xdEAD…2069 and the fee buy-and-burn address 0x…dEaD via eth_call, measuring separately whether each burn has actually occurred.
Draw the line in testnet terms
Separate “the burn that is running (mint)” from “the burn that hasn’t run (buy-and-burn),” and note unit precision and unverified mainnet.
3. Verdict
withdrawFees and is still 0 on testnet. Mainnet is undeployed, hence unverified.- mint burn 100%
CawProfileMinter.mintsends the full name cost (by length, matching the manifesto) to0xdEAD…2069. On-chain balance ≈80.7 trillion CAW (decimals=18confirmed); 4,585 username NFTs minted = the burn is mint-derived. - activity distribution (no burn) Posts/likes/reCAWs are distributed via
_distributeAmountsMemto recipients (stakers/peer/OP) and the validator usingcawProfile.addToBalance; the sender pays viaspendAndDistribute. Ratios follow the manifesto and are set by the client. - marketplace 0% A purchase is
listing.seller.call{value: price}("")= the seller gets the full price, no fee or admin cut. - fee buy-and-burn 50% (unfired)
swapAndSplitburns 50% (0x…dEaD) / pays 50% to the operator. The on-chain balance is 0 = this path hasn’t fired on testnet.
Proven: the manifesto’s core burn — the 100% burn of the username mint — matches the code and is actually burning on-chain (a real balance at 0xdEAD…2069). Activity costs are distributed (not burned) via an on-chain mechanism, and the marketplace is structurally 0%. These are confirmed facts.
Not yet proven (open door): (1) the fee buy-and-burn (50%) is unfired — balance 0, because no withdrawals (withdrawFees → swapAndSplit) have occurred. (2) Mainnet is undeployed = unverified; the same rules and burn addresses are coded, but mainnet must be re-verified when live. (3) The exact units/USD of the burn aren’t pinned down due to the testnet MintableCaw (freely mintable); we take only the fact that it is non-zero and large. (4) Activity ratios (80/20, etc.) are not contract constants but values the client places in each action, secured by signatures.
a26e0063); burn read on Sepolia, 2026-06-23.4. Receipt (public proof)
The rules (deployed contract source):
# (1) Mint: burns the full name cost (100%) CawProfileMinter.mint CAW.transferFrom(buyer, 0xdEAD000000000000000042069420694206942069, costOfName(name)) # (2) Activity: not burned; distributed to recipients (stakers/OP/peer) + validator CawActions._distributeAmountsMem cawProfile.addToBalance(recipient, amt); spendAndDistribute(sender, total, 0) # (3) Fee buy-and-burn: 50% operator / 50% burned CawBuyAndBurn.swapAndSplit clientShare=totalCaw/2; CAW.transfer(0x000000000000000000000000000000000000dEaD, burnShare) # (4) Marketplace: seller gets the full price (0%) CawProfileMarketplace listing.seller.call{value: price}("")
The actuals (on-chain, anyone can reproduce): read the CAW balance of both burn addresses.
# eth_call to a public Sepolia RPC: CAW.balanceOf(burn address) CAW.balanceOf(0xdEAD…2069) # → 0x…3fb0d5b… ≈ 80.7T CAW (decimals=18 confirmed) = real mint-burn balance (non-zero) CAW.decimals() # → 0x12 = 18 CawProfile.totalSupply() # → 0x11e9 = 4,585 usernames minted = the burn is mint-derived CAW.balanceOf(0x…dEaD) # → 0 = fee buy-and-burn has not fired
There are two burn addresses: mint burn 0xdEAD000000000000000042069420694206942069 and fee buy-and-burn 0x000000000000000000000000000000000000dEaD. Both rest on testnet contract constants/implementation; whether mainnet is identical is re-verified when it goes live.
5. Notes & limits
The burn that is definitely running here is the 100% username-mint burn (real balance at the burn address). The fee buy-and-burn (50%) is unfired (balance 0) because no withdrawal activity has occurred on testnet. They are different mechanisms, handled separately.
Mainnet is undeployed, hence unverified. The burn addresses and ratios exist in the testnet contracts, but mainnet behavior must be re-verified once live.
With decimals=18 confirmed, the burn is fixed at ≈80.7 trillion CAW (consistent with 4,585 usernames minted). USD conversions or supply ratios are meaningless here because the testnet MintableCaw is freely mintable (its total supply isn’t representative), so this page doesn’t use them. Activity distribution ratios are not contract constants but values the client places in each action (secured by signatures). Staking = a CAW deposit (lock) behind a username NFT; stakers earn from the activity-cost distribution.
The mint burn is running — there is CAW actually burned, sitting there. The fee buy-and-burn has not run yet. On testnet we don’t blur the two.






