PROVEITLocal · 31337

← All projects

Sahel · CLOSED

Borehole and handpump

Ségou, Mali•Sahel Water Trust
✓ Project identity verified on-chainNGO receives 0.00 from this escrow
✓
Fundedbudget met
✓
EDE advanceNGO paid up front
✕
Stage 1refunded
✕
Stage 2refunded
✕
Stage 3refunded
✓
Settledclosed

About this project

A borehole promised to 410 people on the edge of Ségou. To prove the first stage, the NGO submitted a photograph of the finished pump that an AI model had generated: no camera data, no GPS, and a marker in the file declaring it machine-made. Donors flagged it, the vote overturned the stage, no pump was ever installed, and every euro went back.

410 people promised water
0 EURC reached the NGO
52,250 EURC refunded
What this page says is what the contract fundsverified

The title, organisation, location, summary and impact above are read out of the text this escrow committed to before its first donation. We hashed that text and it equals the termsHash on chain;no cover photograph is committed yet, so none is shown as the project's own.

Implementer
Sahel Water Trust · 0x7099…79C8
termsHash
0xe2ef8dfd479f…6d60 ✓
Cover photograph
none committed
Escrow
0x5cf0BA38567Bf75E7Ff710Add8064c1fE083a095

What has to be proved before each tranche moves

Anyone may assert a stage's outcome against a bond. For an hour anyone may dispute it with a matching bond, or any donor may flag it for free; a dispute goes to a sealed vote of stakers. Then the contract pays the EDE or refunds the donors.

✕Borehole drilled and water tested20,800.00 EURC · Failed, refundedfailed

Depth and casing against the drilling log, the collar photograph's GPS against the claim's coordinates, and an accredited lab result for E. coli and nitrate.

The rule this stage resolves onmatches the contract0x87ec59aa…56db
Read the exact rule

Stage 1, Borehole drilled and water tested. Resolves PASSED if ALL hold: (a) the drilling log records a cased depth of at least 40 m; (b) the collar photograph is an original camera capture, EXIF make, model and capture time present, GPS within 500 m of the coordinates registered in this claim, and no embedded provenance record (C2PA manifest or IPTC digital source type) declaring the image AI-generated or composited. A photograph failing this is not evidence; (c) an ISO 17025 accredited laboratory reports E. coli absent in 100 ml and nitrate below 50 mg/l. Source of truth: the drilling log, the collar photograph and the laboratory certificate anchored in this stage's evidence bundle. Anything else resolves FAILED.

Asserted
PASSED
by Sahel Water Trust · bond 500.00 EURC
Flagged by donors
32,000.00 EURC
of donor weight, free, no bond
Outcome
20,800.00 EURC refunded
to the donors · the NGO still owes the EDE
The vote overturned the assertionstage failed
Uphold · 2,500.00 EURCquorum 3,000.00 EURCOverturn · 12,500.00 EURC
Voter A
overturn
4,000.00 EURC
Voter B
overturn
3,500.00 EURC
Voter C
overturn
3,000.00 EURC
Voter D
uphold
slashed 250.00 EURC
Voter E
overturn
2,000.00 EURC
✕Pump, apron and soakaway installed20,800.00 EURC · Failed, refundedfailed

The pump's serial plate against the supplier invoice, and a site photograph showing the apron and soakaway actually built.

The rule this stage resolves onmatches the contract0x5a6f891a…5ea7
Read the exact rule

Stage 2, Pump, apron and soakaway installed. Resolves PASSED if ALL hold: (a) the pump serial plate legible in the site photograph matches the serial printed on the supplier invoice; (b) the invoice total is within 10% of this tranche; (c) a site photograph shows a completed concrete apron and a soakaway. Source of truth: the supplier invoice and the site photographs anchored in this stage's evidence bundle. Anything else resolves FAILED.

Asserted
FAILED
by Field Audit Cooperative · bond 500.00 EURC
Outcome
20,800.00 EURC refunded
to the donors · the NGO still owes the EDE
✕Committee trained, 30 days of verified flow10,400.00 EURC · Failed, refundedfailed

A training register with named attendees, thirty consecutive days of flow logs, and a signed community hand-over.

The rule this stage resolves onmatches the contract0x2153fe8b…3da4
Read the exact rule

Stage 3, Committee trained and 30 days of verified flow. Resolves PASSED if ALL hold: (a) the training register lists at least 8 named attendees with signatures; (b) the flow log covers 30 consecutive days with no gap longer than 48 hours; (c) the community hand-over record carries at least 5 signatures. Source of truth: the training register, the flow log and the hand-over record anchored in this stage's evidence bundle. Anything else resolves FAILED.

Traceability

Every event this escrow and its vote emitted, in order, from the contracts' own log rather than our database. Open one for the raw entry behind our wording. 36 events, blocks 47–172.

The funding round

donations arrive; the escrow locks itself at target
Alice donates 20,000.00 EURC (conditional)ContributionReceived2026-11-02 18:05 UTC

A conditional gift: if the work is not delivered, this money comes back to the donor's own wallet.

block 47 · tx 0x386d…1deb
donor=0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc (Alice) amount=20000000000 class_=0 fallbackTo=0x0000000000000000000000000000000000000000
Bob donates 20,000.00 EURC (conditional)ContributionReceived2026-11-02 18:05 UTC

A conditional gift: if the work is not delivered, this money comes back to the donor's own wallet.

block 49 · tx 0x55ee…109e
donor=0x976EA74026E726554dB657fA54763abd0C3a0aa9 (Bob) amount=20000000000 class_=0 fallbackTo=0x0000000000000000000000000000000000000000
Carol donates 12,000.00 EURC (irrevocable)ContributionReceived2026-11-02 18:05 UTC

An irrevocable gift: the donor gave up any personal refund at the moment the escrow locked. If the work fails, her share goes to the reallocation pool she nominated here, and it can never be routed to her.

block 51 · tx 0x0821…41cf
donor=0x14dC79964da2C08b23698B3D3cc7Ca32193d9955 (Carol) amount=12000000000 class_=1 fallbackTo=0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 (Clean Water Reallocation Pool)
Carol donates 12,000.00 EURC (irrevocable)Collateralised2026-11-02 18:05 UTC

An irrevocable gift: the donor gave up any personal refund at the moment the escrow locked. If the work fails, her share goes to the reallocation pool she nominated here, and it can never be routed to her.

block 51 · tx 0x0821…41cf
totalContributed=52000000000 blockNumber=51

The EDE steps in

the NGO is paid up front and the payee is fixed
The EDE registers itself as the irrevocable payeePayeeRegistered2026-11-02 18:05 UTC

The EDE has already paid the NGO in euros, up front. It now writes its own address into the escrow from its own key. The field is write-once and this contract has no transfer function at all, not a restricted one, none. The IBAN is committed as a salted hash, never in the clear.

block 82 · tx 0x440d…e6d4
payee=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC (Iberia EDE, S.A.) ibanCommitment=0x6434f69babee57688b7ec836dd492e0ce108c00211361494c92ec54aabf3ec03 assignedAmount=52000000000 licenceRef=0x4264452d4544452d363830310000000000000000000000000000000000000000
The EDE confirms the euro advance reached the NGOAdvanceConfirmed2026-11-02 18:05 UTC

50,000.00 EUR left the EDE's account and arrived at the NGO's bank, off-chain. This is the on-chain record that it did. The claim is now EXECUTING and work can start. From here the NGO owes the EDE, and only proved stages repay it.

block 83 · tx 0xffc8…9875
payee=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC (Iberia EDE, S.A.) advanceRef=0x98bc6b095e517532386f0328514b44408b9a2b111cabbce5fe4c17ce0fb95651

Stage 1, Borehole drilled and water tested

evidence, assertion, any dispute, and what the money did next
Sahel Water Trust asserts stage 1 PASSED and bonds 500.00 EURCOutcomeAsserted2026-11-02 18:05 UTC

The NGO asserts its own stage and bonds it, which anyone may do. Its proof of the drilled borehole is a photograph an AI model generated. Asserting is cheap only if you are right. The assertion names 3 pieces of evidence, reduced to the single root 0x3298c7f5… that went on-chain. Nothing moves yet: a one-hour window opens in which anyone can dispute it with a matching bond, or any donor can flag it for free.

block 91 · tx 0xce9a…8c5c
milestoneId=0 asserter=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 (Sahel Water Trust) passed=true evidenceRoot=0x3298c7f54620387f0dd526e282a1f4822b5df9357721e13d46d3ac554b1826b8 bond=500000000
Stage 1 → assertedMilestoneStatusChanged2026-11-02 18:05 UTC
block 91 · tx 0xce9a…8c5c
milestoneId=0 from=0 to=1
Alice flags the assertion, 20,000 EURC of donor weight, threshold not yet reachedMilestoneFlagged2026-11-02 18:05 UTC

Flagging is free and unbonded. It does not decide whether the work was done; it decides whether the outcome goes to a vote. Alice's weight alone is below the 30,000 EURC threshold written into this escrow, so nothing happens yet.

block 92 · tx 0x4a04…96b4
milestoneId=0 donor=0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc (Alice) weight=20000000000 reasonHash=0xe9e5fca2e5a206a5bea617a23950e95c78c173fd9b6af37ac26dd793cf871357
Carol flags too, 32,000 EURC crosses the threshold and the stage goes to a voteMilestoneFlagged2026-11-02 18:05 UTC

No gatekeeper and no discretion: the moment flagged donor value crosses the threshold, the stage is disputed exactly as if someone had posted a bond. Carol is an irrevocable donor with no personal refund to gain.

block 93 · tx 0x358c…9f78
milestoneId=0 donor=0x14dC79964da2C08b23698B3D3cc7Ca32193d9955 (Carol) weight=12000000000 reasonHash=0xbc14cc668b91c11f4e6414e760574664468754af519d2ec9612b5e16de76f905
Stage 1 → disputedMilestoneStatusChanged2026-11-02 18:05 UTC
block 93 · tx 0x358c…9f78
milestoneId=0 from=1 to=2
Vote opened on stage 1PollOpened2026-11-02 18:05 UTC

Anyone can open the poll once a stage is disputed, this is not a gatekeeper's decision. Everyone staked in OutcomeVote may vote. A commit window of 10 minutes, then a reveal window of the same length; the whole poll must fit inside the escrow's panel window, or the stage fails to the donors.

block 94 · tx 0x3f4a…fa7f
key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 escrow=0x5cf0BA38567Bf75E7Ff710Add8064c1fE083a095 milestoneId=0 commitDeadline=1793643343 revealDeadline=1793643943
5 staked voters commit sealed votesVoteCommitted ×52026-11-02 18:05 UTC
block 95 · tx 0x77d9…6d64
key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0x2546BcD3c84621e976D8185a91A922aE77ECEc30 (Voter A) milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0xbDA5747bFD65F08deb54cb465eB87D40e51B197E (Voter B) milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0xdD2FD4581271e230360230F9337D5c0430Bf44C0 (Voter C) milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199 (Voter D) milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0x09DB0a93B389bEF724429898f539AEB7ac2Dd55f (Voter E) milestoneId=0
Votes revealed: 1 to uphold, 4 to overturnVoteRevealed ×52026-11-02 18:15 UTC
block 101 · tx 0x14d4…b35a
key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0x2546BcD3c84621e976D8185a91A922aE77ECEc30 (Voter A) uphold=false weight=4000000000 milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0xbDA5747bFD65F08deb54cb465eB87D40e51B197E (Voter B) uphold=false weight=3500000000 milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0xdD2FD4581271e230360230F9337D5c0430Bf44C0 (Voter C) uphold=false weight=3000000000 milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199 (Voter D) uphold=true weight=2500000000 milestoneId=0 key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0x09DB0a93B389bEF724429898f539AEB7ac2Dd55f (Voter E) uphold=false weight=2000000000 milestoneId=0
Tally: overturned (2,500.00 EURC to 12,500.00 EURC)Ruled2026-11-02 18:25 UTC
block 107 · tx 0x1832…f13f
key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 upheld=false upholdWeight=2500000000 overturnWeight=12500000000 milestoneId=0
The vote overturns the assertion, stage 1 FAILEDChallengeResolved2026-11-02 18:25 UTC

Four of five voters opened the collar photograph, found no camera data and an embedded marker declaring it AI-generated, and ruled that it is not evidence under clause (b) of the stage rule. The tally is permissionless: whoever sends it cannot change it, because the reveals already decided it. OutcomeVote calls the escrow's resolveChallenge in the same transaction.

block 107 · tx 0x1832…f13f
milestoneId=0 upheld=false
Stage 1 → FAILEDMilestoneStatusChanged2026-11-02 18:25 UTC
block 107 · tx 0x1832…f13f
milestoneId=0 from=2 to=5
Voter D voted with the minority, slashed 250.00 EURCVoterSettled2026-11-02 18:25 UTC
block 108 · tx 0x87c2…2535
key=0xf3ec3049acde874ba720987fca9bd514b4767e21bc8bbd876bceeff33fe9f5d1 voter=0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199 (Voter D) withMajority=false slashed=250000000 milestoneId=0
Sahel Water Trust's bond forfeited, the assertion was wrongAssertionSettled2026-11-02 18:25 UTC
block 109 · tx 0x7847…113d
milestoneId=0 asserter=0x70997970C51812dc3A010C7d01b50e0d17dc79C8 (Sahel Water Trust) right=false amount=500000000

Stage 2, Pump, apron and soakaway installed

evidence, assertion, any dispute, and what the money did next
Field Audit Cooperative asserts stage 2 FAILED and bonds 500.00 EURCOutcomeAsserted2026-11-02 19:26 UTC

No pump was installed; the site photograph shows an open borehole. Anyone may assert that a stage failed, too. The assertion names 3 pieces of evidence, reduced to the single root 0xb772b09a… that went on-chain. Nothing moves yet: a one-hour window opens in which anyone can dispute it with a matching bond, or any donor can flag it for free.

block 124 · tx 0x4d0b…e744
milestoneId=1 asserter=0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097 (Field Audit Cooperative) passed=false evidenceRoot=0xb772b09a02a016269622b8299318fcfc15af1220ad843e276f006ebf8e6726f2 bond=500000000
Stage 2 → assertedMilestoneStatusChanged2026-11-02 19:26 UTC
block 124 · tx 0x4d0b…e744
milestoneId=1 from=0 to=1
Stage 2 → FAILEDMilestoneStatusChanged2026-11-02 20:48 UTC
block 151 · tx 0x8bff…cd82
milestoneId=1 from=1 to=5
Field Audit Cooperative's bond returned, the assertion stoodAssertionSettled2026-11-02 20:48 UTC
block 152 · tx 0x6dc8…28fc
milestoneId=1 asserter=0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097 (Field Audit Cooperative) right=true amount=500000000

Stage 3, Committee trained, 30 days of verified flow

evidence, assertion, any dispute, and what the money did next
Stage 3 → FAILEDMilestoneStatusChanged2027-10-28 18:06 UTC
block 167 · tx 0x03a3…84ae
milestoneId=2 from=0 to=5

Settlement

the books close and whatever is left goes back
Claim closedClaimClosed2027-10-28 18:06 UTC

Every stage has reached a terminal state. The escrow's books are final.

block 168 · tx 0x2989…5391
releasedTotal=0 refundPool=52250000000
Refund of 20,096.153846 EURC paid out for Alice → AliceRefundClaimed2027-10-28 18:06 UTC

Pro-rata share of the refund pool: pool × this donor's contribution ÷ total contributed. Anyone may trigger the payout, but it can only ever land in the donor's own wallet.

block 170 · tx 0x6b6d…2ddf
donor=0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc (Alice) recipient=0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc (Alice) amount=20096153846 class_=0
Refund of 20,096.153846 EURC paid out for Bob → BobRefundClaimed2027-10-28 18:06 UTC

Pro-rata share of the refund pool: pool × this donor's contribution ÷ total contributed. Anyone may trigger the payout, but it can only ever land in the donor's own wallet.

block 171 · tx 0xf8d5…90f0
donor=0x976EA74026E726554dB657fA54763abd0C3a0aa9 (Bob) recipient=0x976EA74026E726554dB657fA54763abd0C3a0aa9 (Bob) amount=20096153846 class_=0
Refund of 12,057.692307 EURC paid out for Carol → Clean Water Reallocation PoolRefundClaimed2027-10-28 18:06 UTC

Carol gave irrevocably, so her share is routed to the pool she nominated. The contract decides this by donation class, never by who calls the function, she could call it herself and the money would still go to the pool.

block 172 · tx 0x2356…b480
donor=0x14dC79964da2C08b23698B3D3cc7Ca32193d9955 (Carol) recipient=0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65 (Clean Water Reallocation Pool) amount=12057692307 class_=1
Check everything yourself
Where every token went, and the full text this escrow committed to.
for auditors

Where the money went

From the stablecoin's own Transfer log, not our accounting.

In: donations and bonds
→
53,000.00 EURC
Out to OutcomeVote
Ruling body
→
250.00 EURC
Out to Field Audit Cooperative
Asserter
→
500.00 EURC
Out to Alice
Donor, conditional
→
20,096.153846 EURC
Out to Bob
Donor, conditional
→
20,096.153846 EURC
Out to Clean Water Reallocation Pool
Reallocation target
→
12,057.692307 EURC
Left in the escrow
·
0.000001 EURC

✓ In minus out equals the balance (53,000.00 EURC − 52,999.999999 EURC = 0.000001 EURC). The remainder is integer truncation on the pro-rata refund split, at most one unit per donor. It is documented rather than swept, because a sweep function is an administrative path and this contract has none.

The text this escrow committed to

PROVEIT project terms v2
claim: well-failure
title: Borehole and handpump
implementer: Sahel Water Trust
location: Ségou, Mali (13.4300, -6.2700)
summary: A borehole promised to 410 people on the edge of Ségou. To prove the first stage, the NGO submitted a photograph of the finished pump that an AI model had generated: no camera data, no GPS, and a marker in the file declaring it machine-made. Donors flagged it, the vote overturned the stage, no pump was ever installed, and every euro went back.
impact: 410 people promised water | 0 EURC reached the NGO | 52,250 EURC refunded
cover: keccak256 0xad3693ba75c4802ffbc1310d5f1730a67ce2ac9c81ce24e45090e77cd7167403 of projects/well-failure/cover.jpg
fees: works=48960.00 EUR | financing=2000.00 EUR | verification=780.00 EUR | platform=260.00 EUR | target=52000.00 EUR | tranches=20800.00/20800.00/10400.00 EUR | discount to EDE=2000.00 EUR (3.846% of target), charged once, outcome-independent
conditions: verification=1.50% and platform=0.50% of each tranche, taken by the contract on release only | a failed tranche refunds in full, fee lines included | donor pays 0.00 EUR in fees; 100% of a refund returns to the donor or their nominated fallback

✓ This exact text hashes to 0xe2ef8dfd479f…6d60, the termsHash written into the escrow before the first donation. Change one character (a place name, a fee, the cover photograph) and the match fails.

What this does not prove. That a photograph is honest, or that the people who voted were. The chain proves who asserted what, who disputed, how the stake voted, and that the money then moved only as the rules allow. The rest is answered by making it pay to catch a lie, and by failing toward the donors whenever nobody stands behind the work.

Run the EDE's due-diligence checks on this escrow →