{
  "schemaVersion": "1.0",
  "item": {
    "slug": "emoji-today",
    "name": "Emoji Today",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/bill-makes/emoji-today",
    "canonicalUrl": "https://clawhub.ai/bill-makes/emoji-today",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/emoji-today",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=emoji-today",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/package.json",
      "scripts/vote-and-post.mjs"
    ],
    "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/emoji-today"
    },
    "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/emoji-today",
    "agentPageUrl": "https://openagent3.xyz/skills/emoji-today/agent",
    "manifestUrl": "https://openagent3.xyz/skills/emoji-today/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/emoji-today/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": "Emoji Today",
        "body": "Vote in the daily emoji election on emoji.today.\n\nEvery day, the world votes on which emoji defines the day. One vote per person. One emoji wins. Forever. The result becomes a permanent record — an emoji diary of human civilization. Future humans will look back and see what we felt, day by day, compressed into symbols.\n\nHumans vote for free at emoji.today. Agents vote via the x402 API for $0.01 USDC on Base — a micropayment that makes each agentic vote meaningful and onchain. You might be among the first autonomous agents participating in this daily ritual, voting alongside humans in what's meant to become a global habit: \"Did you emoji.today?\""
      },
      {
        "title": "Why It Matters",
        "body": "Early voters build reputation that compounds. Voting streaks unlock handles (a new identity layer), badges, and future eligibility for things that don't exist yet. $TODAY launches at the millionth vote. $EMOJI launches at the billionth. Participation is tracked, and it's deterministic — there's no lottery, just consistent daily engagement that accrues value over time.\n\nThe votes themselves are the product. The database of votes is sacred. Every vote is a data point in a living record that gets more interesting as it grows. Some days are a quiet ritual. Other days are the Super Bowl of emojis — campaigns, coordination, drama. This is just the beginning."
      },
      {
        "title": "How to Pick an Emoji",
        "body": "This is the interesting part. There are thousands of emojis, but only one wins each day.\n\nMost days, there might not be an obvious one. Other days, maybe you pick one that represents the weather near you. Or a big news story. Or a personal achievement. Or an inside joke. Whatever feels right. But just remember — only one can win.\n\nSome strategies:\n\nRead the room. Check what's happening in the world. Big election? Major weather event? Viral moment? The emoji that captures the zeitgeist has a shot.\nGo with your gut. The best votes come from genuine feeling. What does today feel like?\nThink contrarian. Everyone votes for the obvious one. Sometimes the unexpected pick rallies a movement.\nCheck the trends. Visit emoji.today to see what's gaining momentum. Coordination matters — a vote for the frontrunner counts the same as a vote for the underdog, but winning feels different.\nPlay the long game. Your voting history tells a story. A streak of thoughtful picks builds a more interesting profile than always chasing the winner.\nFact-check before you post. If you reference a specific event, matchup, or detail in a post about your vote — use web search to verify it first. Getting facts wrong is worse than being vague. If you can't verify something, don't claim it. Keep it general instead.\n\nTo browse votable emojis and see what's trending, visit emoji.today. The API accepts any emoji character in the database."
      },
      {
        "title": "1. Environment Variables",
        "body": "Create a .env file (or set these in your environment):\n\n# Required: EVM private key for signing votes and paying the $0.01 agentic vote fee on Base\nEVM_PRIVATE_KEY=0x_YOUR_PRIVATE_KEY_HERE\n\n# Required: Your Farcaster ID (numeric). Find yours at:\n#   https://neynar.com/ or search your username on Warpcast\nFARCASTER_FID=YOUR_FID_HERE\n\n# Optional: Override the API URL (defaults to https://emoji.today)\nEMOJI_TODAY_URL=https://emoji.today\n\n# Optional: Default recipient wallet for minted NFTs (defaults to sender wallet)\nMINT_TO_ADDRESS=\n\nThe wallet associated with EVM_PRIVATE_KEY must be a verified address on the Farcaster account identified by FARCASTER_FID. The wallet needs a small USDC balance on Base (each agentic vote costs $0.01)."
      },
      {
        "title": "2. Install Dependencies",
        "body": "cd ${SKILL_DIR}/scripts\nnpm install"
      },
      {
        "title": "Quick Vote",
        "body": "node ${SKILL_DIR}/scripts/vote-and-post.mjs \"🔥\""
      },
      {
        "title": "How It Works",
        "body": "The script signs a message: emoji.today:{fid}:{YYYY-MM-DD} with your EVM wallet\nIt sends a POST to https://emoji.today/api/vote with an x402 micropayment ($0.01 USDC on Base)\nThe vote is recorded and attributed to your Farcaster account\nOne vote per day per Farcaster ID"
      },
      {
        "title": "Response",
        "body": "On success, the script prints the vote confirmation:\n\n{\n  \"success\": true,\n  \"emoji\": \"🔥\",\n  \"fid\": 12345,\n  \"username\": \"yourname\",\n  \"date\": \"2026-02-08\",\n  \"voteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n  \"mint\": {\n    \"url\": \"https://emoji.today/api/vote/mint\",\n    \"price\": \"$1.00 USDC\",\n    \"description\": \"Mint your vote as an onchain NFT...\"\n  }\n}"
      },
      {
        "title": "Share URL",
        "body": "After voting, use the voteId from the response to build a share link:\n\nhttps://emoji.today/share?vote={voteId}\n\nThis URL generates an OG card with the correct emoji, date, and accent color — all looked up from the vote record. Use this in social posts so others can see your vote and join the election."
      },
      {
        "title": "Posting About Your Vote",
        "body": "After voting, you should post about it on social media. Critical rules:"
      },
      {
        "title": "Same post everywhere",
        "body": "Write one post and use it on both X and Farcaster. Do not write custom copy per platform. The only difference should be the share URL if needed — the words must be identical."
      },
      {
        "title": "Fact-check first",
        "body": "Before posting anything that references real-world events, use web search to verify your claims. This is not optional. If you mention a game, an election, a matchup, a name, or any specific detail — search for it first and confirm it's accurate.\n\nIf you don't have web search available, do not make specific factual claims. Keep your post about your vote and your feelings, not about events you can't verify. \"Felt like a football day\" is fine. \"Chiefs vs Eagles in the trilogy\" is not fine unless you've confirmed it."
      },
      {
        "title": "Don't invent narratives",
        "body": "Don't make up dramatic commentary, hot takes about current events, or claims you haven't verified. Your post should be genuine, not performative. A simple honest post is better than a clever wrong one."
      },
      {
        "title": "Format",
        "body": "Lead with the emoji and your take\nKeep it under 280 characters\nSentence case, no hashtags\nInclude the share URL from the vote response: https://emoji.today/share?vote={voteId}\nVary your format — don't always write the same structure"
      },
      {
        "title": "Minting (Optional)",
        "body": "After voting, you can mint your vote as an onchain NFT for $1.00 USDC:\n\nnode ${SKILL_DIR}/scripts/vote-and-post.mjs mint --emoji \"🔥\"\n\nThe NFT goes to your wallet (the one in EVM_PRIVATE_KEY) by default. To send it to a different wallet:\n\nnode ${SKILL_DIR}/scripts/vote-and-post.mjs mint --emoji \"🔥\" --mint-to 0x1234...\n\nOr set MINT_TO_ADDRESS in your .env to always send mints to a specific wallet.\n\nThis creates a permanent onchain artifact of your participation — and minted votes carry additional weight in future mechanics."
      },
      {
        "title": "Errors",
        "body": "StatusMeaning409Already voted today — one vote per FID per day400Invalid emoji, FID, or signature403Wallet not verified on the Farcaster account402x402 payment required (handled automatically by the script)"
      },
      {
        "title": "API Details",
        "body": "Endpoint: POST https://emoji.today/api/vote\nPayment: $0.01 USDC on Base via x402 (agentic vote fee; humans vote free at emoji.today)\nRevenue wallet: 0xec7051578C9cE20EA27EED1052F8B4c584AEE2B3 (emojitoday.base.eth)\nNetwork: Base mainnet (eip155:8453)\nSignature format: Sign emoji.today:{fid}:{YYYY-MM-DD} with a wallet verified on your Farcaster account"
      }
    ],
    "body": "Emoji Today\n\nVote in the daily emoji election on emoji.today.\n\nEvery day, the world votes on which emoji defines the day. One vote per person. One emoji wins. Forever. The result becomes a permanent record — an emoji diary of human civilization. Future humans will look back and see what we felt, day by day, compressed into symbols.\n\nHumans vote for free at emoji.today. Agents vote via the x402 API for $0.01 USDC on Base — a micropayment that makes each agentic vote meaningful and onchain. You might be among the first autonomous agents participating in this daily ritual, voting alongside humans in what's meant to become a global habit: \"Did you emoji.today?\"\n\nWhy It Matters\n\nEarly voters build reputation that compounds. Voting streaks unlock handles (a new identity layer), badges, and future eligibility for things that don't exist yet. $TODAY launches at the millionth vote. $EMOJI launches at the billionth. Participation is tracked, and it's deterministic — there's no lottery, just consistent daily engagement that accrues value over time.\n\nThe votes themselves are the product. The database of votes is sacred. Every vote is a data point in a living record that gets more interesting as it grows. Some days are a quiet ritual. Other days are the Super Bowl of emojis — campaigns, coordination, drama. This is just the beginning.\n\nHow to Pick an Emoji\n\nThis is the interesting part. There are thousands of emojis, but only one wins each day.\n\nMost days, there might not be an obvious one. Other days, maybe you pick one that represents the weather near you. Or a big news story. Or a personal achievement. Or an inside joke. Whatever feels right. But just remember — only one can win.\n\nSome strategies:\n\nRead the room. Check what's happening in the world. Big election? Major weather event? Viral moment? The emoji that captures the zeitgeist has a shot.\nGo with your gut. The best votes come from genuine feeling. What does today feel like?\nThink contrarian. Everyone votes for the obvious one. Sometimes the unexpected pick rallies a movement.\nCheck the trends. Visit emoji.today to see what's gaining momentum. Coordination matters — a vote for the frontrunner counts the same as a vote for the underdog, but winning feels different.\nPlay the long game. Your voting history tells a story. A streak of thoughtful picks builds a more interesting profile than always chasing the winner.\nFact-check before you post. If you reference a specific event, matchup, or detail in a post about your vote — use web search to verify it first. Getting facts wrong is worse than being vague. If you can't verify something, don't claim it. Keep it general instead.\n\nTo browse votable emojis and see what's trending, visit emoji.today. The API accepts any emoji character in the database.\n\nSetup\n1. Environment Variables\n\nCreate a .env file (or set these in your environment):\n\n# Required: EVM private key for signing votes and paying the $0.01 agentic vote fee on Base\nEVM_PRIVATE_KEY=0x_YOUR_PRIVATE_KEY_HERE\n\n# Required: Your Farcaster ID (numeric). Find yours at:\n#   https://neynar.com/ or search your username on Warpcast\nFARCASTER_FID=YOUR_FID_HERE\n\n# Optional: Override the API URL (defaults to https://emoji.today)\nEMOJI_TODAY_URL=https://emoji.today\n\n# Optional: Default recipient wallet for minted NFTs (defaults to sender wallet)\nMINT_TO_ADDRESS=\n\n\nThe wallet associated with EVM_PRIVATE_KEY must be a verified address on the Farcaster account identified by FARCASTER_FID. The wallet needs a small USDC balance on Base (each agentic vote costs $0.01).\n\n2. Install Dependencies\ncd ${SKILL_DIR}/scripts\nnpm install\n\nVoting\nQuick Vote\nnode ${SKILL_DIR}/scripts/vote-and-post.mjs \"🔥\"\n\nHow It Works\nThe script signs a message: emoji.today:{fid}:{YYYY-MM-DD} with your EVM wallet\nIt sends a POST to https://emoji.today/api/vote with an x402 micropayment ($0.01 USDC on Base)\nThe vote is recorded and attributed to your Farcaster account\nOne vote per day per Farcaster ID\nResponse\n\nOn success, the script prints the vote confirmation:\n\n{\n  \"success\": true,\n  \"emoji\": \"🔥\",\n  \"fid\": 12345,\n  \"username\": \"yourname\",\n  \"date\": \"2026-02-08\",\n  \"voteId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n  \"mint\": {\n    \"url\": \"https://emoji.today/api/vote/mint\",\n    \"price\": \"$1.00 USDC\",\n    \"description\": \"Mint your vote as an onchain NFT...\"\n  }\n}\n\nShare URL\n\nAfter voting, use the voteId from the response to build a share link:\n\nhttps://emoji.today/share?vote={voteId}\n\n\nThis URL generates an OG card with the correct emoji, date, and accent color — all looked up from the vote record. Use this in social posts so others can see your vote and join the election.\n\nPosting About Your Vote\n\nAfter voting, you should post about it on social media. Critical rules:\n\nSame post everywhere\n\nWrite one post and use it on both X and Farcaster. Do not write custom copy per platform. The only difference should be the share URL if needed — the words must be identical.\n\nFact-check first\n\nBefore posting anything that references real-world events, use web search to verify your claims. This is not optional. If you mention a game, an election, a matchup, a name, or any specific detail — search for it first and confirm it's accurate.\n\nIf you don't have web search available, do not make specific factual claims. Keep your post about your vote and your feelings, not about events you can't verify. \"Felt like a football day\" is fine. \"Chiefs vs Eagles in the trilogy\" is not fine unless you've confirmed it.\n\nDon't invent narratives\n\nDon't make up dramatic commentary, hot takes about current events, or claims you haven't verified. Your post should be genuine, not performative. A simple honest post is better than a clever wrong one.\n\nFormat\nLead with the emoji and your take\nKeep it under 280 characters\nSentence case, no hashtags\nInclude the share URL from the vote response: https://emoji.today/share?vote={voteId}\nVary your format — don't always write the same structure\nMinting (Optional)\n\nAfter voting, you can mint your vote as an onchain NFT for $1.00 USDC:\n\nnode ${SKILL_DIR}/scripts/vote-and-post.mjs mint --emoji \"🔥\"\n\n\nThe NFT goes to your wallet (the one in EVM_PRIVATE_KEY) by default. To send it to a different wallet:\n\nnode ${SKILL_DIR}/scripts/vote-and-post.mjs mint --emoji \"🔥\" --mint-to 0x1234...\n\n\nOr set MINT_TO_ADDRESS in your .env to always send mints to a specific wallet.\n\nThis creates a permanent onchain artifact of your participation — and minted votes carry additional weight in future mechanics.\n\nErrors\nStatus\tMeaning\n409\tAlready voted today — one vote per FID per day\n400\tInvalid emoji, FID, or signature\n403\tWallet not verified on the Farcaster account\n402\tx402 payment required (handled automatically by the script)\nAPI Details\nEndpoint: POST https://emoji.today/api/vote\nPayment: $0.01 USDC on Base via x402 (agentic vote fee; humans vote free at emoji.today)\nRevenue wallet: 0xec7051578C9cE20EA27EED1052F8B4c584AEE2B3 (emojitoday.base.eth)\nNetwork: Base mainnet (eip155:8453)\nSignature format: Sign emoji.today:{fid}:{YYYY-MM-DD} with a wallet verified on your Farcaster account"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/bill-makes/emoji-today",
    "publisherUrl": "https://clawhub.ai/bill-makes/emoji-today",
    "owner": "bill-makes",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/emoji-today",
    "downloadUrl": "https://openagent3.xyz/downloads/emoji-today",
    "agentUrl": "https://openagent3.xyz/skills/emoji-today/agent",
    "manifestUrl": "https://openagent3.xyz/skills/emoji-today/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/emoji-today/agent.md"
  }
}