# Send Million Bit Homepage NFTs to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "millionbit-mint",
    "name": "Million Bit Homepage NFTs",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/millionbithomepage/millionbit-mint",
    "canonicalUrl": "https://clawhub.ai/millionbithomepage/millionbit-mint",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/millionbit-mint",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=millionbit-mint",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "package.json",
      "scripts/check_availability.sh",
      "scripts/check_price.sh",
      "scripts/config.sh",
      "scripts/find_available_plots.sh",
      "scripts/helpers/abi_encode.js"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "millionbit-mint",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T04:46:21.606Z",
      "expiresAt": "2026-05-07T04:46:21.606Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=millionbit-mint",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=millionbit-mint",
        "contentDisposition": "attachment; filename=\"millionbit-mint-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "millionbit-mint"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/millionbit-mint"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/millionbit-mint",
    "downloadUrl": "https://openagent3.xyz/downloads/millionbit-mint",
    "agentUrl": "https://openagent3.xyz/skills/millionbit-mint/agent",
    "manifestUrl": "https://openagent3.xyz/skills/millionbit-mint/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/millionbit-mint/agent.md"
  }
}
```
## Documentation

### 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 <skill-directory>
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:

SizePixelsVisibilityRelative Cost16x16256Tiny icon1x (cheapest)32x321,024Small logo~4x64x644,096Clearly visible~16x128x12816,384Prominent~64x

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

### 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 <width> <height>

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 <width> <height> --limit <N>

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 <x1> <y1> <x2> <y2>

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 <input_image> <width> <height> [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 <image_path> <x1> <y1> <x2> <y2> <url>

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.

ScriptPurposeInputscripts/check_price.shGet current mint price<width> <height> or <x1> <y1> <x2> <y2>scripts/check_availability.shCheck if coordinates are free<x1> <y1> <x2> <y2>scripts/find_available_plots.shScan grid for open spots<width> <height> [--limit N]scripts/resize_image.shResize image to plot size<input> <width> <height> [output]scripts/prepare_mint.shFull pipeline: outputs tx JSON<image> <x1> <y1> <x2> <y2> <url> [--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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: millionbithomepage
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-30T04:46:21.606Z
- Expires at: 2026-05-07T04:46:21.606Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/millionbit-mint)
- [Send to Agent page](https://openagent3.xyz/skills/millionbit-mint/agent)
- [JSON manifest](https://openagent3.xyz/skills/millionbit-mint/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/millionbit-mint/agent.md)
- [Download page](https://openagent3.xyz/downloads/millionbit-mint)