尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Holdback — Retention Money Nobody Can Sit On
A Solana program that holds construction retention in a vault with no private key: 95% of every payment goes to the subcontractor at once, 5% is locked until the warranty ends, only the cost of a real defect can be frozen, the locked claim can be sold for cash today, and anyone can release the money when the warranty is over.
Live Site · Live Demo (Phantom on devnet) · Pitch Deck · Video Walkthrough · Docs · Program on Explorer
Submission to Solana Create Shymkent 2026 / Colosseum查看完整 README ↗A Solana program that holds construction retention in a vault with no private key: 95% of every payment goes to the subcontractor at once, 5% is locked until the warranty ends, only the cost of a real defect can be frozen, the locked claim can be sold for cash today, and anyone can release the money when the warranty is over.
Live Site · Live Demo (Phantom on devnet) · Pitch Deck · Video Walkthrough · Docs · Program on Explorer
Built during the Solana Create Shymkent bootcamp (Superteam Kazakhstan, Sep 28 – Oct 2, 2026).
| Name | Role | Contact |
|---|---|---|
| Maga | Founder & Engineer | GitHub |
In construction a client keeps 5–10% of every payment "as a warranty" for 1–2 years. That money sits in the client's own account.
release; no reminders, no permission from the client.Regulation is moving the same way: New Zealand requires retention in trust since 2023, and the UK decided to ban cash retentions (not before 2027).
token_interfacerelease is exposed as a Solana Action, so anyone can release funds from a link, without our apprelease after the warranty, also as a Blink| Layer | Technology |
|---|---|
| On-chain program | Rust · Anchor 0.31.1 · SPL Token / Token-2022 (token_interface) |
| Client | TypeScript / JavaScript · @coral-xyz/anchor · @solana/web3.js · @solana/spl-token |
| Website | Static HTML/CSS/JS on Vercel · esbuild bundle for the devnet client · Phantom |
| Demo server | Node.js (http), Solana Actions / Blink endpoint |
| Testing | ts-mocha · chai · solana-test-validator (22 tests) |
| CI | GitHub Actions: builds the program with cargo-build-sbf and runs all tests on a local validator |
Client (developer) Subcontractor Arbiter Funder Anyone
│ │ │ │ │
│ create_contract │ accept_contract │ resolve_defect │ buy_claim │ release
│ pay_progress │ list_claim │ │ │ (or Blink)
│ raise_defect │ │ │ │
▼ ▼ ▼ ▼ ▼
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ Holdback program (Anchor, Solana) │
│ │
│ Contract PDA ["contract", client, contract_id] │
│ client · subcontractor · arbiter · beneficiary · mint · retention_bps · warranty_end │
│ retained · frozen · released · ask_price · status (Proposed → Active → Released) │
│ │
│ Vault = associated token account owned by the Contract PDA (no private key) │
└────────────────────────────────────────────────────────────────────────────────────────────┘
│ pay_progress: 95% ───────────────▶ subcontractor token account
│ 5% ───────────────▶ vault
│ release (after warranty) vault ──▶ beneficiary (subcontractor or the funder who bought the claim)
See docs/architecture.md for the account model, state machine and security checks, and docs/api.md for every instruction and HTTP endpoint.
Prerequisites: Node.js 22, Rust, Solana CLI 2.3 (Agave). Anchor CLI 0.31.1 is only needed to regenerate the IDL.
# Clone the repository
git clone https://github.com/facei7505-droid/HOLD-BACK
cd HOLD-BACK
# Install dependencies
npm install
# Environment variables for the demo server
cp .env.example .env
# Build the Solana program (target/deploy/holdback.so)
(cd programs/holdback && cargo-build-sbf)
# Start a local validator with the program loaded at its declared id
solana-test-validator --reset \
--bpf-program F3qhQqGxVpjDPndPx4KhwoAdvxbmUchQotYFe8zWxARt target/deploy/holdback.so
# Run the tests (second terminal)
solana-keygen new --no-bip39-passphrase -o ~/.config/solana/id.json # skip if you have a wallet
ANCHOR_PROVIDER_URL=http://127.0.0.1:8899 ANCHOR_WALLET=~/.config/solana/id.json npm test
# Start the local demo UI on http://localhost:3000 (reads .env)
npm run demo
To deploy under your own program id (anchor keys sync), devnet steps and using devnet USDC, see docs/DEVNET.md. If cargo-build-sbf fails on blake3 with an older toolchain, run cargo update -p blake3 --precise 1.5.5.
| Path | What |
|---|---|
programs/holdback/src/lib.rs | Anchor program, 8 instructions |
tests/ | 22 tests against a local validator (main flow, edge cases, hardening) |
app/ | Local demo server and UI (role wallets, vault, timer, on-chain log, Blink), devnet browser client source |
site/ | Product site on Vercel: landing, live simulation and Phantom devnet demo (demo.html), standalone deck |
deck/ | Pitch deck (source, HTML, PDF, 14 slides) |
media/ | Demo and pitch videos, recording scripts, narration text |
docs/ | Product, architecture, API, roadmap, business, legal, security and devnet notes |
target/idl/, target/types/ | Program IDL and TypeScript types |
releaseFull roadmap: docs/roadmap.md
See CONTRIBUTING.md.
MIT — see LICENSE