Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - ThinknetCollective/mesh-contract · GitHub
Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ThinknetCollective/mesh-contract · GitHub
Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ThinknetCollective/mesh-contract · GitHub
Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - ThinknetCollective/mesh-contract · GitHub
Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ThinknetCollective/mesh-contract · GitHub
Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - ThinknetCollective/mesh-contract · GitHub
Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - ThinknetCollective/mesh-contract · GitHub
Skip to content

Repository files navigation

🔗 Mesh Contract

Smart contracts powering the ThinkMesh protocol — on-chain reputation, rewards, and governance.

License: MITRustSorobanRustSorobanStellarDrips Wave


🌊 Drips Wave 1 is LIVE — Support mesh-contract and earn your place on the leaderboard!Fund this project on Drips →


🎯 What is Mesh Contract?

Mesh Contract is the smart contract layer of the ThinkMesh ecosystem. It provides:

  • 🏆 On-chain reputation — Immutable proof of contribution quality
  • 💰 THINK token — ERC-20 reward token for problem solvers
  • 🎖️ Impact NFTs — Soulbound badges proving real-world impact
  • 🏛️ DAO governance — Community control over platform decisions
  • 💸 Solution bounties — Smart contract escrow for funded challenges
  • 📊 Drips integration — Streaming rewards to contributors

Think: "The on-chain trust layer for real-world problem solving"


💧 Drips Wave — Fund the Future of Collaborative Problem Solving

Wave 1 is open. Your support makes collaborative problem solving unstoppable.

Why Fund Mesh Contract?

ThinkMesh is building the infrastructure to reward people who solve real-world problems — from local infrastructure to global challenges. The smart contract layer is the backbone of that vision.

Your contribution via Drips streams directly to the developers building:

What You FundImpact
🪙 THINK token contractsEnables micro-rewards to global contributors
🎖️ Impact NFT systemGives solvers verifiable, portable credentials
🏛️ DAO governancePuts platform decisions in the community's hands
💸 Bounty escrowFunds real implementations of winning solutions
🔐 Security auditsProtects user funds and on-chain reputation

How to Contribute via Drips

  1. Visit drips.network
  2. Connect your wallet
  3. Set a streaming amount (as low as $1/month)
  4. Start streaming — funds flow continuously to contributors

Drips lets you support open-source sustainably. No one-time donations — just continuous, fair compensation for ongoing work.


✨ Contract Architecture

contracts/
├── registry/
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave funding escrow contract
├── settlement/
│ └── src/lib.rs # Wave completion settlement contract
scripts/
├── deploy.sh # Stellar testnet deployment script
└── seed_testnet.sh # Testnet seeding script
│ └── src/lib.rs # Wave Program registration contract
├── escrow/
│ └── src/lib.rs # Wave escrow for fund management
├── settlement/
│ └── src/lib.rs # Wave settlement and distribution
scripts/
├── deploy.sh # Automated testnet deployment
└── seed_testnet.sh # Testnet data seeding

🚀 Quick Start

Prerequisites

  • Rust >= 1.70.0
  • Stellar CLI (soroban-cli)
  • Stellar SDK
  • A wallet with Stellar testnet XLM (funded via Friendbot)
  • Soroban CLI (install via cargo install soroban-cli)
  • Stellar testnet account (get funded via Friendbot)

Setup

# Clone the repo
git clone https://github.com/frankosakwe/mesh-contract.git
cd mesh-contract
# Install Rust toolchain for Soroban
rustup target add wasm32-unknown-unknown
# Install Stellar CLI
cargo install soroban-cli
# Build contracts
cargo build --target wasm32-unknown-unknown --release
# Deploy to Stellar testnet (Linux/Mac/WSL)
chmod +x scripts/deploy.sh
./scripts/deploy.sh
# Seed testnet with sample data (Linux/Mac/WSL)
chmod +x scripts/seed_testnet.sh
./scripts/seed_testnet.sh

Windows Users

For Windows users, PowerShell scripts are also provided:

# Deploy to Stellar testnet (PowerShell)
.\scripts\deploy.ps1
# Seed testnet with sample data (PowerShell)
.\scripts\seed_testnet.ps1

Note: Windows users experiencing build issues should use WSL (Windows Subsystem for Linux) or see BUILD_ISSUES.md for workarounds. cargo install soroban-cli

Copy environment variables

cp .env.testnet.example .env.testnet

Edit .env.testnet with your Stellar secret key

Build contracts (native build)

cargo build

Build WASM for deployment (requires soroban-cli)

cargo build --release --target wasm32-unknown-unknown

Run tests (requires soroban-cli test features)

cargo test

Deploy to Stellar testnet

./scripts/deploy.sh

Seed testnet with sample data

./scripts/seed_testnet.sh


### Current Status
- ✅ Contracts compile successfully with `cargo build`
- ✅ Soroban SDK 20.5.0 compatibility issues resolved
- ⚠️ WASM compilation requires soroban-cli installation
- ⚠️ Unit tests have dependency issues with soroban-sdk test features
- 📝 Deployment scripts ready for use after soroban-cli installation
### Environment Variables
After deployment, contract IDs are automatically saved to `.env.testnet`:
```bash
# .env.testnet (auto-generated)
NETWORK=testnet
RPC_URL=https://soroban-testnet.stellar.org:443
DEPLOYER_ADDRESS=your_deployer_address
REGISTRY_CONTRACT_ID=deployed_registry_contract_id
ESCROW_CONTRACT_ID=deployed_escrow_contract_id
SETTLEMENT_CONTRACT_ID=deployed_settlement_contract_id
# .env.testnet
DEPLOYER_SECRET_KEY=your_stellar_secret_key
STELLAR_NETWORK=testnet
STELLAR_RPC_URL=https://soroban-testnet.stellar.org:443

🌍 Deployment Addresses

ContractNetworkAddress
RegistryStellar TestnetDeployed via scripts/deploy.sh
EscrowStellar TestnetDeployed via scripts/deploy.sh
SettlementStellar TestnetDeployed via scripts/deploy.sh

Contract IDs are saved to .env.testnet after deployment. | Registry | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Escrow | Stellar Testnet | Run ./scripts/deploy.sh to deploy | | Settlement | Stellar Testnet | Run ./scripts/deploy.sh to deploy |

Testnet deployments are automated via deployment scripts.


🛠️ Tech Stack

LayerTechnology
Smart contractsRust + Soroban SDK
FrameworkSoroban CLI
NetworkStellar Testnet
Contract typesRegistry, Escrow, Settlement
DeploymentStellar CLI (soroban contract deploy)
FundingStellar Friendbot

Why Stellar (Soroban)?

FeatureStellar SorobanEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ Stellar SCP✅ Native
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Low cost for all❌ Expensive for small users
FrameworkSoroban 20.0.0
TestingSoroban SDK testutils
NetworkStellar (Soroban)
Contract typesRegistry, Escrow, Settlement

Why Stellar (Soroban)?

FeatureStellarEthereum L1
Gas fee~$0.0001~$2–50
Speed~5 seconds~12 seconds
Security✅ SCP consensus✅ PoW/PoS
Developer UX✅ Rust-based✅ EVM
Accessibility✅ Very low cost❌ Expensive for small users

🗺️ Roadmap

✅ Phase 1: Foundation (Q1 2026)

  • Repository setup & architecture design
  • Registry contract (Wave Program registration)
  • Escrow contract (Wave funding escrow)
  • Settlement contract (Wave completion settlement)
  • Testnet deployment scripts
  • Testnet seeding scripts

🚧 Phase 2: Testing & Integration (Q2 2026)

  • Comprehensive contract tests
  • Integration tests
  • Soroban contract development
  • Testnet deployment scripts
  • Comprehensive test coverage
  • Mainnet deployment

🚧 Phase 2: NFT & Governance (Q2 2026)

  • ImpactNFT soulbound badges
  • MeshDAO voting contracts
  • Timelock controller
  • Security audit
  • Mainnet deployment

📋 Phase 3: Advanced Features (Q3 2026)

  • Token integration
  • Advanced governance features
  • Frontend integration with thinkmesh-api
  • Drips streaming integration

🌟 Phase 4: Ecosystem (Q4 2026)

  • Cross-chain bridges
  • Partner integrations
  • Grant program smart contracts

🧪 Testing

# Run all tests
cargo test# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement
# Run tests with output
cargo test -- --nocapture
# Run specific contract tests
cargo test -p registry
cargo test -p escrow
cargo test -p settlement

🚀 Stellar Testnet Deployment

Prerequisites

  1. Install Rust and Soroban CLI

    rustup target add wasm32-unknown-unknown
    cargo install soroban-cli
  2. Generate a Stellar Key Pair

    soroban keys generate --network testnet

    This will generate a public key and secret key. Save the secret key securely.

  3. Fund Your Testnet Account Visit Stellar Friendbot and enter your public key to get testnet XLM.

Deployment Steps

  1. Configure Environment

    cp .env.testnet.example .env.testnet
    # Edit .env.testnet and set DEPLOYER_SECRET_KEY
  2. Build Contracts

    cargo build --release --target wasm32-unknown-unknown
  3. Deploy to Testnet

    ./scripts/deploy.sh

    This script will:

    • Deploy Registry contract
    • Deploy Escrow contract
    • Deploy Settlement contract
    • Initialize all contracts with proper wiring
    • Save contract IDs to .env.testnet
  4. Seed Test Data

    ./scripts/seed_testnet.sh

    This script will:

    • Register a sample Wave Program
    • Open a Wave escrow
    • Fund the escrow
    • Create and approve a settlement proposal

Verification

After deployment, you can verify the contracts are deployed correctly by checking the contract IDs in .env.testnet.

Manual Contract Invocation

You can manually invoke contracts using the Soroban CLI:

# Read program details
soroban contract read \
--id $REGISTRY_CONTRACT_ID \
--fn get_program \
--program_id your_program_id \
--rpc-url https://soroban-testnet.stellar.org:443
# Read wave details
soroban contract read \
--id $ESCROW_CONTRACT_ID \
--fn get_wave \
--wave_id your_wave_id \
--rpc-url https://soroban-testnet.stellar.org:443

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards (NatSpec documentation required)
  • Pull request process
  • Security disclosure policy

🎯 Open Issues — Apply Now

We maintain a list of open, well-scoped issues that contributors can pick up and implement:

LabelDescription
good first issueBeginner-friendly tasks (Easy–Medium, 5–8 hrs)
smart-contractAll Solidity contract work
advancedComplex tasks for experienced contributors

To claim an issue:

  1. Comment /apply on the issue you want to work on
  2. A maintainer will assign it to you
  3. Fork, implement, and open a PR referencing the issue

Quick ways to contribute:


🔐 Security

Smart contracts handle real funds. We take security seriously:

  • All contracts use OpenZeppelin audited libraries
  • NatSpec documentation required for all functions
  • Comprehensive test coverage required (>95%)
  • Bug bounty program: security@thinkmesh.io
  • Responsible disclosure: SECURITY.md

⚠️Do not use unaudited contracts in production. Mainnet deployment follows a full security audit.


🌟 Community & Links


📜 License

MIT License — see LICENSE for details.

Open source, forever.


💧 Fund this project on Drips — Wave 1 is LIVE

🔗 Smart contracts • 🏆 On-chain reputation • 💸 Streaming rewards • 🌍 Real-world impact

Made with ❤️ by the ThinkMesh community


Star this repo if you believe in rewarding real-world problem solvers!

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages