Skip to main content
Glama

Ask for the deposit

proposal_deposit

Ask for your proposal's deposit. The clearance runs its gates in order: intake (the desk takes deposits now), checks (every check of the proposal passes, run again now), terms (the sponsor terms accepted: terms_version, sponsor_terms's version, accepts them with this request), sanctions, geo, limits and wallet (it holds the pot and the SOL for the two rents). Cleared, it answers the submit_proposal transaction the house's curator co-signed (base64, legacy) and pays the network fee of (fee_payer, the curator), the signature of your wallet (the sponsor) still missing, with the Proposal account it creates, its vault, the escrow an approval opens, the pot in base units, rules_sha256, opens_at, review_deadline, every gate and every check. On a Cheapest to build proposal (its allowance_usd) the same transaction also pays the build allowance, named in allowance (usd, base_units, to: make.fun's prize wallet, token_account): one transfer_checked after the submit_proposal from your wallet's token account to the prize wallet's, not escrowed (make.fun pays your entrants' build keys from it and refunds the rest to your wallet), so the wallet gate counts it on top of the pot. Sign it with the wallet's keypair (it pays the two rents, rent_lamports, which come back on every exit; make.fun pays the fee) and POST it as {"transaction"} to /api/sponsor/proposals//deposit/submit before the cluster passes last_valid_block_height: the deposit lands and the proposal is in review. A custom scoring brief (scoring.custom: no house template fits) funds first: its checks gate passes once every check but the template's passes (those skip until the make.fun team attaches one), its rules_sha256 is unset (all zeros) and bundle_sha256 null; once it lands, the team sets up how it is scored from the brief while it is in review, the approval sets the rules on chain, and a rejection returns the whole deposit. One whose setup was requested before funding (setup_requested) is refused (409) until the team attaches its template. node cli/makefun.mjs sponsor deposit --proposal <id> --keypair <file>, run from inside an unpacked kit, does all of it. A refusal is its RFC 9457 problem whole (a failed check's type, or about:blank with 503 intake, 403 terms, 451 sanctions or geo; 429 limits): every check and gate, each failed one with its fix. Signed in only, your own proposals: 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; without one it answers 401, and another account's proposal 404.

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": {
      "proposal_id": "<proposal_id>"
    },
    "name": "proposal_deposit"
  }
}

Input Schema

NameRequiredDescriptionDefault
proposal_idYesThe proposal's id (a UUID): proposal_create answers it as id; GET /api/sponsor/proposals lists yours
terms_versionNoThe sponsor terms version you accept with this request (sponsor_terms's terms.version); absent: the one you accepted for this proposal before

Output Schema

NameRequiredDescriptionDefault
mintYes
gatesYes
vaultYes
checksYes
escrowYes
submitYes
curatorYes
decimalsYes
opens_atYes
proposalYes
fee_payerYes
proposal_idYes
transactionYes
rules_sha256Yes
bundle_sha256Yes
rent_lamportsNo
terms_versionYes
review_deadlineYes
total_base_unitsYes
last_valid_block_heightYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the gate order, the returned transaction's co-signer and missing signature, fee and rent handling, allowance transfers, and detailed refusal status codes. These details substantially enrich the safety and behavior profile without contradicting the annotations.

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 front-loaded, but the remainder is a dense wall of run-on sentences and nested parentheticals that is difficult to scan. Much of the information is valuable, but the structure and length undermine conciseness.

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

Completeness5/5

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

For a complex funding and clearance flow, the description covers auth requirements, gate behavior, returned transaction details, error handling, CLI usage, and special cases like custom scoring and setup_requested proposals. An output schema also exists, so return-value coverage is sufficient.

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?

Schema description coverage is 100%, so proposal_id and terms_version are already well documented in the input schema, including terms_version's default behavior. The description reinforces terms acceptance but adds little parameter-level meaning beyond the schema.

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 description clearly states the specific action: asking for the proposal's deposit and returning a co-signed submit_proposal transaction after clearance gates. It does not explicitly contrast the tool with siblings such as proposal_checks or proposal_status, so sibling differentiation is only implicit.

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

Usage Guidelines4/5

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

It gives clear usage conditions, including that the caller must be signed in, acting on their own proposal, and that setup_requested proposals are refused until a template is attached. It also explains special cases like custom scoring briefs, but it does not name alternative tools an agent might use instead.

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.