ChainSteps

ChainSteps

Decentralized Escrow

shieldNon-Custodial
lockSmart Contract Secured
gavelDispute Resolution
verifiedMilestone Verified
linkOn-Chain
codeOpen Source

Trustless Escrow
for Web3

Secure milestone-based contracts with decentralized verification, transparent funding, and built-in dispute resolution.

Value Locked
Total Escrows
Milestone Rate
Completed
expand_more

Why Choose ChainSteps?

A decentralized escrow protocol built for trustless collaboration between clients and freelancers.

lock

Non-Custodial Escrow

Funds are locked in the smart contract at 0x7b2D...9021, not held by any intermediary. The contract enforces release rules — no one can freeze or redirect your escrow.

timeline

Milestone-Based Payments

Break work into sequential milestones. Each requires explicit approval via approveMilestone(). If the client goes silent, claimMilestone() auto-releases funds after 7 days.

balance

Arbitrated Dispute Resolution

When milestones are contested, a designated arbitrator resolves disputes with an on-chain percentage split via resolveDispute(). Both parties receive their share transparently.

cloud_upload

IPFS Evidence Storage

Submit work proofs and deliverables to IPFS for tamper-resistant, decentralized storage linked to each milestone. Evidence persists independent of any single server.

security

Reentrancy-Protected

All value-transfer functions use OpenZeppelin's ReentrancyGuard. Built on Solidity 0.8.28 with native overflow protection. No unaudited external dependencies.

group

Role-Based Access Control

Contract-enforced roles: only the client can fund and approve, only the freelancer can submit and claim. State transitions are guarded by inState modifiers.

How It Works

Four simple steps from agreement to payment, secured by smart contracts.

add_circle
01

Create & Define

Client calls createEscrow() with the freelancer's address and an arbitrator, then adds milestones via addMilestone() with descriptions and ETH amounts.

account_balance
02

Fund & Activate

Client sends ETH to fundEscrow(). The contract verifies the total matches all milestone amounts, then activates the escrow. Funds are locked until milestone rules are met.

work
03

Submit Work

Freelancer completes deliverables and calls completeMilestone(). A 7-day approval countdown starts. Evidence can be uploaded to IPFS for verification.

verified
04

Approve & Release

Client reviews and calls approveMilestone() to release ETH to the freelancer. If the client is unresponsive, the freelancer claims via claimMilestone() after timeout.

Trust & Transparency

Real metrics from the ChainSteps protocol on Ethereum Sepolia.

lock

Total Value Locked

Secured across all active escrows on Sepolia

description

Total Escrows

Escrow contracts deployed since inception

verified

Milestone Completion

Of milestones completed and approved on-chain

handshake

Completed Escrows

Fully settled with all milestones released

Security & Integrity

shield
Non-Custodial
security
Reentrancy Guard
code
Open Source
language
On-Chain Verification