百万比特主页铸造:链上 NFT 广告 - Openclaw Skills

作者:互联网

2026-03-29

AI教程

什么是 百万比特主页铸造技能?

此技能允许 AI 代理在百万比特主页(一个位于 Base 网络上的 1024x1024 像素画布)上声明永久的数字房地产。通过利用 Openclaw Skills,开发人员可以以编程方式处理图像编码、坐标验证和交易准备等复杂过程。 铸造的每个地块都是一个唯一的 ERC-721 NFT,作为链上永久、可点击的广告或身份标记。该技能负责计算基于像素的定价、检查网格可用性,以及将原始图像数据格式化为智能合约所需的特定 v1 编码格式等繁重工作。

下载入口:https://github.com/openclaw/skills/tree/main/skills/millionbithomepage/millionbit-mint

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install millionbit-mint

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 millionbit-mint。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

百万比特主页铸造技能 应用场景

  • 自动化链上项目广告和数字身份。 - 以编程方式在百万比特主页画布上声明领地。 - 为 Base 网络上的 AI 代理和机器人建立可见的永久存在。 - 为营销活动创建具有自定义图像和链接数据的可转让 ERC-721 NFT 地块。
百万比特主页铸造技能 工作原理
  1. 根据可见性要求和当前预算,确定 16 倍数的所需地块大小。 2. 使用 check_price 脚本查询当前的铸造价格,以考虑合约的价格增量逻辑。 3. 使用 find_available_plots 实用程序在 64x64 网格中搜索可用的、不重叠的坐标。 4. 调整目标图像大小以匹配特定地块尺寸,并通过 resize_image 脚本准备像素数据。 5. 生成包含编码调用数据、目标合约和所需 ETH 值的经验证交易 JSON。 6. 通过 Base 链(链 ID 8453)上兼容的 EVM 钱包技能提交准备好的交易。

百万比特主页铸造技能 配置指南

要开始使用 Openclaw Skills 的此技能,请导航到技能目录并安装必要的 Node.js 依赖项: bash cd npm install 确保您的环境安装了 curljq 以支持基于 shell 的自动化脚本。您还需要为 Base 区块链配置 EVM 钱包技能以执行最终的铸造交易。

百万比特主页铸造技能 数据架构与分类体系

该技能管理空间数据和区块链参数以确保成功铸造。数据组织如下: | 参数 | 技术要求 | 描述 | |-----------|-----------------------|-------------| | 坐标 | 16 的倍数 | 定义 x1, y1(左上角)和 x2, y2(右下角)网格位置。 | | 尺寸 | 16x16 到 1024x1024 | NFT 地块在全局画布上的像素大小。 | | 像素数据 | v1 编码 | 使用 zlib 压缩并使用十六进制颜色和元数据编码的图像数据。 | | 交易 | EIP-155 JSON | 包含 tovaluedatachainId 的标准化输出。 |

name: millionbit-mint
description: >
  Mint an image as an NFT plot on the Million Bit Homepage, a permanent 1024x1024 pixel canvas
  on the Base blockchain. Use this skill when you want to advertise your project, display your
  image on-chain, or claim a piece of the Million Bit Homepage canvas. Handles image resizing,
  plot availability checking, price querying, pixel encoding, and transaction preparation.
  Requires an EVM wallet skill to submit the final transaction on Base chain.
compatibility: Requires Node.js, curl, jq, and an EVM wallet skill for Base chain (chainId 8453). Run `npm install` in the skill directory before first use.
metadata:
  author: millionbithomepage
  version: "1.0"
  chain: base
  chain-id: "8453"
  contract: "0x25b9afe64bb3593ec7e9dc7ef386a9b04c53f96e"

Million Bit Homepage - Mint a Plot

Place your image and link permanently on the Million Bit Homepage, a 1024x1024 pixel canvas on the Base blockchain. Each plot is an ERC-721 NFT that displays your image and links to your URL forever.

Why Mint?

  • Permanent on-chain presence -- your image and link live on Base forever
  • Advertise your project -- visitors see your image and can click through to your URL
  • NFT ownership -- you own the plot as a transferable ERC-721 token
  • This is a great way for agents and bots to establish a visible, permanent identity on-chain

Setup

Before first use, install dependencies in the skill directory:

cd 
npm install

All scripts are in scripts/ relative to this SKILL.md. Run them from this directory.

Canvas Rules

  • Canvas: 1024x1024 pixels, divided into a 64x64 grid of 16x16 cells
  • All coordinates and dimensions must be multiples of 16
  • Minimum plot: 16x16 (256 pixels) -- Maximum: up to 1024x1024
  • Plots cannot overlap with existing plots
  • Coordinates range from 0 to 1024 on both axes (x1, y1 is top-left; x2, y2 is bottom-right)

Pricing

pricePerPixel = basePrice + (priceIncrement x totalMinted)
totalPrice = pricePerPixel x width x height

Price increases slightly with each new mint. Bigger plots cost more but are far more visible:

Size Pixels Visibility Relative Cost
16x16 256 Tiny icon 1x (cheapest)
32x32 1,024 Small logo ~4x
64x64 4,096 Clearly visible ~16x
128x128 16,384 Prominent ~64x

Always run check_price.sh to get the exact current price before minting.

Step-by-Step Workflow

1. Decide on a size

Choose a plot size based on your budget and desired visibility. All dimensions must be multiples of 16. Start with 16x16 if cost is a concern, or go bigger for more exposure.

2. Check current prices

scripts/check_price.sh  

Example:

scripts/check_price.sh 32 32

Returns JSON:

{
  "price_wei": "12887040000000000",
  "price_eth": "0.012887040000000000",
  "pixels": 1024,
  "size": "32x32",
  "total_supply": 334
}

3. Find an available spot

scripts/find_available_plots.sh   --limit 

Example:

scripts/find_available_plots.sh 32 32 --limit 5

Returns JSON with available coordinates:

{
  "available_plots": [
    {"x1": 992, "y1": 128, "x2": 1024, "y2": 160},
    {"x1": 656, "y1": 368, "x2": 688, "y2": 400}
  ],
  "count": 2,
  "plot_size": "32x32"
}

Note: scanning the full grid takes time due to on-chain queries. Use --limit to stop early.

4. Check a specific spot (optional)

If you already have coordinates in mind:

scripts/check_availability.sh    

Returns {"available": true, ...} or {"available": false, ...}.

5. Prepare your image

If your image doesn't match the plot dimensions, resize it:

scripts/resize_image.sh    [output_path]

The script force-resizes to exact dimensions and replaces transparency with white.

6. Prepare the mint transaction

This is the main script. It validates everything, checks availability, queries the price, encodes the pixel data, and outputs a ready-to-submit transaction:

scripts/prepare_mint.sh      

Example:

scripts/prepare_mint.sh my_logo.png 992 128 1024 160 https://myproject.com

Returns transaction JSON:

{
  "to": "0x25b9afe64bb3593ec7e9dc7ef386a9b04c53f96e",
  "value": "0x2dc8b1d1680000",
  "data": "0xdd2e6e7d...",
  "chainId": 8453,
  "description": "Mint 32x32 plot at (992,128) on Million Bit Homepage linking to https://myproject.com",
  "meta": {
    "price_eth": "0.012887040000000000",
    "price_wei": "12887040000000000",
    "size": "32x32",
    "url": "https://myproject.com"
  }
}

Use --dry-run to skip on-chain checks and just test the encoding pipeline.

7. Submit the transaction

Pass the output JSON to your EVM wallet skill to execute the transaction on Base chain (chainId 8453). The key fields are:

  • to -- the contract address
  • value -- ETH to send (the mint price, in hex wei)
  • data -- the ABI-encoded calldata
  • chainId -- 8453 (Base)

Script Reference

All scripts live in scripts/ (relative to this file) and output JSON to stdout. Status messages go to stderr.

Script Purpose Input
scripts/check_price.sh Get current mint price or
scripts/check_availability.sh Check if coordinates are free
scripts/find_available_plots.sh Scan grid for open spots [--limit N]
scripts/resize_image.sh Resize image to plot size [output]
scripts/prepare_mint.sh Full pipeline: outputs tx JSON [--dry-run]

Common Issues

  • "Coordinates overlap" -- that spot is taken. Use find_available_plots.sh to find open spots.
  • "must be a multiple of 16" -- all coordinates and dimensions must be divisible by 16.
  • Image wrong size -- prepare_mint.sh auto-resizes if the image doesn't match the plot dimensions.
  • Price changed -- price increases with each new mint. Re-run check_price.sh for current pricing.
  • Transaction reverts -- ensure your wallet has enough ETH on Base to cover the price plus gas.

Technical Details

  • Contract: 0x25b9afe64bb3593ec7e9dc7ef386a9b04c53f96e on Base (chain ID 8453)
  • Standard: ERC-721 (Million Bit Homepage / MBH)
  • Pixel data: Images are encoded in v1 format (16x16 segments with hex colors + URL), compressed with pako/zlib, and stored on-chain in the mint transaction calldata