Security review of a DAO treasury module (near-sdk, Rust)
Published by buyer.sealedchoice.testnet
- Budget cap
- 15,000.00 tUSDC
- Escrow remaining
- 0.00 tUSDC
- Bond per bid
- 0.10 NEAR
- Sealed bids
- 3
- Closed
- 12 hours ago
Result
Scored once by the pinned evaluator inside the TEE, on attempt 1. Price and the ranking are code. The committee decides the award.
| Rank | Supplier bid | Score / 100 | Outcome |
|---|---|---|---|
| 1 | vendor-a.sealedchoice.testnetBid 1, slot 0 | 81.66 | Ranked |
| 2 | vendor-b.sealedchoice.testnetBid 2, slot 1 | 47.55 | Awarded |
| 3 | vendor-c.sealedchoice.testnetBid 3, slot 2 | 45.00 | FlaggedWhy flagged?The proposal matches an instruction-injection pattern. No score change; the committee is told to read the proposal. |
Model scores are not reproducible between runs. What is recorded is this run, signed and checkable from the stored bytes.
Scope & scoring
Published before bidding and fixed at creation. Its hash is what the evaluator echoes back, so a changed rubric could not produce an accepted result.
Manual security review of about 1,200 lines of Rust (near-sdk 5.x): a treasury module with cross-contract withdrawals, allowances and callbacks. Deliverable: written report with severity ratings and one retest of fixes.
| Criterion | Scored by | Weight |
|---|---|---|
| Price | Code, from the price | 40.00% |
How credible and specific is the proposed review methodology for this scope?How scores from 0 to 5 are defined
| Models, checked by code | 35.00% |
How relevant and checkable is the vendor's prior experience for this scope?How scores from 0 to 5 are defined
| Models, checked by code | 25.00% |
Qualitative criteria are scored by 2 models and aggregated by the lower median, needing at least 2 valid outputs. Price and the ranking are integer arithmetic, never a model.
Bids
The bid set was frozen at close with a Merkle root, so nothing could be added or dropped afterwards.
| Slot | Bidder | Submitted | Ciphertext | Bond |
|---|---|---|---|---|
| 0 | vendor-a.sealedchoice.testnet | 12 hours ago | f6cd845d…e98e031012 bytes | 0.10 NEAR (settled) |
| 1 | vendor-b.sealedchoice.testnet | 12 hours ago | f92bf73d…b61f0e477 bytes | 0.10 NEAR (settled) |
| 2 | vendor-c.sealedchoice.testnet | 12 hours ago | 630c0642…b53317497 bytes | 0.10 NEAR (settled) |
Evaluation attempts
At most three are allowed and every one is recorded, successful or not. Only one result is ever accepted.
| Attempt | Started | Outcome |
|---|---|---|
| 1 | 12 hours ago | Accepted |
Progress
7 of 7 completeExpand a step for details.
Createdcomplete
The rubric, deadline, bond and committee were fixed and cannot change.
Key setcomplete
The TEE returned the public key that bids are encrypted to.
Fundedcomplete
The escrow has been settled.
Biddingcomplete
3 sealed bids were submitted.
Closed and evaluatedcomplete
The evaluator ran once and the contract accepted its result.
Awardedcomplete
Bid 2 was awarded with 1 approval, a deviation from the ranking with a written rationale.
Paidcomplete
The winner was paid from escrow and the remainder returned to the buyer.
What is recorded
- Buyer
- buyer.sealedchoice.testnet
- Deadline
- 10 Nov 2026 09:09 UTC
- Rubric hash
- 5667a800…d2080c
- Tender key
- 03086924…ff3ce0
- Bid set root
- d9f1e5f5…406cb4
- Evidence bundle
- 5f34d436…bfe8f8
- Evaluator build
- 737b91e7…18d470
- Committee
- buyer.sealedchoice.testnet (1 approval needed)
Everything here was fixed when the tender was created and cannot be changed by anyone, including the buyer.