Inspiration
Traditional payment systems lack a mechanism to ensure secure and timely payments, leaving both the sender and recipient vulnerable to scams. This can lead to mistrust, inefficiencies, delays, and financial losses.
OnePay developed a transparent payment solution that leverages smart contracts and blockchain technology, providing users with complete visibility into their payments. This ensures secure and immutable payment amounts, with payment rules coded into the system, creating a safe and reliable payment process that is free from scams or delays for both senders and recipients.
What it does
OnePay is a versatile web application that streamlines your payment process by empowering users to easily create batch instant, specific date, and recurring payments for wages, token distribution, and invoice issuance, making payments quick, efficient, and hassle-free.
Main features
- Create one-time payments: users can send tokens to multiple recipients immediately or on a scheduled date.
- Create recurring payments: users can send tokens to multiple recipients while retaining complete control over how and when the tokens are accessed. By setting a start date, user privileges, and configuring parameters such as the maximum number of unlocks, unlocked amount per time, unlock frequency, and prepaid amount, the sender can tailor the payment process to their specific needs.
- Send / Receive invoices: allows users to create invoices with multiple items, and enables clients to pay or adjust the invoice status.
- Manage address book
- Manage balance: users can deposit ICX into the smart contract for payments.
Technologies used
Programming languages
- Javascript
- Java
- TypeScript
Frameworks
- React 18
- NextJS 12.1
Libraries
- ICON Foundation Java libs to build smart contracts & unit tests.
- ICON Javascript SDK: to interact with SmartContract & Wallet.
- Charka UI Components: to develop UI/UX for this app.
Smart contract
Our main smart contract is OnePay.
Create Batch Payment Process
This workflow demonstrates how smart contracts are deployed to facilitate both one-time payments on a scheduled date and recurring payments.

Withdraw Token Process

Cancel Payment Process

Transfer Payment Process

Accomplishments that we're proud of
Developing a functional application on ICON can be a significant challenge, requiring extensive knowledge and technical expertise. Nevertheless, with dedication and support from the ICON community, OnePay has successfully developed a fully functional application on Lisbon Testnet.
We are grateful for the valuable resources provided by the community, including tutorials and open-source projects, which have contributed greatly to our product.
Moving forward, we hope that OnePay can make a valuable contribution to the ICON ecosystem and help to advance the community as a whole.
What's next for OnePay
This application is already functional, but it does not yet support other tokens. As a result, some features are being prioritized to enable full compatibility with other tokens.
These features include the ability to use other tokens for all payment types, support for recurring payments on invoices, and the option to export invoices from any payment. These updates will not only enhance OnePay’s functionality but also provide users with greater flexibility and convenience in their payment processes.
Built With
- charkauicomponents
- iconjavascriptsdk
- java
- javascript
- nextjs
- react
- typescript




Log in or sign up for Devpost to join the conversation.