millionbit-mint
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.
Install
mkdir -p .claude/skills/millionbit-mint && curl -L -o skill.zip "https://mcp.directory/api/skills/download/6035" && unzip -o skill.zip -d .claude/skills/millionbit-mint && rm skill.zipInstalls to .claude/skills/millionbit-mint
About this skill
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:
| 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 <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 addressvalue-- ETH to send (the mint price, in hex wei)data-- the ABI-encoded calldatachainId-- 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 | <width> <height> or <x1> <y1> <x2> <y2> |
scripts/check_availability.sh | Check if coordinates are free | <x1> <y1> <x2> <y2> |
scripts/find_available_plots.sh | Scan grid for open spots | <width> <height> [--limit N] |
scripts/resize_image.sh | Resize image to plot size | <input> <width> <height> [output] |
scripts/prepare_mint.sh | Full pipeline: outputs tx JSON | <image> <x1> <y1> <x2> <y2> <url> [--dry-run] |
Common Issues
- "Coordinates overlap" -- that spot is taken. Use
find_available_plots.shto find open spots. - "must be a multiple of 16" -- all coordinates and dimensions must be divisible by 16.
- Image wrong size --
prepare_mint.shauto-resizes if the image doesn't match the plot dimensions. - Price changed -- price increases with each new mint. Re-run
check_price.shfor current pricing. - Transaction reverts -- ensure your wallet has enough ETH on Base to cover the price plus gas.
Technical Details
- Contract:
0x25b9afe64bb3593ec7e9dc7ef386a9b04c53f96eon 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
More by openclaw
View all skills by openclaw →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversExtract plot data from images with Axiomatic AI. Use advanced web plot digitizer features for scientific imaging and ana
Access Smithsonian Open Access API to explore 3+ million objects from museums like the Smithsonian Design Museum and NMN
Enhance software testing with Playwright MCP: Fast, reliable browser automation, an innovative alternative to Selenium s
Interactive MCP server for collecting user feedback and executing commands during AI-assisted development. Features a we
Peekaboo empowers mac how to screen capture, mac screenshot, and window management with tools for screen snip on mac and
Convert almost anything to Markdown. Transforms PDFs, images, web pages, DOCX, XLSX, and other formats into clean Markdo
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.