Table of Contents
A composable platform designed for peer-to-peer transaction verification, offering clear transaction lifecycles, invite-and-accept flows, and structured UI primitives that make it easy to extend or re-implement. Acting as a third-party safety layer, Sabot ensures verified, transparent, and scam-free online transactions.
๐ Blockchain Escrow Integration: Comprehensive smart contract integration for secure fund management
๐ฎ Oracle Verification System: Decentralized dispute resolution with oracle-based verification
โ๏ธ Arbiter Management: Democratic arbiter selection and dispute resolution workflows
๐ Real-time Status Tracking: Live updates for escrow status and deliverable tracking
๐ก๏ธ Enhanced Security: Multi-layer security with access controls and reentrancy protection
Follow these steps to get Sabot running on your local machine.
- Node.js (version 16.0 or higher)
- Bun
- Metamask
git clone https://github.com/gian-gg/sabot.git
cd sabot# Install project dependencies
bun install# Copy the environment template
cp .env.example .envEdit the .env file with your configuration (API keys, database URL, etc.)
Apply database migrations:
# Run Supabase migrations
npx supabase db pushFor full escrow functionality, set up the smart contract:
# Navigate to blockchain directory
cd ../SabotBlockchain/transaction-smart-contract
# Install dependencies
npm install
# Deploy contracts (local development)
npx hardhat run scripts/deploy-local.ts --network localhostbun run devSabot now includes comprehensive blockchain integration for secure escrow management:
- Smart Contract: Deployed AgreementLedger contract with advanced escrow functionality
- Oracle System: Decentralized verification for dispute resolution
- Token Economics: ERC-20 token integration with fee distribution
- Security: Multi-layer security with access controls and reentrancy protection
All project documentation is available in the docs directory. This includes:
- Introduction: Documnetation related to getting started.
- Architecture: Documentation related to the application's architecture and design.
- Developer Guide: Comprehensive guides for developers, covering setup, architecture, and contribution guidelines.
- User Guide: Detailed information for end-users on how to use the application.
The platform includes comprehensive testing for both frontend and smart contract functionality:
# Frontend tests
bun test
# Smart contract tests
cd ../SabotBlockchain/transaction-smart-contract
npx hardhat testThe smart contract code for this project is hosted in its own repository: transaction-smart-contract.
This project provides a token-based (SBT) system for creating immutable agreements and managing multi-deliverable escrow.
Key Technologies:
- Blockchain: Lisk Sepolia Testnet
- Smart Contract Language: Solidity
- Development Framework: Hardhat
- Programming Language (for project configuration/scripts): TypeScript
Key Features:
-
Token & Agreement System:
- SBT Utility Token: An ERC20-like token built directly into the contract.
- User Registration:
registerUser()grants new users 100 SBT. - Agreement Creation:
createAgreement()allows two registered users to create an immutable, timestamped agreement. - Fee Mechanism: 10 SBT from each party (total 20 SBT) for agreement creation. 80% (16 SBT) goes to
devWallet, 20% (4 SBT) is burned. - Reporting System:
reportIssue()allows parties to create on-chain reports for disputes. - Admin Controls:
Ownablecontract (OpenZeppelin) allows owner to updatedevWallet.
-
Escrow System:
- Multiple Deliverable Types: Supports Crypto (ETH), BankTransfer, FileDeliverable, PhysicalItem, Service, and Hybrid escrows.
- ETH Locking: Securely locks ETH for crypto-based escrows.
- Hash-Based Verification: Uses cryptographic hashes for non-crypto deliverables.
- Dual Confirmation: Both parties must confirm completion for fund release.
- Proof Submission: Parties can submit proof of delivery/completion.
- Mutual Arbiter Selection: Disputes require both parties to approve an arbiter.
- Arbiter Resolution: Arbiters can resolve disputes (release, refund, split).
- Fee Structure: 2% platform fee on successful completion, 1% arbiter fee for dispute resolution.
- Expiration Handling: Automatic refund to initiator if escrow expires.
- Cancellation: Initiators can cancel pending escrows.
- Security:
ReentrancyGuardprotection.
-
Oracle Verification System:
- Purpose: Automatic verification for
FileDeliverableandServiceescrows. - Authorization:
authorizeOracle()(owner-only) manages oracle addresses. - Submission:
submitOracleVerification()allows authorized oracles to submit verification results, auto-confirming for the submitting party if verified. - Advisory Role: Assists confirmation but doesn't control release; arbiter decisions always supersede.
- Purpose: Automatic verification for
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.