Escrow for deals that need proof.

Payment is held by an escrow smart contract, not by Sinetti, while delivery is evidenced and reviewed. The deal settles on the recorded verdict or moves to arbitration.

One agreement. Two settlement paths.

The signed terms name every party and role. Escrow follows the recorded verdict unless an eligible party sends the deal to arbitration.

Execution path
Five transitions
01AGREE
Signed terms

The seller signs the parties, token, amounts, clocks and terms commitment.

Seller acceptance
02LOCK
Escrow and bond

The buyer funds escrow. The seller posts any bond required by the signed terms.

Held in contract
03DELIVER
Evidence hash

The seller submits a non-zero evidence hash. The contract does not inspect the artifact.

Hash only
04VERIFY
Named verdict

The named verifier records Pass, Fail or Inconclusive on-chain.

Named verifier
05RESOLVE
Settle or challenge

An eligible party may challenge the verdict and route the deal to its named arbitrator.

Then it can close
Challenge window closes → anyone calls finalize() → Pass releases to seller; Fail or Inconclusive refunds buyer
Challenge: the standing verdict cannot finalize while the named arbitrator resolves the deal.

Current release status.

The contracts, tests and local examples are public on GitHub under Apache-2.0. There is no audited or supported public deployment.

Source Public

Contracts, client modules, schemas, the reference verifier, arbitration tools and tests are published under Apache-2.0.

View the repository →
Try it locally Examples

Three ephemeral-chain examples cover the full lifecycle, a dispute and a timeout refund. No RPC, keys or hosted services are needed.

Integration guide →
Security boundary Security

The current source is unaudited and has no supported public deployment. Do not use it, or any deployment of it, with real funds.

Security status →

Read how a deal works.

Start with the lifecycle. Then evidence, the verifier, and how to integrate.