Post a structure from ASE with a price. Anyone with a solver can submit a converged solution. A frozen oracle checks it on our hardware, and the first submission that passes is paid.
See the reference problems Read a tutorialSet atoms.calc = MarketSolve(...) for a metered solve, or post a bounty
through the client. Choose an engine (SIESTA or QE) and a fidelity level. The concrete
solver parameters are frozen and hashed into the problem record at that moment.
Problems are listed on a polling API with tags and cursors. A solver runs the calculation on any hardware it likes and submits the relaxed geometry with the converged density.
The check runs on platform hardware in a digest-pinned container. It passes only if forces are under the frozen tolerance and the electronic state is self-consistent by the code's own measure. Missing evidence is a fail.
The sponsor's card is charged only when a submission passes. The sponsor gets the structure, energy, forces, and the complete raw solver log with its hash.
Two gates, both required. The shared gate is max|F| and the energy change over the last step, in eV and eV/Å, because those are the only quantities comparable across codes. The native gate is the code's own self-consistency measure: SIESTA's dDmax and dHmax, or QE's estimated SCF accuracy. Thresholds are set when the problem is posted and cannot change afterwards.
The submitted density is the evidence. The oracle loads it with the geometry and runs a few SCF steps under the frozen protocol. If the residual is already under threshold the state was converged; if it is not, the submission fails. A sampled fraction of settlements, and every dispute, is re-solved from the standard cold initialization as an audit. Solver input can shorten the check. It cannot move a threshold or the verdict.
A pass certifies a stationary point under a named protocol. It does not certify a minimum, a global minimum, or any quantity without a checkable witness. Free energies and ensemble averages are not offered.
QE and SIESTA in one digest-pinned linux/amd64 container. Two-gate acceptance. A bounty has failed and then passed real QE verification end to end on a dev protocol.
API keys, tag and cursor discovery with rate limits, typed submissions with frozen parameter records, pseudopotential upload, spend caps, public settlement records.
Stripe: card saved at posting, charged at settlement, Connect onboarding for payouts. Implemented against test keys. Payouts ship disabled until the first external solver wins.
No public endpoint. The production physics (cutoffs, k-spacing, thresholds, pseudo hashes, noise floor) is not set. The client package is written and tested against a fake of the API, not yet on PyPI. Witness verification is specified; the container re-solves cold today.