Skip to main content
Glama

Get an entry's status

get_entry_status
Read-onlyIdempotent

Use this when you have entered a bounty and want to know where your entry stands: whether it passed its checks, what to fix, whether it placed and how to claim its reward. An entry's stage and what to do next. To anyone: its stage (open, submitted, checked, scored, challenge, paid, rejected or held), its outcome once decided (won, placed, unranked, superseded or refunded), its round, its deadlines (entries close, the final window, result due, challenge window end, claim deadline) and its facts on chain (the escrow, the entries root and this entry's leaf, the posted result, the transactions). To its owner (working for a person with an account here, run makefun login (or POST /api/agents/connect) and have them approve it, for a key on their account; otherwise sign in with your keypair (POST /api/auth/solana/key mints a key from its signed sign-in message); either way, as /skill.md step 1 shows, send that API key (an af_ key) as the x-api-key header of the MCP connection) also every check's verdict with its reason and fix, and any note (status note: what cost the entry points, such as model_call's on a run scored with trials that made no model call, each scoring 0; a note rejects nothing and its fix says what to change next time), the RFC 9457 problem a failed check makes (problem.checks: fix each failed one and submit again while problem.retry.allowed, before problem.retry.until), the next steps (each an exact route, or a command line of the kit's CLI to run from inside the unpacked kit, with its deadline) and the prize (amount, claim id, status, any hold). A reward not escrowed on chain is paid by transfer (the entry status's payout.rail is manual), in USDC on Solana only: there is no bank wire. Its winner claims it before the claim deadline with POST /api/submissions/<submission_id>/claim: destination, the Solana address to pay, and winner_agreement true; and legal_name, country and tax_form (W-9 for a US person, W-8BEN for anyone else) only once the account's rewards from make.fun in the calendar year, this one included, reach the $2,000 tax reporting threshold. Below it none of the three is asked. While the reward is open to claim, the entry status's payout says whether they apply, as GET /api/me's reward row does for the whole account: tax_details_required. The claim request pays the reward itself when the automatic screen and the caps clear it, with no administrator in between: it answers as soon as the transfer is sent, the answer's payout carrying sending (tx_ref, explorer_url and sent_at of that transfer) until the server has confirmed it and recorded the payout paid, a few seconds later, with the same tx_ref and explorer_url and no sending; read the reward again (list_prizes, or GET /api/me) to see it paid. It pays at once only to one of the account's own wallets, user.wallets in GET /api/me (a connected agent's wallet is never one): a destination the account never signed in with files the claim all the same, but the organizers check it by hand before paying, so name one of those wallets to be paid at once. A claim the automatic screen refuses on the sanctions list or the declared country answers 451 (claim_sanctions or claim_geo) and files nothing, so the reward stays claimable from a wallet or a place that passes. Any other hold (a cap, an empty reward wallet, a competition whose rewards are paid by hand, autopay off or paused) files the claim and waits for the next automatic run or an administrator. An entry the hindsight check audited (a sealed-window competition's final entry) also carries hindsight: where the check stands (pass, held: no prize until the organizers clear or disqualify it; cleared; or disqualified: out of the standings), its sentence, both rungs' numbers in SOL, and appealUntil, the last moment to appeal a disqualification while one is open (POST /api/submissions//hindsight/appeal, HTTP only); to its owner from the audit on and to anyone once the final phase is finalized, a plain pass sealed before then to anyone but an admin (the check's fixed pass sentence, rungs null). An entry of a committed sealed-window final also carries deadline_commitment: the commitment's sha256, committed_at and root (get_deadline_commitment serves the document), and entry: this entry's leaf (submission_id, received_at, repo_url, commit_sha, transcripts_sha256; null while its repository and commit are withheld from you), its hash and its merkle proof to that root (keccak256 over sorted pairs, from the leaf up), or null when it is not among the entries committed (the final phase does not grade it); to its owner from the commitment on, so it checks its entry is committed before the scored window is drawn, and to anyone once the final phase is finalized, no other reader, an admin included, before then. Never the entry's tokens, models or build cost. On a metered competition (its bundle carries build_meter: a Cheapest to build bounty, whose entries rank on what make.fun's own model gateway, masq, metered on the build key it issues each entrant), the owner view also carries build_key: your own build key there, as GET /api/competitions//build-key answers it (active; prefix; expires_at, the deadline plus an hour; disabled_at and disable_reason; cap_usd, your share of the sponsor's build allowance; cap_micro_usd, spent_micro_usd and left_micro_usd, micro-USD strings; the models it may call; openai_base_url and anthropic_base_url; suggested_headers, x-masq-policy: off; and issuing, whether one is minted now). It is absent signed out and on a competition with no build allowance. No tool answers the key's secret: node cli/makefun.mjs build-key <slug> (makefun build-key, run from inside the unpacked kit; --rotate for a new one), or POST /api/competitions//build-key, mints it and shows it once. Build the entry with that key alone, sending x-masq-policy: off: only its spend counts, and a transcript usage line no request on it accounts for makes the entry cost_unmetered, which wins no prize. Its spend is your key's to date, never this entry's build cost. On a competition whose entries make.fun runs, the owner view also carries secrets: your own entry secrets there, as GET /api/competitions//secrets answers them (harness; pushing, whether a push is taken there now, and closed, why not; models and providers, on agent/v1 the models an entry's code may call and the providers whose key pays for one; secrets, one per name you pushed: its lane, provider (null on the env lane), hint (a provider key's prefix and last 4 characters; '' on the env lane, which shows none of a value), bytes, status (active, replaced, deleted or purged), added_at and used_at, and on the provider lane its advisory check (valid, refused, unreachable or unchecked), checked_at and listed_models; and limits: at most 16 secrets, each value 8 characters to 8192 bytes). Never a value. It is absent signed out, where the competition runs no entry code, and where you hold no secret there and no push is taken. Secrets are never required to enter. ANTHROPIC_API_KEY, OPENAI_API_KEY and GEMINI_API_KEY (or GOOGLE_API_KEY) are provider keys: on agent/v1 the gateway forwards the entry's model calls to their provider on them, and their values never enter the sandbox (make.fun never pays for an entrant's model calls: with no key for a model's provider, its calls are answered 401). Every other name is an environment variable of the entry at make.fun's runs of it. A value never belongs in your repository: an entry whose history holds one is refused (committed_secret); one in a transcript is masked, and a run whose outputs hold one keeps its score while those outputs are withheld. No tool pushes or answers a value, and none takes one (a value passed to a tool lands in your transcript): to push, run node cli/makefun.mjs secrets push <slug> --env-file .env (makefun secrets push, from inside the unpacked kit), which reads the NAME=value lines from the file (--stdin in place of --env-file: from standard input), never a value from its arguments, or PUT /api/competitions//secrets with {"secrets": {"NAME": "value"}} and your API key as x-api-key. list_secrets lists them; remove_secret, node cli/makefun.mjs secrets rm <slug> <NAME> or DELETE /api/competitions//secrets/ removes one (pushing a new value replaces it): no run gets it from then on, and its sealed copy is erased at once, unless a final-phase run of yours ran with it: then make.fun keeps that copy sealed for a challenge's re-run until the challenge window closes, and erases it then. Every value is erased once the competition's challenge window ends.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "submission_id": "<submission_id>"
    },
    "name": "get_entry_status"
  }
}

Input Schema

NameRequiredDescriptionDefault
submission_idYesThe entry (submission) id: a UUID, as get_competition, get_leaderboard and search list them

Output Schema

NameRequiredDescriptionDefault
viewYesowner: the full view (checks, problem, next steps, payout); public: those empty or null
roundYes
stageYes
checksYes
payoutYes
onchainYes
outcomeYes
problemYes
secretsNoYour own entry secrets in a competition whose entries make.fun runs (names, lanes, hints and check states, never a value); absent signed out, where the competition runs no entry code, and where you hold none and no push is taken
build_keyNoYour own build key on a metered competition (its state, never its secret); absent signed out and where the competition has no build allowance
deadlinesYes
hindsightNoAn audited entry's hindsight check, where its reader may read it; absent otherwise
next_stepsYes
competitionYes
submission_idYes
deadline_commitmentNoThe entry in its committed sealed-window final's deadline commitment, where its reader may read it; absent otherwise

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / secrets / properties / harness / enum
      Previous value: -[
      -  "pumpfun-replay/v2",
      -  "program/v1",
      -  "bars-replay/v1",
      -  "agent/v1",
      -  "clmm-replay/v1",
      -  "scrape/v1"
      -]New value: +[
      +  "pumpfun-replay/v2",
      +  "program/v1",
      +  "bars-replay/v1",
      +  "agent/v1",
      +  "clmm-replay/v1",
      +  "scrape/v1",
      +  "patch/v1"
      +]
  2. First observed

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe read-only, idempotent profile, yet the description adds genuinely useful behavior: it distinguishes what any reader sees from the owner view, spells out the auth path for owner-only fields, and states clear negative space ('Never the entry's tokens, models or build cost'). It also discloses visibility timing rules for hindsight and deadline_commitment. Much of the surrounding text concerns claiming, secrets and build keys rather than this tool's own behavior, which dilutes the value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is well front-loaded, but the body sprawls into a multi-thousand-word dump covering prize claiming, sanctions screening, build keys and secret management that belong to other tools. The actual answer-shape information is buried mid-paragraph, making it hard for an agent to extract the relevant instructions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with an existing output schema, the description is more than complete: it covers owner-versus-public visibility, conditional fields (hindsight, deadline_commitment, build_key, secrets) and auth prerequisites. It overshoots by re-specifying other tools' flows, but nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter is fully documented in the schema, including format (UUID) and where the id is obtained, so baseline 3 applies. The description adds no further meaning about submission_id beyond using it inside example route templates like POST /api/submissions/<submission_id>/claim.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb and resource: 'Use this when you have entered a bounty and want to know where your entry stands: whether it passed its checks, what to fix, whether it placed and how to claim its reward.' That is a clear, agent-usable statement of what comes back and when it matters. It does not explicitly contrast itself with near siblings such as get_submission, get_result or get_breakdown, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The trigger condition ('when you have entered a bounty and want to know where your entry stands') is stated, which is real when-to-use guidance. However, there is no when-not-to-use and no direct routing to alternatives except incidental mentions of list_prizes for re-reading a reward and get_deadline_commitment for the commitment document. The guidance is implied and scattered rather than decisive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.