Milestone payments break your project into payable units. Each milestone has its own deliverable, deadline, and payment — keeping cash flow steady and work on track.
Why it matters
Getting paid per milestone means you don't have to wait until the end of a large project. It improves cash flow, reduces risk, and keeps both you and your client aligned.
Before you begin
Make sure you have:
- A project with defined milestones
- A client who has funded escrow (or is ready to)
- Your wallet connected for receiving payments
Step-by-step walkthrough
Step 1: Define milestones in your project
Open your project and click Add Milestone. For each milestone, enter:
- Name — Clear, descriptive title
- Description — What deliverable the client receives
- Amount — Payment for this milestone
- Deadline — Due date
Step 2: Client funds escrow
Once milestones are set, the client funds escrow for the project. Funds are held on the Stellar blockchain until milestones are approved.
Step 3: Complete the work
Deliver the milestone deliverables. Upload files, share links, or mark tasks as complete.
Step 4: Client approves
The client reviews your work and approves the milestone. This triggers the release of funds from escrow.
Step 5: Payment released
Once approved, funds are released to your wallet. An invoice is automatically generated for your records.
Best practices
- Keep milestones small and focused (1-2 week deliverables work well)
- Define clear acceptance criteria for each milestone
- Communicate regularly with your client during each milestone
- Use partial releases for large milestones
Common mistakes
- Making milestones too large — break them into smaller chunks
- Not defining acceptance criteria — the client needs to know what "done" looks like
- Skipping the approval step — always get formal sign-off
What's next
Learn more about [escrow security](/docs/payments/escrow) and [releasing payments](/docs/payments/release-payments).