Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Interact with Escrows Seamlessly
The Trustless Work Dapp is the visual interface for interacting with the Trustless Work Escrow API. It serves as a back-office for the escrow lifecycle, allowing users, developers, and platforms to: ✅ Deploy an escrow ✅ Sign transactions ✅ Approve milestones ✅ Release funds ✅ Resolve disputes
This tutorial will guide you through the full escrow lifecycle using the Dapp UI, breaking it into structured phases for clarity.
Before using the Dapp, ensure you have the necessary prerequisites:
To log in, you must connect a Stellar-compatible wallet. Read more in the Stellar wallets section.
The Dapp currently operates on Stellar Testnet, so you’ll need:
XLM (for transaction fees)
USDC (to test escrow functionality)
Learn more at. Get Testnet Tokens
This section walks through the structured process of managing a transaction using the Dapp.
📌 Goal: Define the escrow agreement and configure its parameters.
Select parties involved (payer, receiver, approver, etc.).
Set milestones and funding conditions.
Deploy the smart escrow contract.
➡️ Step-by-step guide for Initiation
📌 Goal: Deposit funds into the escrow, securing the transaction.
The payer deposits funds (USDC/XLM).
The escrow status updates to reflect the deposit.
The contract balance is displayed in the UI.
➡️ Step-by-step guide for Funding
📌 Goal: Track progress and mark work as completed.
The service provider updates milestone completion.
Status changes to "Pending Approval".
➡️ Step-by-step guide for Milestone Updates
📌 Goal: Approve or dispute completed milestones.
The payer or designated approver reviews milestone progress.
If approved, funds move to pending release.
If disputed, the transaction enters the Dispute Resolution Phase.
➡️ Step-by-step guide for Approvals
📌 Goal: Finalize the escrow transaction by releasing funds.
Upon milestone approval, funds are automatically released to the service provider.
The escrow status updates to "Completed."
The transaction is finalized.
➡️ Step-by-step guide for Releasing Funds
Some transactions require additional steps:
📌 Goal: Resolve conflicts when a milestone is disputed.
The dispute resolver evaluates the case.
Adjustments are made based on the ruling.
Funds are either released, partially released, or refunded.
➡️ Step-by-step guide for Dispute Resolution
📖 Guides & Tutorials
How to Set Up a Stellar Wallet
How to Get Testnet Tokens
Understanding Escrow Roles
🔹 Ready to start? Access the Dapp 🔹 Need support? Join our Telegram or Ask our AI.
1. Go to the Trustless Work Dapp
Open your web browser and navigate to: ➡️ dapp.trustlesswork.com
You should see the Welcome Screen with the Trustless Work logo and an introduction to the platform.
2. Connect Your Stellar Wallet
To interact with the Dapp, you need to connect a Stellar-compatible wallet. Click on the "Connect" button in the top right corner.
A pop-up will appear, showing the available wallet options.
➡️ Select your preferred wallet and follow the prompts to authorize the connection.
3. Login Confirmation
Once connected, you will be redirected to the Dashboard, where you can manage your escrows. ✔ Your wallet address will be displayed in the sidebar. ✔ You are now ready to interact with the Trustless Work escrow system! 🚀
This step is done by the Service Provider once they have successfully delivered the product or service.
📌 Why is this step important?
This confirms that the work has been completed.
The Approver will later check and approve this milestone before funds are released.
In the escrows section, navigate to the Service Provider tab.
This tab will only show escrows where your logged-in wallet is assigned as the Service Provider.
Click on the escrow you want to update.
This will open a modal displaying the escrow details, including:
Escrow title & description
Roles assigned to different addresses
Current milestone status
You will see a blue button labeled "Complete" next to the milestone.
Click "Complete" to proceed.
A Freighter wallet transaction request will pop up.
This request confirms that you are marking the milestone as completed.
Click "Sign" to approve the transaction.
Once the transaction is signed, the milestone will be marked as "Completed".
The progress bar in the escrow modal will update, showing that this step is done.
🎉 Success! The milestone is now marked as completed. The next step will be approving the milestone, which is done by the Approver.
1. Access the Profile Settings
Click on your wallet address at the bottom left of the screen.
A menu will appear where you can:
Copy your Stellar address.
Disconnect your wallet.
Access settings → Click on this to proceed.
2. Completing Your Profile
In the Profile section, you can: ✅ Add an image for easier identification. ✅ Fill in your name, email, country, and phone number. ✅ Specify your Use Case (Required for API key requests).
🔹 The "Use Case" field is mandatory for API key requests but not for general Dapp usage.
➡️ Click "Update Profile" to save changes.
3. Customizing Appearance and Preferences
Appearance: Choose between Light Mode or Dark Mode.
Preferences:
Save Escrows → Enabled by default.
If disabled, your escrows won’t be indexed, and you must manually track their IDs.
4. Requesting an API Key (For Developers Using the API)
Navigate to the API Keys tab.
Click "Request an API Key" to generate one.
Once created, you can view your keys under "Show API Keys".
📌 You don’t need an API key to use the Dapp, only if you plan to interact programmatically via the API.
Remember that the profile property Use Case must be filled to be able to ask for an API Key. This is our way of understanding what are you using this for, so please help us out!
That that you have everything set up, let's create some Escrows!
1. Navigate to the Escrows Section
Click on "Escrows" in the sidebar.
This will take you to the "Initiated Escrows" tab.
Escrow tabs are organized by role (Approver, Service Provider, Dispute Resolver, etc.).
If you don’t see any escrows, it means your wallet hasn't been assigned a role yet.
2. Click "Create Escrow"
This starts the Escrow Initialization Flow.
3. Fill in Escrow Details
To configure an escrow, you need to define roles and key parameters:
✅ Title → Name your escrow. ✅ Description → A summary of the contract. ✅ Approver → Who approves milestone completion. ✅ Service Provider → The person/entity delivering the service/product. ✅ Engagement → A unique ID (e.g., invoice, contract, project ID). ✅ Platform Address → The platform receiving fees and modifying milestones. ✅ Amount → The total amount locked in escrow. ✅ Release Signer → The entity that releases funds. ✅ Dispute Resolver → Handles disputes if needed. ✅ Milestones → Conditions that must be completed & approved.
🔹 Make sure you know the wallet addresses that will play each role before proceeding!
➡️ Click "Initialize Escrow" once all details are set.
4. Sign the Transaction
Your wallet (Freighter, Albedo, etc.) will prompt you to confirm and sign the transaction.
This deploys the escrow contract on Stellar Testnet.
Once signed, the escrow is now active.
5. Escrow Successfully Initialized!
You will receive a confirmation pop-up with:
The Escrow ID.
A link to view the escrow on Stellar Explorer.
✅ Your escrow will now be visible in the "Initiated Escrows" tab! If you used the same wallet for all roles, it will appear across all tabs.
🔹 Try creating another escrow with multiple addresses by opening a Testnet wallet in incognito mode! 🔹 Proceed to the Funding Phase – Learn how to deposit funds into your escrow.
Now that the milestone has been completed by the service provider, the approver needs to verify and approve it.
1. Switch to the "Approver" tab
In the escrows section, navigate to the Approver tab.
You will only see escrows where your logged-in wallet is assigned the Approver role.
2. Click on the escrow to open the modal
Select the escrow where the milestone has been completed.
The escrow should now show 100% Completed in the milestone progress bar.
3. Approve the milestone
You should now see a blue "Approve" button.
Click "Approve" to proceed with milestone approval.
4. Sign the transaction
Just like previous actions, a transaction request will appear in your wallet (Freighter).
Review the details and sign the transaction.
5. Escrow status update
After signing, the milestone should now show as "Approved".
The funds are still in escrow but are now ready for release.
Once you approve the milestone, we move on to the final step: releasing the escrow funds!
In the case of the single release escrows: all milestones must be approved for the release to be enabled. In the case of multi-release escrows: Approval at the milestone level is required to release a Milestone.
📌 Tip: If you want to understand roles in escrows, refer to the
This step is performed by the Release Signer, who authorizes the funds to be released to the Service Provider.
Instructions to Release Payment
Go to the Release Signer Tab
Navigate to the Escrows section in the sidebar.
Click on the Release Signer tab to filter the escrows where your wallet is assigned as the Release Signer.
Select the Escrow for Payment Release
Find the escrow where the milestone has been approved.
Click on it to open the Escrow Details Modal.
Verify Milestone Status
Ensure that the milestone has been completed and approved (indicated by 100% completion and approval).
The Release Payment button should now be active.
Click on "Release Payment"
This action will initiate a blockchain transaction to release the funds.
A wallet transaction confirmation will appear.
Sign the Transaction
A request will pop up in your Stellar wallet (e.g., Freighter).
Review the transaction details (fees, escrow ID, recipient, amount).
Click Sign to confirm and execute the payment.
Payment Released Successfully
Once the transaction is confirmed, the escrow balance will update to reflect the release.
✅ Success! The funds have now been transferred to the Service Provider!
Testnet tokens are a great way to experiment with Stellar wallets and blockchain operations without risking real assets. This guide explains how to obtain testnet tokens, their purpose, and how to use them effectively.
Testnet tokens are virtual assets used on Stellar's test network (testnet) to:
Test wallet setups.
Experiment with sending and receiving payments.
Learn Stellar operations like creating trustlines or setting up smart contracts.
Risk-Free Learning: No monetary value; perfect for practice.
Development Testing: Test your applications or smart contracts before deploying on the mainnet.
Community Access: Many developers and testers rely on the testnet for Stellar experiments.
Go to the Stellar Laboratory: Stellar Laboratory
Paste your Public Key into the faucet's input field.
Click "Request Lumens":
You’ll receive a transaction confirmation.
Check your wallet to confirm receipt of 10,000 XLM test tokens.
Install the Stellar CLI:
Install the stellar-core
or stellar-horizon
command-line tool (refer to Stellar documentation).
Request Tokens:
Run the following command:
Replace <Your Public Key>
with your Stellar wallet address.
Verify Balance:
Use the CLI or a Stellar wallet to check your testnet account balance.
Set the Trustline: Ensure you've established a trustline for USDC on your Stellar testnet account. Issuer: GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5
Visit the Circle USDC Faucet:
Go to Circle USDC Faucet.
Select Stellar and Request USDC:
Use the dropdown menu to select "Stellar".
Paste your Stellar testnet address.
Click on "Get Tokens" to receive testnet USDC.
Send tokens between test accounts.
Experiment with memo fields, transaction fees, and multi-signature setups.
Trustlines: Use testnet tokens to create trustlines for custom assets.
Asset Issuance: Test issuing and trading custom assets.
Smart Contracts: Experiment with Stellar's pre-signed transactions to simulate smart contracts.
Use your testnet wallet with Stellar-based dApps like Trustless Work to test integrations.
Most Stellar wallets allow you to switch between the mainnet and testnet. Here's how:
Open your wallet settings.
Look for the "Network" option.
Switch from Mainnet to Testnet.
Save your settings and restart the wallet if required.
Freighter Wallet:
Click on Settings > Network > Testnet.
Rabet Wallet:
Select "Network" in the main menu and toggle to Testnet.
Albedo Wallet:
Adjust the network via the settings or during the transaction prompt.
Testnet Tokens Have No Value:
These tokens are strictly for testing and cannot be transferred to the mainnet.
Testnet Environment Resets:
The Stellar testnet resets periodically, clearing all test accounts and balances.
Always re-create your accounts and re-fund them when the testnet resets.
Avoid Sharing Secret Keys:
Even in a test environment, keep your Secret Key secure to mimic best practices for the mainnet.
Ensure you’ve used the correct Public Key.
Try another method (e.g., Stellar Faucet vs. Laboratory).
Wait for a few minutes as the testnet might experience delays.
Make sure your wallet supports Stellar’s testnet.
Check for updates or consider using a wallet that supports testnet, like Freighter or Rabet.
Without the Secret Key, you cannot access your testnet account. Treat it as you would a real wallet key.
By following this guide, you can confidently explore Stellar’s testnet and test a variety of operations risk-free.
Once an escrow is initialized, the next step is to fund it. Funding locks the transaction amount in the escrow contract until conditions are met.
Navigate to the Escrows section.
Click on the escrow you want to fund.
A modal window will appear with detailed information:
Escrow Title & Description
Assigned Roles (Approver, Service Provider, etc.)
Milestones & Status
Escrow ID (Top right)
📌 The Escrow ID is crucial for funding.
Option 1: Send Funds Directly to the Escrow ID
Copy the Escrow ID from the modal.
Open your Stellar wallet.
Send USDC or XLM to the Escrow ID just like you would send funds to any Stellar address.
🔹 Anyone with a Stellar wallet can fund the escrow using this method.
Option 2: Use the QR Code
Click on "Show QR Address".
Scan the QR Code with a mobile wallet app.
The wallet will automatically recognize the Escrow ID and prompt a transaction.
Option 3: Use the "Fund Escrow" Button (Recommended)
Click "Fund Escrow" in the modal.
A new dialog will appear asking how much to deposit.
Enter the desired amount and click "Fund Escrow".
Your wallet (Freighter, Albedo, etc.) will pop up for transaction review & signing.
Confirm and sign the transaction.
After funding:
✅ The escrow balance updates. ✅ The status progresses (e.g., “Funded” or “Working”). ✅ Milestones can now be marked as completed and approved.
🚀 Next Step: Marking Milestones as Complete