Tokenized Block
Tokenized-Block.app · Build a block → B-20 on Base · no admin, no minter.
Create, Launch, Liquidity, Swap, Send, and Market pay spend real ETH (measured network gas beside those CTAs; Real Create also sends a separate 0.00005 ETH service fee). Lookup, Quote, Read, gallery, and browsing asks do not spend — they are free to try. What you create is permanent: no admin, no minter, no way to change the name, the logo or the description afterwards. Nobody can undo it — not you, not us.
This account accepted mainnet cost within the last 30 days. A pre-checked box is only a reminder. Create, Launch, Liquidity, Swap, and Send stay closed until you tick the money re-ack below for this visit — restore alone must not authorize irreversible sends (Create fee included). Re-ticking the box above is not enough after restore.
Create your block
Name and symbol first — everything else is optional or comes after.
Live preview · engraved on create
Add an image — optional, permanent (replaces the generated logo)
Your block look Colours, shards and material — engraved on create. Optional; preview updates live.
Network: Practice · Base Sepolia · Permanent · Practice: no Tokenized Block fee · no admin · What you will sign
A Create transaction already mined for this address, but this page still reads no code there (Blocked). Clicking Create again can pick a new salt and burn a second fee for a different block. This page does not invent an explorer answer — check the address yourself, then confirm below.
Address: —
Free-salt (or a salt edit) reserved a different block address than the one you last previewed in « What you will sign ». This page will not open your wallet until you confirm the new address below.
New address: —
Your block
Companion home — engraved look + on-chain facts you can re-read. The HP bar is the market cap, and nothing else.
Vitals
Derived from re-readable chain facts — no invented HP, no trust score. HP is the market cap and nothing else. A block goes quiet when the chain goes quiet about it, not on a timer. Signs that were not measured do not lower it.
History
This block — recent Transfer logs (eth_getLogs window) as dated evidence + explorer links. Creator out/in labeled only when create tx.from is measured — Creator Transfer out ≠ dump / murder verdict (address match on that Transfer only). Not a trust or scammer score.
Care cosmetic
Local décor / care marks for this companion home. Browser-local — not on-chain vitality. Care and History stay separate panels.
Cosmetic skins
Reversible look tint on the décor card. Stored in this browser only — never an HP / heal amount.
Care marks (local log)
Optional notes. You may attach a Send tx hash if you chose to send units — we do not invent doctor fees.
X identity opt-in
Paste your X handle to show a profile link on this companion home. Browser-local — Create still works without X. Not a verification badge.
Link handle (you paste)
Opt-in only. We do not scrape X until you paste a handle here. Empty or invalid → no avatar / no profile claim.
Identity on this home
Displayed only after a valid handle is saved in this browser for this block.
What you will sign Destination, data head, gas — open before you confirm in the wallet.
On-chain state Re-read after create — never inferred from a successful send.
My blocks Your connected wallet’s creations on this network — scanned on-chain, not a vault.
Connect a wallet, then scan. Creators come from each creation tx (tx.from), never from the log alone.
Send block tokens
ERC-20 transfer of this block’s token only. Practice vs Real follows the page tab. Wallet must confirm.
List block units for sale
Object of sale = B-20 token units of this block (fungible).
The engraved look rides contractURI for all holders — selling units is not exclusive design IP.
Ask is stored in this browser (unsigned intent) — not an on-chain orderbook yet. No escrow, no marketplace fee.
Market Buy block units from a person at their ask — not the Swap pool. Browser listings · not on-chain orderbook yet.
Look is shared: holding units shows this contract’s engraved appearance; it is not exclusive IP. Same look as every other holder of this token.
Swap vs Market: Swap = trade in a pool; Market = peer ask for a stated token amount. No marketplace fee invented here.
Listings below are browser / link intents keyed by network + seller — unsigned and unverified until you check the seller address and on-chain balances yourself.
Settle ask — 2-step handshake (no escrow)
- 1. Buyer pays ask ETH to seller (value transfer).
- 2. Seller Sends the listed block token amount to buyer (existing Send).
Next steps After create: launch the pool, add liquidity, or swap — open one at a time.
Put the whole supply in the pool with only the token. Buyers bring the ETH — no capital needed to launch.
Launch quote on this page is native ETH only (Uniswap v4 PoolKey fee 5000 = 0.5 % · tickSpacing 200). This selector does not price the Launch pool in WETH, USDC, or a tokenized stock. Enterprise self-stock valuation (buyers pay in NVDAc / AAPLc / …) ships on OpenLaunch Launch — registry addresses only, never invented tickers.
The 0.5 % goes to you, because you own the liquidity position — nothing is routed to us, and there is no platform cut. Know the other half of that: the key that collects the fee is the same key that can withdraw the liquidity. Uniswap v4 governs both with one check, and they cannot be separated without a purpose-built contract. So this pool is not "locked forever" — you keep control, and anyone buying can see that on chain.
Fee is NONE forever — cannot be raised later. This valuation sets the irreversible start price. Below 1 ETH whole-supply (floor documented 2026-09-07) Launch needs a second confirm — snipers can buy nearly free; this page does not invent a “correct” price.
Whole-supply start is below 1 ETH (threshold documented 2026-09-07). Initialize engraves that price forever; snipers can buy nearly free. Prefer raising the valuation — or tick below if you mean it. Fee stays NONE (unchanged).
This step asks for unlimited allowances (not limited to this one Launch / Liquidity / Swap):
ERC20 → Permit2 uses MAX_UINT256 (token approve).
Permit2 → PositionManager / Router uses MAX_UINT160 amount, with the expiry set to MAX_UINT48 — that is the year ~8,900,000, so it does not expire in any human sense. These are different ceilings — both stay until you revoke.
Revoke later: links appear when this gate arms (chain-correct explorer + revoke.cash).
This page just Launched with native ETH · fee 0 · spacing 200. WETH and USDC use a different PoolKey (fee 3000 · spacing 60) — usually empty right after Launch. Liquidity / Swap stay on ETH to match the pool that holds your supply, unless you knowingly want a second pool. Swap has the same ack (quote shared via this selector).
Tokenized stocks are not offered in this quote list — selecting one is refused (fail-closed). No soft-gate path for stock pairs on GH Pages.
If the pool is empty, this starting value engraves the price forever — it cannot be reinitialized. Initialize + mint are ONE transaction (same as Launch) — refusing mid-way cannot leave an empty pool. Below 1 whole quote unit (ETH/WETH mirrors Launch <1 ETH; other quotes use 1 whole quote-unit) needs a sniper confirm before Run init+mint.
Pool is empty: this starting value will engrave the price forever. Whole-supply start is below 1 whole quote unit (ETH/WETH = Launch <1 ETH floor; USDC/other = 1 whole quote-unit equivalent). Snipers can buy nearly free. Prefer raising the value — or tick below if you mean it.
This step asks for unlimited allowances (not limited to this one Launch / Liquidity / Swap):
ERC20 → Permit2 uses MAX_UINT256 (token approve).
Permit2 → PositionManager / Router uses MAX_UINT160 amount, with the expiry set to MAX_UINT48 — that is the year ~8,900,000, so it does not expire in any human sense. These are different ceilings — both stay until you revoke.
Revoke later: links appear when this gate arms (chain-correct explorer + revoke.cash).
Quote currency is the Liquidity selector (#poolDevise) — native ETH matches Launch; WETH/USDC is a different PoolKey.
After native Launch (ETH · fee 0 · spacing 200), WETH/USDC hit a different PoolKey (3000/60) — often empty. Tick here (or on Liquidity) before Run, or switch quote back to ETH on the Liquidity tab.
Tokenized stocks are not in the Liquidity quote selector — Quote/Swap refuse them here (fail-closed).
This step asks for unlimited allowances (not limited to this one Launch / Liquidity / Swap):
ERC20 → Permit2 uses MAX_UINT256 (token approve).
Permit2 → PositionManager / Router uses MAX_UINT160 amount, with the expiry set to MAX_UINT48 — that is the year ~8,900,000, so it does not expire in any human sense. These are different ceilings — both stay until you revoke.
Revoke later: links appear when this gate arms (chain-correct explorer + revoke.cash).
Lookup Find blocks you made, or read any block address on-chain.
Your blocks
Read a block
How a Tokenized Block works Secondary — what a block is, and what nobody can change once it exists.
A block is bytes you own. You choose a name, a symbol, a supply and a
description. The app turns that into a B-20 token — Base's native token standard, where the
token is a precompile rather than a deployed contract. Its address always starts with
0xb200, and its code is exactly one byte: 0xef.
Explorers will call it an ERC-20, and they are not wrong. A block emits the
same Transfer events as any token, on purpose — that is what lets Uniswap, wallets
and explorers handle it without knowing anything about B-20. What sets it apart is not the
interface but the code behind it: a deployed contract carries thousands of bytes and can be put
behind a proxy, while EIP-3541 forbids any deployed contract from starting with 0xEF.
A block's one byte cannot be produced by a deployment at all — measured today: this block carries
1 byte, USDC carries 1852.
It is born finished. In the same single transaction, the block is created,
its supply cap is set, and the whole supply is minted to you. There is no window in between.
No account holds DEFAULT_ADMIN_ROLE or MINT_ROLE — not you, not us,
not anyone. That is not a promise we make; it is a consequence of the transaction you sign,
and you can check it yourself with hasRole on any block.
What that costs you: nothing about the block can ever change. Not its name,
not its logo, not its description. Minting one more unit is impossible because the supply already
equals the cap and no one holds the role.
And you cannot destroy them either: burn needs BURN_ROLE, which nobody
holds — so the supply can never go down. Sending units to a dead address takes them out of
circulation, but totalSupply does not move.
Immutability is the feature and the price, in both directions.
The salt fixes the address. Your block's address is derived from the standard, your wallet address, and the salt you choose. Two different wallets with the same salt get two different blocks. The same wallet with the same salt gets the same address — so a salt you have already used is already taken.
Then it can be traded. On this GH Pages create track, Launch pairs the block with native ETH (fee 0 · spacing 200). Liquidity / Swap may also target WETH or USDC on Base Real — those are different PoolKeys (fee 3000 · spacing 60), often empty after Launch. Tokenized-stock quotes are not selectable here (Coinbase B20 stocks live in the issuer registry / OpenLaunch LaunchForm). The app builds every offered transaction in your browser and shows you the state it reads back from the chain between each step.
This page never holds a key and never holds funds. It encodes a transaction and hands it to your wallet. Your wallet shows it to you, and you decide. Nothing is charged: what you pay is the network's gas, to the network, and nothing else.
⚠️ What is not proven yet. Everything above has been exercised end to end on Base Sepolia — a test network. The encoders are compared byte for byte against the reference toolchain, but nothing here has been used at scale by anyone other than its author. Treat it as working code, not as a finished product.