Trustless USDC escrow for freelance digital art commissions on the Stellar Network.
ComiSure replaces informal, trust-based payment channels with a decentralized Soroban smart contract. Protect yourself from chargeback scams and ghost artists using instant, on-chain settlements.
- GitHub Repo: HitsukiMok/ComiSure
- Contract Factory ID:
CAWAKGBTHWFMTB6O74CDJ5WOVLLFZ5WMKTBKOP2FNB5BUMTQPZYQZN3J - Stellar Expert Factory Log: View Deployment Transaction on Testnet
Freelance digital artists and their clients face rampant fraud. Artists suffer severe income loss from malicious PayPal chargebacks after delivering unwatermarked artwork, while clients risk sending upfront e-wallet payments (like Paypal) to "artists" who ghost them.
ComiSure is a decentralized web application that acts as a trustless escrow middleman. Clients initiate a commission by depositing USDC into a custom Soroban smart contract. The funds are securely locked on-chain, proving to the artist that the money is guaranteed. Once the artist delivers the final piece, the client approves the release, and the funds are instantly routed to the artist's wallet. By utilizing the Stellar network, ComiSure leverages 5-second settlement times and sub-cent transaction fees, making smart contract escrows economically viable even for small, everyday art commissions (β±500 - β±5,000).
- Trustless USDC Escrow: Lock commission funds upfront in a stablecoin, protecting both parties from crypto volatility and payment fraud.
- Client-Driven Approval: Funds are only released to the artist when the client reviews and approves the final delivered artwork.
- Admin Dispute Resolution: A built-in fallback mechanism. If a client maliciously withholds approval after delivery, or if an artist fails to deliver, the platform Admin can step in to force-release or refund the USDC.
- Dynamic Contract Generation: Every single commission gets its own physically isolated Soroban smart contract generated on the fly, preventing centralized contract bottlenecks.
- Micro-transaction Optimized: Powered by Stellar, ensuring gas fees do not eat into the artist's hard-earned commission profits.
- Network: Stellar Testnet
- Smart Contract Environment: Soroban
- Deployed Factory Contract ID:
CAWAKGBTHWFMTB6O74CDJ5WOVLLFZ5WMKTBKOP2FNB5BUMTQPZYQZN3J - Supported Asset: USDC (Stellar Asset Contract)
The client has to confirm the deposit first for the set amount of USDC they specified and would be able to approve the release of funds if the artist delivered the commission. Just in case a dispute happened, the admin with the admin wallet would be able to interfere by refunding/releasing the funds depending on the case.
Unlike traditional DApps that rely on a single, massive monolithic smart contract to track all users, ComiSure creates a unique, physically isolated Smart Contract for every single commission.
- Frontend Request: The UI requests a new Escrow.
- Backend Engine: The FastAPI server connects to the Stellar CLI natively.
- On-the-fly Compilation: The backend drops a pre-compiled
comi_sure.wasmbytecode payload directly onto the Stellar Network. - Initialization: The backend initializes the contract exclusively with the specific Client and Artist addresses, mapping itself as the irrevocable
admin.
- Smart Contract Level: Soroban SDK (Rust),
wasm32-unknown-unknown - Backend API Layer: Python 3, FastAPI, SQLModel, Uvicorn
- Frontend App: Frontend React 18, Vite, Tailwind CSS, Framer Motion
- Stellar SDK:
@stellar/stellar-sdk,@creit-tech/stellar-wallets-kit
Because of the dynamic compilation pipeline, ComiSure requires a specialized deployment setup.
The React Frontend is extremely portable and optimized for Vercel.
Ensure your Vercel Project points the Root Directory to frontend/.
Required Vercel Environment Variables:
VITE_SOROBAN_RPC:https://soroban-testnet.stellar.orgVITE_API_URL:<YOUR_RAILWAY_URL>(e.g.,https://comisure-backend.up.railway.app)
The strict requirement for the Stellar CLI and persistent database connections makes Railway the best host for the Python layer.
- Create a new service on Railway.app.
- Link this GitHub repo and set the Root Directory to
/backend. - Railway will instantly detect our custom
Dockerfileand install the Linux Stellar CLI implicitly!
Required Railway Environment Variables:
DATABASE_URL: Let Railway auto-provision a PostgreSQL database, or leave blank to fall back to a volatile SQLite file.DEPLOYER_SECRET_KEY:S...The Secret Key that funds gas fees for dynamically spinning up Escrows. This will be automatically injected into the Railway environment on boot!
If you are running the system locally for development, run both services side-by-side:
cd backend
python -m venv venv
.\venv\Scripts\activate # Use `source venv/bin/activate` on Mac/Linux
pip install -r requirements.txt
uvicorn main:app --reloadThe API will run at http://127.0.0.1:8000.
cd frontend
npm install
npm run devThe web app will run at http://localhost:5173. You must have the Freighter browser extension installed to connect your wallet!
π Note: For a comprehensive breakdown of the smart contract's internal logic, data structures, and function signatures, please refer to the smart contract documentation..
- Rust toolchain target
wasm32v1-none - Stellar CLI
22.0.0+
# Compile the contract to an optimised Wasm binary
stellar contract build
# Run cargo tests
cargo testComiSure/
βββ frontend/ # React + Vite application & Wallet SDK integration
βββ backend/ # Python FastAPI dynamic deployer & SQLite tracker
βββ Cargo.toml # Soroban package dependencies
βββ src/
βββ lib.rs # Soroban Escrow Smart Contract code
βββ test.rs # Local testings for happy path & unauthorized calls
MIT License
Copyright (c) 2026 ComiSure Contributors