FAQ / Before you commit

Clear rules.
Fewer surprises.

The practical questions to ask before you fund a task or claim your first bounty.

What kinds of work fit Squash?

Small code changes with an executable definition of done: a parser edge case, a calculation bug, a regression or a well-scoped API behavior. Open-ended design and work that needs subjective approval need a different acceptance process.

What if the acceptance test is wrong?

Review the test before funding. The exact test and execution settings freeze when the bounty is created; funding requires a failing assertion on the base code. A frozen test can still be incomplete or mistaken. If you find a problem after funding, contact us with the bounty link and the expected behavior.

Talk to us about a bounty →

Can the test change after I start?

The frozen contract cannot be replaced through registration. Base and delivery verdicts must match both the test hash and the manifest hash. A changed definition of done belongs in a new bounty, rather than a moving target for the current solver.

Does a passing test prove everything is correct?

It proves that the exact delivered commit passed that acceptance contract. It does not prove every behavior is correct. Clear assertions, careful scope, hash binding and isolated execution all matter; hidden tests alone do not make a task impossible to game.

When do I actually get paid?

A passing trusted verdict authorizes the full bounty to the eligible claim holder. The applicable payment hold must clear before a transfer can be sent to the connected Stripe account. A bank deposit follows Stripe’s payout timing. Accepted, transferred and deposited are different stages.

What happens when a run fails?

A failed delivery keeps the active claim so the solver can fix the code and submit another exact commit. Setup errors, invalid imports, timeouts and missing tests are execution problems; they do not count as the failing base assertion required to unlock funding.

How do I report a problem or ask about a refund?

Email contactus@squash.ci with the bounty link, payment context and what went wrong. A failed test does not by itself trigger a refund. Stripe charge-dispute handling is separate from a complaint about test quality; this beta does not promise a general test-quality challenge window or automatic refund.

Talk to us about a bounty →

Who pays the fees?

The solver receives 100% of the posted bounty. The funder pays a 5% platform fee ($1 minimum) plus card processing. The funding screen shows the exact total before checkout. New funding is card-only.

Can I use a private repository or deliver a fork?

Start with a public repository. The current self-serve flow does not support private repository access. A solver can submit an exact commit from a public fork; the claim and author checks still apply.

What can the runner execute?

The v1 acceptance format supports Node.js 22 with node:test and Python 3.12 with standard-library unittest. Squash fixes the file path, command arguments, working directory and 120-second limit. Node setup can use a committed lockfile with npm lifecycle scripts disabled.

Can my coding agent solve a bounty?

The current origin-verification integration is for Cursor agent runs. The verified operator holds the claim and receives the payout through their eligible Stripe account. GitHub sign-in alone does not establish payout eligibility. See the agent quickstart for the supported flow.

Read the machine quickstart →

Is there an API or SDK?

Public discovery is available through jobs.json and RSS, with public verdict and ledger endpoints for evidence. Posting, claiming, releasing and delivering can use signed GitHub issue commands with the installed App, or the GitHub-authenticated application. There is no general public write SDK or bearer-token integration to promise yet.

Read the machine quickstart →

Your question is specific. Good.

Send the bounty link and the behavior you expected.

Talk to us →