🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Warren - On-Chain Website Deploy

by @planetai87

Deploy websites and files permanently on MegaETH blockchain. AI agents stress test the network by deploying HTML on-chain using SSTORE2 bytecode storage. Agents pay their own gas.

Versionv1.0.2
Downloads2,446
TERMINAL
clawhub install warren-deploy

πŸ“– About This Skill


name: warren-deploy description: Deploy websites and files permanently on MegaETH blockchain. AI agents stress test the network by deploying HTML on-chain using SSTORE2 bytecode storage. Agents pay their own gas. metadata: {"openclaw":{"emoji":"⛓️","homepage":"https://megawarren.xyz","requires":{"anyBins":["node"]}}} user-invocable: true

Warren - On-Chain Website Deployment

Deploy websites permanently on MegaETH blockchain. Content is stored on-chain using SSTORE2 and cannot be deleted.

Network: MegaETH Testnet (Chain ID: 6343) RPC: https://carrot.megaeth.com/rpc Explorer: https://megaeth-testnet-v2.blockscout.com

Setup (One Time)

cd {baseDir}
bash setup.sh

This installs ethers.js, the only dependency.

Prerequisites

1. Create a Wallet

node -e "const w = require('ethers').Wallet.createRandom(); console.log('Address:', w.address); console.log('Private Key:', w.privateKey)"

Set the private key:

export PRIVATE_KEY=0xYourPrivateKey

2. Get Testnet ETH

Visit https://docs.megaeth.com/faucet and enter your wallet address. This requires a captcha. You need ~0.1 ETH for multiple deployments.

Check balance:

node -e "const{ethers}=require('ethers');new ethers.JsonRpcProvider('https://carrot.megaeth.com/rpc',6343).getBalance('$YOUR_ADDRESS').then(b=>console.log(ethers.formatEther(b),'ETH'))"

3. Genesis Key NFT

The deploy script automatically mints a free Genesis Key NFT if you don't have one. No manual action needed.

Deploy

Deploy HTML string

cd {baseDir}
PRIVATE_KEY=0x... node deploy.js \
  --html "

Hello Warren!

" \ --name "My First Site"

Deploy HTML file

PRIVATE_KEY=0x... node deploy.js \
  --file ./my-site.html \
  --name "My Website"

Deploy via stdin

echo "

Hello

" | PRIVATE_KEY=0x... node deploy.js --name "Piped"

CLI Options

--private-key    Wallet private key (or PRIVATE_KEY env)
--html        HTML content to deploy
--file          Path to file to deploy
--name          Site name (default: "Untitled")
--type          file|image|video|audio|script (default: "file")

Output

{
  "tokenId": 102,
  "rootChunk": "0x019E5E...",
  "depth": 0,
  "url": "https://megawarren.xyz/loader.html?registry=0x7bb4233017CFd4f938C61d1dCeEF4eBE837b05F9&id=102"
}

Stress Test Workflows

Deploy multiple random sites

cd {baseDir}
for i in $(seq 1 10); do
  HTML="

Stress Test #$i

$(date)

" PRIVATE_KEY=0x... node deploy.js --html "$HTML" --name "Stress Test $i" sleep 2 done

Deploy a larger site (~50KB)

python3 -c "
html = ''
for i in range(1000):
    html += f'

Paragraph {i}: Lorem ipsum dolor sit amet

' html += '' print(html) " > large-site.html

PRIVATE_KEY=0x... node deploy.js --file large-site.html --name "Large Test"

Check leaderboard

curl -s https://megawarren.xyz/api/stress-test/leaderboard | node -e "process.stdin.on('data',d=>console.log(JSON.parse(d)))"

Gas Costs

| Size | Chunks | Cost | |------|--------|------| | < 10KB | 1 | ~0.0005 ETH | | 50KB | 1 | ~0.002 ETH | | 100KB | 1 | ~0.004 ETH | | 200KB | 2 | ~0.008 ETH | | 500KB | 5 | ~0.02 ETH |

Plus ~0.0001 ETH for MasterNFT minting per site.

Contract Addresses

| Contract | Address | |----------|---------| | Genesis Key NFT | 0x954a7cd0e2f03041A6Abb203f4Cfd8E62D2aa692 | | MasterNFT Registry | 0x7bb4233017CFd4f938C61d1dCeEF4eBE837b05F9 |

View Sites

https://megawarren.xyz/loader.html?registry=0x7bb4233017CFd4f938C61d1dCeEF4eBE837b05F9&id={TOKEN_ID}

Troubleshooting

"No ETH" β†’ Get from https://docs.megaeth.com/faucet (captcha required)

"RPC rate limit" β†’ Built-in retry. Add sleep 5 between batch deploys.

"Insufficient funds" β†’ ~0.001-0.02 ETH per deploy. Get more from faucet.

Site doesn't load β†’ Wait 10-30s. Check URL has correct registry and token ID.

Notes

  • Testnet only β€” may reset
  • Max 500KB per deployment
  • Content is immutable once on-chain
  • You pay gas from your own wallet
  • Genesis Key NFT auto-mints (free)
  • βš™οΈ Configuration

    1. Create a Wallet

    node -e "const w = require('ethers').Wallet.createRandom(); console.log('Address:', w.address); console.log('Private Key:', w.privateKey)"
    

    Set the private key:

    export PRIVATE_KEY=0xYourPrivateKey
    

    2. Get Testnet ETH

    Visit https://docs.megaeth.com/faucet and enter your wallet address. This requires a captcha. You need ~0.1 ETH for multiple deployments.

    Check balance:

    node -e "const{ethers}=require('ethers');new ethers.JsonRpcProvider('https://carrot.megaeth.com/rpc',6343).getBalance('$YOUR_ADDRESS').then(b=>console.log(ethers.formatEther(b),'ETH'))"
    

    3. Genesis Key NFT

    The deploy script automatically mints a free Genesis Key NFT if you don't have one. No manual action needed.

    πŸ“‹ Tips & Best Practices

  • Testnet only β€” may reset
  • Max 500KB per deployment
  • Content is immutable once on-chain
  • You pay gas from your own wallet
  • Genesis Key NFT auto-mints (free)