Inspiration
With many businesses expanding their territories to online, transactions often suffer from scams and fraud, particularly through seller impersonation traps—where unsuspecting buyers send payments to fake sellers who disappear after receiving the funds. Traditional online payment systems lack a verifiable way to ensure that products are delivered before funds are released, leading to widespread mistrust in digital marketplaces.
What it does
Descrow introduces a smart contract-based payment protocol that safely holds the buyer’s payment in escrow until the product’s delivery is confirmed. Both buyer and seller are on boarded and verified on-chain. Once the buyer confirms receipt of goods (and product authenticity is verified), the funds are automatically released to the seller.
How we built it
- We created a smart contract in solidity.
- We then hosted the smart contract in Moonbeam Alpha.
- Created the front-end to supply some variables to the contract and also logic to connect to Moonbeam Alpha for testing.
- Connected a Metamask API to test the RPC calls.
Challenges we ran into
- Initially we created our contract with ink. The reason we did it is because it was easy to deploy the contract and having some rust experience was a factor. During the deployment of the contract, we wanted to do a testing first locally. We could not be able to test the local deployment using the ui.use.ink link or using the POP CLI. Version 6 of ink came with changes that broke the backward compatibility. After follow up through the community channels, we were advised to use the CLI to deploy our contract.
- Using the CLI tool to deploy a contract is not easy for someone without technical skills. I found that we had a skills gap in Rust programming language. Passing an Enum through the CLI for a beginner was a challenge.
- We decided to convert the ink smart contract to solidity and host it in EVM compatible chains in Polkadot. For testing we used the Moonbeam Alpha. The main challenge here was still a skills gap. It took us some time to learn how to deploy smart contract and interact with it.
Accomplishments that we're proud of
So far we are proud of the following things;
- Being able to convert our ink smart contract to solidity.
- Being able to connect an instance of our smart contract in Moonbeam Alpha.
- At least making a call to the contract. This thing three achievements have taught us to be resilient, adaptation and quick learning and faster deliveries. A ton of experience has been harvested during the debugging period.
What we learned
- We have learnt better ways to coordinate and work as a team.
- We have learnt how to build,deploy and interact with EVM compatible smart contract on Polkadot networks. ## What's next for Descrow
- We plan to complete the project to MVP ready by the end of the month.
- We aim to start on-boarding new users early next year.
- We hope to teach people from our Polkadot communities how to build and deploy solidity compatible smart contracts on EVM compatible chains in Polkadot.
Built With
- moonbeam
- node.js
- react
- superbase
- typescript
Log in or sign up for Devpost to join the conversation.