Inspiration
Bitcoin was born in 2010y, then people were expecting to use it for real business instead of cash. After that thousands of type of coins spread to the world. But people just bought coins as investing assets. They didn't use coins for real business.
I thought for a long time 'Why?'. The reason is simple, Blockchain is not a convenient tool yet for helping to trade between people.
I always wish to use it in my ordinary life after seeing the potential of cryptocurrency. Every day I wish for it. Also, I believe people would get a better life when people use cryptocurrency freely in ordinary life.
This is my inspiration for developing a DApp, named UsePAY. It will give an opportunity for convenient use of cryptocurrency by WEB3 users.
What it does
UsePAY developed for any type of business deal for WEB3 users and implemented Coupon, Ticket, and Subscription using smart-contract with EVM technology in blockchain. Through this, WEB3 users can directly conduct escrow-based safety transactions without membership or authentication procedures. Through the identification of users using the public key of WEB3, anyone can issue and purchase their own packs as they are Coupon, Ticket, or Subscription.
In particular, the public key of WEB3 cannot be mathematically duplicated, and by applying this characteristic, the issuer and the buyer of the issued packs (Coupon, Ticket, Subscription) can be distinguished.
Coupon
Users can promote with benefits that can be provided using coupon packs. Users can issue up to 3000 coupons at a time, and benefits or discounts are included in the coupon.
Any WEB3 wallet user can acquire and use coupons through wallet authentication without transaction occurrence and is subject to benefits or discounts provided by coupon issuers when used.
- ex)Coupon for Opening Event from the color cafe : https://mumbai.usepay.io/buy?p=OTA4 / TxHash
In the case of Coupon packs, any WEB3 user can acquire them at no cost regardless of the issued network, and the acquired coupons can be used or gifted. and the pack maker can control the quantity, possibly replacing the existing flyer advertising market.
Ticket
Users can issue up to 1000 ticket packs at a time with promised business contents. This ticket can be applied to a variety of businesses, and any WEB3 wallet user can purchase the same amount through one transaction.
In addition, the purchase money is stored in an escrow account implemented as a smart contract for the ticket, and the buyer can use, refund, or gift the ticket.
ex) Products, cafes, lodging, experiences, private lessons, online lessons, vouchers, etc
- ex)Ticket for Piano lesson : https://mumbai.usepay.io/buy?p=ODk4 / TxHash
Subscription
Users can issue up to 1000 subscriptions for a fixed-term business at a time. This Subscription can be applied to various businesses, and any WEB3 wallet user can purchase as much as the quantity through one transaction.
In addition, the purchase money is stored in the subscription escrow account implemented as a smart contract for the Subscription, and the buyer can use the subscription or refund for the remaining period of the subscription.
ex) Applicable to everything with a specified expiration date (lesson, membership, lodging, voucher, online lesson, etc.)
- ex)Subscription for Cooking Class : https://mumbai.usepay.io/buy?p=OTAw / TxHash
- ex)Subscription for Coin & Token News : https://mumbai.usepay.io/buy?p=OTAx / TxHash
UsePAY all packs can be shared on social media and traded directly to WEB3 users, and can be disclosed to searches provided by UsePAY.
WEB3 users can obtain and purchase desired packs (Coupons, Tickets, Subscriptions) information through search or social media.
How we built it
Development of basic ideas for UsePAY DApp began in October 2020. It lasted for seven months until May 2021, during which time we separated business types and designed three pack concepts: coupons, tickets, and subscriptions to accommodate each business model. We named it Pack.
Since July 2021, protocols have been developed based on Rinkeby TestNet, and through this process, a detailed structure of UsePAY was established and reflected in the design.
Like other DApps, UsePAY primarily operates as a blockchain, web interface, and database, and a sink daemon is additionally configured to cope with loss of data or transactions that occurs during the operation process, and was setup to three networks (Ethereum, BnBchain, Polygon Testnet).
UsePAY is being developed using the following technology stack.
- Blockchain : Ethereum, BnB Chain, Klaytn
- Wallet : Wallet Connect, MetaMask
- Web Interface : Node.js, Express Engine
- Mobile Interface : React Native
- Database : Google Cloud SQL, On-premise MySQL
- Daemon : Python, Node.js
- Infrastructure : Kubernetes, On-premise Linux, VPN
- Cloud Service : Google Cloud Platform
- CD/CI : Docker, Jenkins
- Smart Contract : Solidity, Remix, Hardhat Framework
- Design : Figma, Adobe Photoshop, Adobe XD
- Development Tools : Visual Studio Code, Eclipse, Vim
- Operating System : macOS, Ubuntu Linux
- Data Analysis : Google Analytics
- Service Monitoring & Operation : Python (Telegram bot, Kakao bot, web chatbot)
- Issue Management : Gogs Issue, Google Spread
- Version Control System : GITHUB, GIT, SVN, Gogs
Communication : Telegram, Kakao
Smart-Contract of UsePAY is being developed with Solidity and is being developed and tested using Remix IDE and Hardhat framework properly.
The web interface used by users is designed with a monolithic architecture and is being developed with Node.js and Express Engine.
When the source code is modified and tested on the developer machine, the modified version is stored in the Version Control System (VCS).
The main services are distributed through Dockerizing operations that make it a Docker Container Image and using Jenkins to download the latest source code from VCS.
Dockerized services are operated with the Kubernetes framework, and services provided by the Google Cloud Platform are used to quickly respond to technical operational issues such as failover and scale-out.The distribution of UsePAY is logically divided into three stages: Development - Staging - Operations. It is first deployed and tested on development servers that exist on the corporate VPN network. (Development Phase)
Once sufficient testing has been completed at the primary development level, the Smart-Contract will be deployed to TestNet and the service will be deployed to the Kubernetes engine within the Google Cloud Platform for testing. (Staging Phase)
Afterwards, unless there is a specific issue, the smart contract will be distributed on the mainnet, and the service will be distributed to other independent services of the Kubenetes engine for end-user service. (Operational Phase)
The development process can be summarized in a timeline as follows.
- October 2020 ~ May 2021 : UsePAY initial idea design
- June - October 2021 : Web interface development
- July - December 2021 : UsePAY protocol development (Smart-Contract)
- December 2021 : Application of WalletConnect for WEB3 connection
- January ~ February 2022 : Sync Demon applied
- February 2022 : UsePAY Protocol applied to Ethereum and BnBchain
- February 2022 : Launch of UsePAY DApp
- April 2022 : Applied to UsePAY Protocol Klaytn
- April ~ June 2021 : UsePAY WebView iOS / Android App development and release
- June 2021 : UsePAY smart contract security audit in progress by Certik.
In addition, in the case of a mobile app, it is a web view app, not a native app, and guarantees stable use for users.
UsePAY is an N-screen application developed with a responsive interface that can be used on a variety of devices with just a web browser.
UsePAY is also available through the mobile app, and by using WebView, the user experience on the web browser can be felt on mobile as well.
In particular, We are developing it as React Native, a cross-platform framework, and developing it as a strategy to secure development maintainability and a wider user base with one source, multi-use, which is released in both the Google Play Store and Apple App Store, the two major markets.
Challenges we ran into
After completing the design for the basic concept, a detailed design for each pack of UsePAY was carried out. Through this, the specifications of each pack were confirmed, and a smart contract that accommodated various requirements was completed. It is a contract with different roles for each coupon pack, ticket pack, and subscription pack, and there is a part for the pack issuer and a part for the pack buyer. The currently deployed UsePAY protocol is working well in the app and the web, and the specifications for each pack are as follows.
Common Conditions for All Packs
- Available purchase(acquisition) period
- Available period
- Maximum Number of Purchasable(acquired)
- Gift available
- Available
Coupon Pack
- Maximum issuance : 3000
- No sales price
- Any WEB3 users can acquire it without a transaction
Ticket Pack
- Maximum issuance : 1000
- Sales Price can be set
- Coins for pack payment can be selected from the list of 280 coins
- Unused penalty (no show) can be set
- 100% refund available within the period of use
- Compulsory settlement is possible if a ticket pack is not settled
- Escrow function
Subscription Pack
- Maximum issuance : 1000
- Sales Price can be set
- Coins for pack payment can be selected from the list of 280 coins
- 100% refundable before the start of the subscription period
- If the subscription content is poor, you can stop the subscription without penalty
- Compulsory settlement is possible if the subscription pack is not settled
- Escrow function
As above, the UsePAY protocol had to be flexible and include various functions, so the UsePAY protocol had to consume a large amount of time during the initial design process. In addition, since it includes various contract conditions, it had to be designed to use only the minimum gas cost at the time of issuance or purchase.
Second, there was often a problem that the pack information recorded in the database did not match the blockchain transaction. A lot of time loss occurred in the process of analyzing the cause, and as a result, it was solved by creating a daemon that synchronizes the blockchain and database.
The sink daemon consists of two types, a Python daemon, and a Node.js daemon. The Python daemon leads the main transaction processing and Node.js assists.
The Python Daemon is designed as a queue structure that performs concurrent processing to quickly and reliably catch blocks in parallel to process transactions.
The Node.js daemon operates periodically by the cron scheduler and is designed to parse unprocessed transactions due to blocks that are completed or updated late on-chain.
We are working hard to further enhance the reliability, stability, and efficiency of transaction processing.
Third, UsePAY is currently experiencing difficulties in increasing its user base. The reason is that it is a new concept DApp, so it needs a period of time for users to understand the UsePAY protocol, and it is not attracting users' interest due to our lack of recognition and trust. Therefore, to prove that it is a reliable protocol to WEB3 users, we have commissioned Certik to audit the UsePAY Protocol, and it will be completed soon.
Fourth, gaining operational experience such as customer communication channels and handling customer issues, and supporting them quickly.
To this end, we are developing a back office application developed with a web interface.
The back office application was developed with Node.js and is operated in an on-premises Linux server that is configured as a VPN (virtual private network) within the company network, so that only some people in charge can access it with security.
Efforts to ensure timely delivery of relevant back-office tools according to a new marketing or operational event schedule, or to encourage customer-facing teams to learn and improve their proficiency in back-office tools, while automating customer-facing chatbot systems, we are working hard to support customer issues more quickly, such as developing a messenger bot in Python.
Accomplishments that we're proud of
1. Cryptocurrency-based secure payment protocol.
Since the advent of cryptocurrency, people have expected to use cryptocurrency in their daily life. However, in practice, it is not used in everyday business. The UsePAY protocol is the first protocol that allows individuals to package and sell their business in the form of coupons, tickets, and subscriptions, and purchased packs can be used/refunded/gifted very easily without restrictions.
2. Various coins can be selected as payment coins.
UsePAY protocol can include various tokens as payment tokens. Currently, 135 tokens of the Ethereum network, 35 tokens of BnBchain, and 80 tokens of Klaytn can be set as payment tokens for pack sales. In other words, it is possible to establish a cooperative relationship with protocol developers who have tokens.
3. UsePAY open to all WEB3 users around the world.
Like the existing DApp, the UsePAY protocol can be used by any WEB3 user without a separate subscription or authentication process. When issuing a pack, you can use it when you purchase it or refund it with a WEB3 wallet.
4. Protocol to protect the rights and interests of pack issuers and pack buyers.
The pack issuer may set a penalty for unused packs after purchase to protect its business. Buyers of packs can get a 100% refund within the period of use, and penalties will be applied for future refunds.
Subscription buyers can immediately stop subscribing if the content provided is different from or below the level of the promise, and in this case, a 100% refund will be made regardless of the expired subscription period.
5. Implementation of pack links optimized to social media.
When the pack is issued, a simple link to purchase the pack is provided, and the link can be shared everywhere as social media or messenger or SMS.
WEB3 users can make their own business as a pack and share it directly on their social media or make it public in the pack search provided by UsePAY.
ex)These links are sample for Coupon, Ticket, Subscription. Please try below link for buy / use / refund
Coupon for Opening Event from the color cafe : https://mumbai.usepay.io/buy?p=OTA4 / TxHash
Ticket for Piano lesson : https://mumbai.usepay.io/buy?p=ODk4 / TxHash
Subscription for Cooking Class : https://mumbai.usepay.io/buy?p=OTAw / TxHash
Subscription for Coin & Token News : https://mumbai.usepay.io/buy?p=OTAx / TxHash
6. Coupon pack that can replace paper ads.
Most businesses are distributed using social media. Coupons, tickets, and subscriptions can all be distributed using social media or other channels after issuance, and coupons can be obtained by any WEB3 user without a transaction. This can sufficiently replace traditional paper-based promotional materials.
7. The use value of DApp to users : UsePAY, which implements a token-sharing economy.
There are token economy logic and utility tokens to share the value of UsePAY to users. This token is designed to store the value of the platform generated by the user when using it. Whenever a user issues a pack, the main coin worth 1 to 10 dollars is swapped for UsePAYs utility token in the designated swap pool so that it is distributed token to the user accounts. There are three advantages to this.
- 1. Users can use UsePAY without any cost.
- 2. Tokens are distributed to users and all users become token holders.
- 3. Whenever a user uses it, the value of UsePAY and tokens grows.
UsePAYs token economy logic can be linked to all additional projects and allows them to store and share the growth value of projects.
8. Smart Contract Development Technology : Realizing Ideas on the ON-Chain.
- We design and implement our business ideas into a blockchain, implement them in code, and operate them reliably.
- Our business is running on the polygon network, one of the largest blockchains, so we are trying to give technical trust to WEB3 users.
- We conduct our own or use external agencies to audit the source code of smart contracts to thoroughly manage and supervise security and provide safe service to our customers.
9. A free and flexible development culture.
- We have a very flexible and efficient development culture that tailors the best development methodologies that best fit the job, without being tied to a set development process, when new features are added or projects are launched.
- We don't have to hesitate to present new ideas or opinions and work directly.
- We are a fast and adaptable organization that runs PoC projects as soon as new ideas emerge.
What we learned
- We can't make everything with blockchain. However, it has been confirmed that payment-related parts can be replaced with blockchain sufficiently. UsePAY protocol implemented almost all functions such as escrow payment, pack issuance, pack usage (use, refund, gift), no-show penalty setting, subscription refund, additional issuance, and purchase quantity restriction.
The UsePAY development team proved with its own capabilities that it can realize everything it imagines, and I am sure that the experiences we have gained from development will greatly help us create a better protocol when we improve this protocol or when we start a new project. - UsePAY protocol is creating a new business area. On the other hand, blockchain-related businesses are developing greatly along with the trend. Currently, interest in NFT is increasing rapidly, and it is expected to continue for the time being. But we don't want to be trend followers. We want to take the lead in a new area that no one has stepped on with a new value and vision of the UsePAY protocol.
- UsePAY protocol is designed to allow the general public to pack their businesses and buy and sell them freely, providing a very easy interface. In addition, UsePAY plans to support many tokens to be used for pack payments in the future. Through this, it is possible to easily establish a cooperative relationship with a number of protocols. The power of DApp comes from the user. We will provide users with UsePAY without worrying about payment problems, and we are confident that users can improve their business through UsePAY, a secure payment solution without worrying about payment fees.
What's next for UsePAY
1. WEB3-based messenger exclusive for UsePAY
In order to expand user convenience, UsePAY plans to add push alarm functions and WEB3-based chat functions to its UsePAY app and web. To this end, it is currently in the development process. The reason why WEB3-based messengers are needed is to make it easy for pack issuers and buyers to communicate. This messenger is used as a replacement for a messenger ID that can distinguish the public key of WEB3, and there is no need to record a message in a transaction. These messengers are expected to contribute greatly to the activation of UsePAY. In addition, this messenger function is an independent DApp and will be further developed in the form of a combination of various businesses like KakaoTalk in South Korea.
2. Adding a Delivery Pack
If users' business transactions become active through UsePAY, the demand for delivery of traded goods is also expected to increase. The initial form of this delivery pack is provided in combination with the business packs of UsePAY. In particular, features will be provided in an optimized form for local delivery. This delivery pack is also implemented as a smart contract, and the conceptual design has been completed so that anyone who wants to deliver can obtain a delivery pack, complete the delivery, and receive compensation.
3. Evolution to UsePAY by field
It is predicted that more detailed settings will be needed depending on the required business field as the demand layer for UsePAY becomes diverse. For example, you will need a ticket or subscription that allows you to use a specific place in a cafe or restaurant. It is judged that a specialized UsePAY for each field is needed to distinguish and accommodate these requirements.
Built With
- docker
- express.js
- figma
- hardhat
- javascript
- jenkins
- kubenetes
- kubernetes-and-sql-on-gcp
- linux
- mysql
- python
- react-native
- solidity



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