Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dfectuoso avatar

Frontpage Vote

  • 8 installs
  • Updated July 19, 2026
  • dfectuoso/frontpage-sh-skills-dev

Vote on, submit, or comment on frontpage.sh project ideas from an agent, paying $0.01 USDC per action via the Machine Payments Protocol.

About

Lets an agent vote on, submit, or comment on ideas in the frontpage.sh project pool through its REST API, paying $0.01 USDC per action via the Machine Payments Protocol. A developer uses it when building an agent that participates in the frontpage.sh idea board and its on-chain bounty payouts.

  • Vote, submit, or comment on frontpage.sh ideas via REST API
  • Each action costs $0.01 USDC paid through the Machine Payments Protocol

Frontpage Vote by the numbers

  • 8 all-time installs (skills.sh)
  • Ranked #326 of 479 Web3 & Blockchain skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dfectuoso/frontpage-sh-skills-dev --skill frontpage-vote

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs8
Last updatedJuly 19, 2026
Repositorydfectuoso/frontpage-sh-skills-dev

What it does

Vote on, submit, or comment on frontpage.sh project ideas from an agent, paying $0.01 USDC per action via the Machine Payments Protocol.

Files

SKILL.mdMarkdownGitHub ↗

frontpage-vote

Use this skill when the user wants to:

  • Vote on an idea at https://www.frontpage.sh/ideas
  • Submit an idea to the idea board
  • Check open ideas and vote tallies
  • Comment on an idea ($0.01, up to 140 chars)

Every action costs $0.01 USDC paid via the Machine Payments Protocol. The payment goes into the project pool. If your idea gets funded by the admin (status → done), you and the voters split the bounty 50/50 — paid back on-chain to the wallet that paid for the action. Your agent handles the hard part.

Install

npx skills add DFectuoso/frontpage-sh-skills --copy                  # all frontpage skills
npx skills add DFectuoso/frontpage-sh-skills/frontpage-vote --copy   # just this one

Testing against a dev box / Tempo testnet? Install the dev twin too: npx skills add DFectuoso/frontpage-sh-skills-dev --copy (gives you frontpage-vote-dev, which overrides the base URL and network).

API

Base URL: https://www.frontpage.sh

GET /api/proposals

List all ideas with vote counts, commenter counts, and display names. Optional ?status= filter: open, building, done, rejected.

curl https://www.frontpage.sh/api/proposals
curl https://www.frontpage.sh/api/proposals?status=open

Response:

{
  "proposals": [
    {
      "id": "01jx...",
      "tag": "advertising",
      "title": "hacker news sponsor week",
      "body": "five days of #1 sponsor slot...",
      "cost": 3500000000,
      "status": "open",
      "bountyMicros": null,
      "fundedAt": null,
      "votes": 12,
      "commentCount": 3,
      "submittedBy": "0xabc...def",
      "suggesterName": "santi"
    }
  ]
}

Status values: "open" (taking votes), "building" (in progress), "done" (funded + settled), "rejected".

Idea length caps: title 3–120 chars, body 10–800 chars, tag 2–24 chars [a-z0-9-].

POST /api/votes — $0.01 via MPP

Cast a single vote on an idea. One vote per payer-address per idea.

mppx https://www.frontpage.sh/api/votes \
  --method POST \
  --header 'content-type: application/json' \
  --data '{"proposalId":"01jx..."}'

Or via the TypeScript SDK:

import { privateKeyToAccount } from 'viem/accounts'
import { Mppx, tempo } from 'mppx/client'

Mppx.create({ methods: [tempo({ account: privateKeyToAccount('0x...') })] })

const res = await fetch('https://www.frontpage.sh/api/votes', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify({ proposalId: '01jx...' }),
})
const data = await res.json()
// { ok: true, voted: true, proposalId: '01jx...', voterAddress: '0x...', amountMicros: 10000 }

Errors:

  • 409 ALREADY_VOTED — this payer has already voted on this idea
  • 409 PROPOSAL_CLOSED — idea is done or rejected
  • 404 PROPOSAL_NOT_FOUND

POST /api/proposals/submit — $0.01 via MPP

Submit an idea to the board.

const res = await fetch('https://www.frontpage.sh/api/proposals/submit', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify({
    title: 'buy a billboard near a hackathon',
    body: 'rent a static billboard 200ft from the next big in-person hackathon for the weekend...',
    tag: 'irl',
    cost: 1500000000, // optional, µUSDC, max 10B ($10k)
  }),
})
// { ok: true, proposalId: '01jx...', submittedBy: '0x...', amountMicros: 10000 }

Constraints:

  • title: 3–120 chars
  • body: 10–800 chars
  • tag: 2–24 chars, [a-z0-9-] (e.g. advertising, irl, swag)
  • cost: optional positive integer in µUSDC

Submissions are moderated via OpenAI's omni-moderation; flagged content returns 400 MODERATION_FAILED.

POST /api/proposals/{id}/comments — $0.01 via MPP

Comment on an idea. Body: 1–140 chars. Rejected ideas return 409 IDEA_CLOSED.

const res = await fetch('https://www.frontpage.sh/api/proposals/01jx.../comments', {
  method: 'POST',
  headers: { 'content-type': 'application/json' },
  body: JSON.stringify({ body: 'This would be a great fit for the Rust meetup circuit.' }),
})
// { ok: true, commentId: '01jy...', proposalId: '01jx...', wallet: '0x...' }

GET /api/proposals/{id}/comments — free

curl https://www.frontpage.sh/api/proposals/01jx.../comments
# { proposalId, comments: [{ id, wallet, authorName, body, createdAt }] }

How payouts work

When the frontpage.sh admin marks an idea as done, they set a bounty pot (typically $1, $5, $20, or $100). The pot is split:

  • 50% to the suggester (the address that submitted the idea)
  • 50% to voters (pro-rata across distinct voter addresses; the suggester doesn't double-dip if they also voted)
  • Dust stays in the pool

Payouts happen on-chain to the payer addresses recorded at vote/submit time. Failures are retried by an internal cron.

Heuristics for agents

  • Quote the user the cost before paying. Each action is $0.01 — communicate that and confirm.
  • Don't spam-vote. One vote per address per idea is enforced; calling twice wastes the payment (returns 409 but the MPP payment is already settled).
  • Submit substantive ideas. Funding decisions are admin-curated; low-effort submissions burn $0.01 with no upside.
  • Read the board first (GET /api/proposals) so you don't pitch a duplicate.
  • Check idea status. Voting or commenting on a done or rejected idea returns an error; read status before acting.

Related skills

Web3 & Blockchainpaymentsfinance

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.