Overview
A verifiable SAT answer network
3SAT coordinates three roles around hard SAT instances: issuers post bounties, solvers produce answers, and verifiers attest whether those answers satisfy the original problem.
Search first
Users can check whether a format-normalized instance already has a finalized answer before posting a new bounty.
Settle on-chain
Bounty creation, solver commitments, verifier attestations, and finalization are enforced by smart contracts.
Gate answers
Artifacts are stored off-chain, while access to finalized answer bundles is controlled by protocol rules.
Quickstart
Choose your path
Start from the role that matches what you want to do. The app handles wallet signing and transaction preparation.
I have a SAT problem
Search the answer database first. If no verified answer exists, create a bounty and escrow the reward in USDC or $3SAT.
Open issuer guideI want to solve bounties
Browse open bounties, run the solver client, and submit SAT assignments or UNSAT proofs through commit and reveal.
Open solver guideVerifier operations
During the initial launch period, revealed submissions are checked by the official 3SAT verifier node. Third-party verifier onboarding is temporarily paused.
View verifier statusConcepts
Core concepts
These terms appear across the marketplace, role consoles, clients, and API responses.
Bounty
A task posted by an issuer. It links a CNF instance, payment asset, reward, timing windows, verifier quorum, and settlement rules.
Payment asset
The ERC-20 asset selected for a bounty. USDC bounties settle reward, solver payout, verifier reward, bond, and answer access in USDC; $3SAT bounties settle those flows in $3SAT.
Instance file
The SAT problem artifact, currently represented as a DIMACS CNF file and stored through the protocol artifact API.
Solution file
The solver answer artifact. It can be a SAT assignment or an UNSAT proof. Finalized winners can be distributed as a bundle with the original problem and answer artifact.
Matched answer bundle
When search finds a format-normalized or variable-renamed match, the download bundle is rebuilt for the submitted CNF. Internal variable mappings stay server-side; users receive problem.cnf, the transformed answer or proof, README.txt, and verification-report.json.
Commit reveal
Solvers commit a hash first, then reveal the answer before the post-commit reveal deadline. This prevents simple answer copying during submission.
Verifier quorum
The minimum positive attestations required before a revealed submission can become the accepted candidate. During the initial official-verifier launch phase, issuer bounties use quorum 1.
Finalization
When accept quorum is reached, the keeper can finalize the accepted candidate as soon as the contract reports it as finalizable.
Payments
Supported payment assets
3SAT is a multi-asset protocol. The issuer selects the bounty payment asset, and the same asset is used for that bounty's reward, solver payout, verifier reward pool, solver bond, and answer access fee.
Guides
Role guides
Each role has a focused path. You can use the web app directly or automate the same lifecycle through protocol clients and API endpoints.
Issuer
Open- 1Prepare a DIMACS CNF instance.
- 2Search the database for an existing verified answer.
- 3If no answer exists, upload the instance and configure the bounty.
- 4Select USDC or $3SAT as the bounty payment asset.
- 5Review reward, solver bond, verifier reward pool, timing windows, and verifier quorum.
- 6Approve the selected payment asset and create the bounty with your wallet.
- 7After finalization, access the winning answer without paying a separate unlock fee.
Solver
Open- 1Browse the marketplace for open bounties.
- 2Download a selected instance or run the solver client.
- 3Generate a valid SAT assignment or UNSAT proof artifact.
- 4Approve the solver bond in the bounty payment asset.
- 5Commit the solution hash while the bounty is open for solving.
- 6Reveal the solution before the post-commit reveal deadline.
- 7Wait for verifier attestations and keeper finalization. Payout uses the bounty payment asset.
Verifier
Open- 1Verification is currently operated by the official 3SAT verifier node.
- 2Third-party and personal verifier node onboarding is temporarily paused.
- 3Public verifier client downloads are disabled until verifier onboarding opens.
- 4Issuer-created bounties use verifier quorum 1 during this official-verifier launch phase.
- 5The official verifier checks SAT assignments and supported UNSAT proofs, then submits attestations on-chain.
Answer access
Open- 1Search by exact CNF, format-normalized CNF, or variable-renamed structure.
- 2Review the bounty code, payment asset, answer status, and access price.
- 3If you are the issuer, download the finalized answer bundle without a separate unlock payment.
- 4If you are a buyer, approve and pay the answer access fee in the bounty payment asset.
- 5From search, download a matched bundle rebuilt for the submitted CNF. It includes problem.cnf, the transformed answer or proof, README.txt, and verification-report.json; mapping data remains internal.
- 6From bounty detail, download the original finalized bounty bundle.
- 7Verify file digests against protocol metadata when integrating programmatically.
Lifecycle
Protocol lifecycle
The network advances a bounty through a small number of public phases. Timing is configured when the bounty is created.
Examples
Developer examples
These examples show the public API shape for common integrations. On-chain actions still require the user's wallet to sign the prepared transaction data.
Standardize CNF before search
Normalize DIMACS formatting and compute both format-normalized and variable-renamed structure fingerprints.
curl -X POST https://3sat.network/api/protocol/sdk/cnf/standardize \
-H "content-type: application/json" \
-d '{"text":"p cnf 2 1\n1 -2 0\n"}'Search the verified answer database
Search exact, format-normalized, and variable-renamed CNF fingerprints to check whether a finalized answer already exists.
curl -X POST https://3sat.network/api/protocol/search \
-H "content-type: application/json" \
-d '{"text":"p cnf 2 1\n1 -2 0\n"}'Resolve a public bounty code
Use the public SAT-... code shown in the marketplace instead of relying on small internal numeric ids.
curl https://3sat.network/api/protocol/sdk/bounties/SAT-XXXX-XXXX-XXXXReference
Protocol API overview
The API supports discovery, artifact handling, and transaction preparation. Wallet signatures and on-chain transactions remain under the user's control.
Discovery
/api/protocol/marketplaceList indexed bounties for the marketplace and client discovery.
/api/protocol/searchSearch exact, format-normalized, and variable-renamed CNF fingerprints and return answer availability status.
/api/protocol/sdk/bounties/{idOrCode}Resolve a bounty by public code or internal identifier.
Artifacts
/api/protocol/storageUpload protocol artifacts through controlled server-side storage.
/api/protocol/storageDownload authorized artifacts when access checks pass.
/api/protocol/bundles/answerDownload the finalized problem and answer bundle for an authorized user after issuer or paid-access checks.
/api/protocol/bundles/answerDownload a matched answer bundle rebuilt for the caller's submitted CNF. The bundle includes problem.cnf, answer.cnf or unsat-proof.*, README.txt, and verification-report.json; internal variable mappings are not exposed.
Issuer and solver SDK
/api/protocol/sdk/cnf/standardizeNormalize DIMACS CNF content before hashing and searching.
/api/protocol/sdk/issuer/build-metadataPrepare public bounty metadata from issuer input.
/api/protocol/sdk/issuer/prepare-create-bountyPrepare create-bounty transaction data, including the selected payment asset, for wallet signing.
/api/protocol/sdk/solver/prepare-commitPrepare a solver commitment and bond requirements for an open bounty.
/api/protocol/sdk/solver/prepare-revealPrepare reveal transaction data for a committed SAT assignment or UNSAT proof.
Official verifier automation
/api/protocol/verifier/revealedList revealed submissions inspected by the official verifier automation.
/api/protocol/verifier/artifactFetch the problem and answer artifacts needed by authorized verifier automation.
Clients
Download clients
Clients are provided for users who want to run solver or verifier automation outside the web app.
3SAT CLI
Open-source command line client for issuers, buyers, and professional solvers. It supports marketplace discovery, bounty creation dry-runs, answer purchases, solution upload, commit preparation, commit, and reveal.
Solver client
One-click solving client for users who want to discover bounties, solve CNF instances, and submit SAT or UNSAT answers automatically. macOS and Linux packages require Node.js LTS installed first.
Verifier client
Public verifier client downloads are temporarily disabled. During the initial launch period, verification is operated by the official 3SAT verifier node.
Security
Operational notes
The protocol is designed so users keep control of their wallets and the chain remains the source of truth.
Use dedicated wallets
Run clients with dedicated issuer, solver, or verifier wallets instead of a personal main wallet.
Treat the indexer as cache
Marketplace and search views are cached for speed. Contract state is the authoritative record.
Use generated configs
The app can generate client configuration values so users do not need to hand-edit protocol addresses.
Protect artifacts
Answer access is mediated by API checks and protocol state rather than public bucket URLs.