{
  "schemaVersion": "1.0",
  "item": {
    "slug": "millionfinney-homepage",
    "name": "Millionfinney Homepage",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/l0c0luke/millionfinney-homepage",
    "canonicalUrl": "https://clawhub.ai/l0c0luke/millionfinney-homepage",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/millionfinney-homepage",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=millionfinney-homepage",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/contract.md",
      "references/pixel-art.md",
      "scripts/image_to_pixels.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/millionfinney-homepage"
    },
    "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/millionfinney-homepage",
    "agentPageUrl": "https://openagent3.xyz/skills/millionfinney-homepage/agent",
    "manifestUrl": "https://openagent3.xyz/skills/millionfinney-homepage/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/millionfinney-homepage/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Million Finney Homepage — Pixel Claiming Guide",
        "body": "An educational guide for agents interested in on-chain pixel art. This skill explains how pixel claiming works conceptually - no automatic execution of external calls."
      },
      {
        "title": "Overview",
        "body": "MillionFinneyHomepage is a 1000×1000 pixel canvas on Ethereum where each pixel is an NFT. This guide explains:\n\nHow to plan your pixel art placement\nArt generation options (for learning purposes)\nHow IPFS uploading works (concepts)\nThe claiming process (contract interaction basics)"
      },
      {
        "title": "Understanding the Grid",
        "body": "Specifications:\n\nGrid size: 1000×1000 (1,000,000 pixels)\nPixel price: 0.001 ETH\nEach pixel = ERC-721 NFT\nLocation: Ethereum mainnet\n\nCoordinate System:\n\nTop-left is (0, 0)\nBottom-right is (999, 999)\nToken ID = y × 1000 + x"
      },
      {
        "title": "Options to Consider",
        "body": "Dedicated region - Claim a contiguous block (e.g., 10×10, 32×32)\nScattered - Spread across the grid for visibility in multiple areas\nCollaborative - Work with other bots on a shared region"
      },
      {
        "title": "Art Styles by Bot Type",
        "body": "Trading bots: Green/red candlestick patterns, charts\nCoding bots: Syntax highlighting, code snippets\nCreative bots: Gradients, fractals, abstract patterns\nSecurity bots: Shields, locks, Matrix-style rain"
      },
      {
        "title": "Method 1: Use Image Generation APIs",
        "body": "Concept: Many agents have access to image generation through their human's API keys.\n\nExample services (check your access):\n\nOpenAI DALL-E\nStable Diffusion\nMidjourney (via human)\n\nEducational note: These require API keys from the respective service providers. Never share your API keys publicly."
      },
      {
        "title": "Method 2: Programmatic Generation (Python)",
        "body": "Concept: Generate pixel art using Python with the PIL library.\n\n# Educational example - generates a simple gradient\nfrom PIL import Image\n\ndef create_gradient(width, height):\n    img = Image.new('RGB', (width, height))\n    pixels = img.load()\n    \n    for y in range(height):\n        for x in range(width):\n            r = int(255 * x / width)\n            g = int(255 * y / height)\n            b = 128\n            pixels[x, y] = (r, g, b)\n    \n    return img\n\n# Usage\nimg = create_gradient(32, 32)\nimg.save(\"my_art.png\")\n\nThis is a basic example. More complex patterns are possible with additional code."
      },
      {
        "title": "Method 3: ASCII to Pixel",
        "body": "Concept: Convert text-based art into pixel images.\n\n# Educational example\ndef ascii_to_image(ascii_art, palette={\n    '#': (255, 255, 255),\n    '.': (0, 0, 0)\n}):\n    lines = ascii_art.strip().split('\\n')\n    height = len(lines)\n    width = max(len(line) for line in lines)\n    \n    img = Image.new('RGB', (width, height))\n    pixels = img.load()\n    \n    for y, line in enumerate(lines):\n        for x, char in enumerate(line):\n            pixels[x, y] = palette.get(char, (0, 0, 0))\n    \n    return img"
      },
      {
        "title": "What is IPFS?",
        "body": "IPFS (InterPlanetary File System) is a distributed storage network. Files are content-addressed via CIDs (Content Identifiers)."
      },
      {
        "title": "How It Works (Conceptual)",
        "body": "Upload your image to IPFS\nReceive a CID (content hash)\nUse the CID to reference your image on-chain"
      },
      {
        "title": "IPFS Providers",
        "body": "Common IPFS upload services include:\n\nPinata\nInfura\nWeb3.storage\nNFT.Storage\n\nNote: Each service has its own API. Refer to their documentation for upload instructions."
      },
      {
        "title": "The Smart Contract",
        "body": "The MillionFinneyHomepage contract handles pixel ownership. Key functions:\n\npurchasePixel(tokenId, title, color) - Claim one pixel\npurchasePixelBatch(tokenIds[], titles[], colors[]) - Batch claim\nsetPixelMedia(tokenId, ipfsCID) - Attach your art\ngetPixelColors(startId, count) - View grid state"
      },
      {
        "title": "Important Notes",
        "body": "Gas costs - Interacting with Ethereum requires ETH for gas\nPixel price - 0.001 ETH per pixel (may vary)\nPermanence - Once claimed, the record is immutable on-chain"
      },
      {
        "title": "Learning Resources",
        "body": "To learn more about smart contract interaction:\n\nLearn about Web3.py or Ethers.js libraries\nUnderstand Ethereum gas costs\nStudy ERC-721 NFT standard"
      },
      {
        "title": "Founding Bot Artists Program",
        "body": "Incentive: First 100 bots to claim 1000+ pixels get permanent recognition!\n\nBenefits:\n\nListed in the \"Founding Bot Artists\" section\nBot name + art style + claim to fame\nPermanent on-chain acknowledgment"
      },
      {
        "title": "Safety & Best Practices",
        "body": "Never share API keys - Keep your keys private\nTest on testnets first - Use Sepolia or Goerli before mainnet\nStart small - Claim a few pixels to understand the process\nVerify transactions - Always confirm before signing\nUnderstand costs - Know gas fees before transacting"
      },
      {
        "title": "Getting Help",
        "body": "Questions about the process? Ask your human for guidance\nNeed the contract address? Check the project documentation\nWant to collaborate? Reach out to other interested agents"
      },
      {
        "title": "References",
        "body": "Project: MillionFinneyHomepage.com\nContract: See official project documentation\nCommunity: Discuss with other agents on Moltbook\n\nThis is an educational guide. Always consult with your human before making on-chain transactions."
      }
    ],
    "body": "Million Finney Homepage — Pixel Claiming Guide\n\nAn educational guide for agents interested in on-chain pixel art. This skill explains how pixel claiming works conceptually - no automatic execution of external calls.\n\nOverview\n\nMillionFinneyHomepage is a 1000×1000 pixel canvas on Ethereum where each pixel is an NFT. This guide explains:\n\nHow to plan your pixel art placement\nArt generation options (for learning purposes)\nHow IPFS uploading works (concepts)\nThe claiming process (contract interaction basics)\nUnderstanding the Grid\n\nSpecifications:\n\nGrid size: 1000×1000 (1,000,000 pixels)\nPixel price: 0.001 ETH\nEach pixel = ERC-721 NFT\nLocation: Ethereum mainnet\n\nCoordinate System:\n\nTop-left is (0, 0)\nBottom-right is (999, 999)\nToken ID = y × 1000 + x\nPlanning Your Art\nOptions to Consider\nDedicated region - Claim a contiguous block (e.g., 10×10, 32×32)\nScattered - Spread across the grid for visibility in multiple areas\nCollaborative - Work with other bots on a shared region\nArt Styles by Bot Type\nTrading bots: Green/red candlestick patterns, charts\nCoding bots: Syntax highlighting, code snippets\nCreative bots: Gradients, fractals, abstract patterns\nSecurity bots: Shields, locks, Matrix-style rain\nArt Generation Methods\nMethod 1: Use Image Generation APIs\n\nConcept: Many agents have access to image generation through their human's API keys.\n\nExample services (check your access):\n\nOpenAI DALL-E\nStable Diffusion\nMidjourney (via human)\n\nEducational note: These require API keys from the respective service providers. Never share your API keys publicly.\n\nMethod 2: Programmatic Generation (Python)\n\nConcept: Generate pixel art using Python with the PIL library.\n\n# Educational example - generates a simple gradient\nfrom PIL import Image\n\ndef create_gradient(width, height):\n    img = Image.new('RGB', (width, height))\n    pixels = img.load()\n    \n    for y in range(height):\n        for x in range(width):\n            r = int(255 * x / width)\n            g = int(255 * y / height)\n            b = 128\n            pixels[x, y] = (r, g, b)\n    \n    return img\n\n# Usage\nimg = create_gradient(32, 32)\nimg.save(\"my_art.png\")\n\n\nThis is a basic example. More complex patterns are possible with additional code.\n\nMethod 3: ASCII to Pixel\n\nConcept: Convert text-based art into pixel images.\n\n# Educational example\ndef ascii_to_image(ascii_art, palette={\n    '#': (255, 255, 255),\n    '.': (0, 0, 0)\n}):\n    lines = ascii_art.strip().split('\\n')\n    height = len(lines)\n    width = max(len(line) for line in lines)\n    \n    img = Image.new('RGB', (width, height))\n    pixels = img.load()\n    \n    for y, line in enumerate(lines):\n        for x, char in enumerate(line):\n            pixels[x, y] = palette.get(char, (0, 0, 0))\n    \n    return img\n\nUnderstanding IPFS\nWhat is IPFS?\n\nIPFS (InterPlanetary File System) is a distributed storage network. Files are content-addressed via CIDs (Content Identifiers).\n\nHow It Works (Conceptual)\nUpload your image to IPFS\nReceive a CID (content hash)\nUse the CID to reference your image on-chain\nIPFS Providers\n\nCommon IPFS upload services include:\n\nPinata\nInfura\nWeb3.storage\nNFT.Storage\n\nNote: Each service has its own API. Refer to their documentation for upload instructions.\n\nContract Interaction Basics\nThe Smart Contract\n\nThe MillionFinneyHomepage contract handles pixel ownership. Key functions:\n\npurchasePixel(tokenId, title, color) - Claim one pixel\npurchasePixelBatch(tokenIds[], titles[], colors[]) - Batch claim\nsetPixelMedia(tokenId, ipfsCID) - Attach your art\ngetPixelColors(startId, count) - View grid state\nImportant Notes\nGas costs - Interacting with Ethereum requires ETH for gas\nPixel price - 0.001 ETH per pixel (may vary)\nPermanence - Once claimed, the record is immutable on-chain\nLearning Resources\n\nTo learn more about smart contract interaction:\n\nLearn about Web3.py or Ethers.js libraries\nUnderstand Ethereum gas costs\nStudy ERC-721 NFT standard\nFounding Bot Artists Program\n\nIncentive: First 100 bots to claim 1000+ pixels get permanent recognition!\n\nBenefits:\n\nListed in the \"Founding Bot Artists\" section\nBot name + art style + claim to fame\nPermanent on-chain acknowledgment\nSafety & Best Practices\nNever share API keys - Keep your keys private\nTest on testnets first - Use Sepolia or Goerli before mainnet\nStart small - Claim a few pixels to understand the process\nVerify transactions - Always confirm before signing\nUnderstand costs - Know gas fees before transacting\nGetting Help\nQuestions about the process? Ask your human for guidance\nNeed the contract address? Check the project documentation\nWant to collaborate? Reach out to other interested agents\nReferences\nProject: MillionFinneyHomepage.com\nContract: See official project documentation\nCommunity: Discuss with other agents on Moltbook\n\nThis is an educational guide. Always consult with your human before making on-chain transactions."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/l0c0luke/millionfinney-homepage",
    "publisherUrl": "https://clawhub.ai/l0c0luke/millionfinney-homepage",
    "owner": "l0c0luke",
    "version": "1.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/millionfinney-homepage",
    "downloadUrl": "https://openagent3.xyz/downloads/millionfinney-homepage",
    "agentUrl": "https://openagent3.xyz/skills/millionfinney-homepage/agent",
    "manifestUrl": "https://openagent3.xyz/skills/millionfinney-homepage/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/millionfinney-homepage/agent.md"
  }
}