← all projects

Thesma

Arc mainnet
@kaelah971·Kaelah💛·2 followers·added 2026-10-23
0
stars
41k
lines
311
files
0
forks
2
followers
languages
TypeScript 96%Solidity 4%JavaScript 0%

Thesma settles outcome-based campaigns in USDC on Arc. The on-chain core is ThesmaMarketVault (contracts/src/ThesmaMarketVault.sol), a non-upgradeable budget cage: createCampaign freezes a policyHash, budgetCap, bountyCeiling, executor and verifier, fundCampaign pulls USDC up to the cap, and payoutVerifiedOutcome releases funds only to the recipient named in an EIP-712 OutcomeProof signed by the campaign verifier, with outcomeId and proofHash replay maps. The Next.js backend mirrors that pipeline. src/server/services/checkout.ts verifies a customer's USDC transfer by reading the receipt on Arc, src/server/services/payouts.ts enforces a refund hold, submits once and marks SETTLED only after matching an OutcomePaid event, and src/server/chain/arc.ts fails closed on any mainnet 5042 vs testnet 5042002 mismatch. Owners fund from their own browser wallet, cron workers run payouts, and each payout has a public receipt at /api/receipts/payouts/[id]. The vault is Sourcify exact-match verified on Arc mainnet at 0x0fA826256a58F19Ad24Fc9384d81D313f2266F79, where a full 1.00 USDC fund, purchase, hold, payout and reconciliation lifecycle has executed.

deployed on Arc mainnet · chain 5042
Evidence (1 verified on-chain): Sourcify exact-match verification
ContractAddressProof
ThesmaMarketVault0x0fA826256a58F19Ad24Fc9384d81D313f2266F79Sourcify ✓
tags
last pushed 2026-10-22