Write a new entry
You need an Ethereum wallet (like MetaMask) to write entries. Reading is free and open to everyone.
How this works
What this does
Stores UTF-8 text permanently on Ethereum by encoding it in the data field of zero-value transactions sent to a receiver contract. The text lives in transaction calldata forever — immutable and publicly readable.
This page's contract
This page reads and writes to a verified Solidity contract (EthernalReceiver.sol, solc 0.8.28, optimizer 200 runs). It accepts any call via fallback() and receive(), and lets the deployer withdraw any accidentally sent ETH.
View verified source on Etherscan
To use a different contract, change the CONTRACT_ADDRESS constant at the top of this page's JavaScript.
Encoding (write)
Convert your text to UTF-8 bytes, then hex-encode it into the transaction data field:
data = ethers.hexlify(ethers.toUtf8Bytes("your text here"))
Send a 0-value transaction to the receiver contract address with this data. Gas: 21000 + 16/byte (non-zero) + 4/byte (zero) + 200.
Decoding (read)
Fetch transactions via Etherscan API V2:
GET https://api.etherscan.io/v2/api?chainid={CHAIN_ID}&module=account&action=txlist&address={CONTRACT}&sort=desc&apikey={KEY}
Filter: value == "0", input != "0x", isError == "0". Decode the input field:
text = ethers.toUtf8String(tx.input)
Chain IDs
Sepolia testnet: 11155111 | Ethereum mainnet: 1
No dependencies
You only need an Ethereum wallet and an RPC endpoint (or Etherscan API) to read and write. This page is one possible interface — the protocol is open and anyone can build another.