Payee - Send Crypto directly via Usernames

Project Name: Payee - Send Crypto directly via Usernames
Project Track: Web3
Team Name : Payee
Team Member(s) : M Vignesh Reddy

HackerEarth Project Link :- mvigneshreddy2017_54e3 - HackaTRON Season 5 - Submission | HackerEarth Hackathons

**Demo video ** :-

Project Goal :-
Getting new user to crypto is hard as learning curve for everyone is very high. - But now with payee payments using crypto have become very easy, and fast. - This was possible only because paying money was using your mobile phone was as easy as scanning a qr code typing in amount and entering your password. - Plus you could verify whom you are sending money while doing the payments, and avoid any mishaps. ### We wanted to develop something similar to UPI in the Opensource Crypto world. - So we have payee - it is as simple as 1. Register 2. Scan 3. Enter amount 4. Press pay and sign transaction

Smart Contract links :- Contract Address 0xFA97Fbfd62dE543BeCfa31Ad704F500d6826bbFA | BTTC

** Github Repo**:- GitHub - V1g-ne-sh/payee: Payee is platform to seamlessly allow users to Send Crypto without having to remember and copy paste bulky and long wallet Addresses. With Payee Now send money directly via username, and monitor All transactions at single place

** Project Website**:-

Payee - Send Crypto directly via Usernames

No More Remembering Long Wallet addresses

No more worrying about getting a single letter wrong in wallet address

Crypto payments even easier than ordering from Amazon

About Payee

  • Getting new user to crypto is hard as learning curve for everyone is very high.

  • But now with payee payments using crypto have become very easy, and fast.

  • Payee Allows user to connect their wallets with a unique username.

  • once linked with the username anyone else registered with payee and having a username can pay him over crypto using just his username.

  • Again you can verify that you are sending crypto to the very person you intend to send them, no more mishaps, and no more sending money to wrong addresses.

  • and as a added benefit you can view all you incoming transcations and whom they are coming from in one place.

It is Easy, Safe, Fast, Verifiable, and New


  • India has seen a huge rise in online transactions since upi was introduced.

  • This was possible only because paying money was using your mobile phone was as easy as scanning a qr code typing in amount and entering your password.

  • Plus you could verify whom you are sending money while doing the payments, and avoid any mishaps.

We wanted to develop something similar to UPI in the Opensource Crypto world.

  • So we have payee

  • it is as simple as

  1. Register

  2. Scan

  3. Enter amount

  4. Press pay and sign transaction

How to use Payee (Testing Guide)

  1. Visit with your metamask linked browser or via metamask app browser if you are on mobile phone

  2. Change to BTTC network

  3. Connect your wallet

  4. Register by choosing a username and signing a transaction

  5. Print out the qr received, or take a screenshot and share to a payment sender.

  6. To make payments or to pay money tab and either fill in the username to whom you want to send the money or scan the qrcode with your camera

  7. fill in the BTT amount to send

  8. Send the transaction and you are good to go

  9. To withdraw money go to withdraw money option and fill in the amount and click withdraw.

How to run your local instance

  1. clone this repo

  2. cd to web folder

  3. Execute this command npm run test

To deploy contract

  1. copy Payee.sol contract from hardhat/contracts folder

  2. Open remix ide

  3. Paset the contract in a new .sol file, save it and compile it

  4. deploy the contract my mentioning the admin address

Challenges we ran into

  • Making it as easy to use as possible was the greatest challenge we faced. while integrating multiple features

What is next for Payee

  • We plan at creating Mail and Push notification system integrated with a payee app,

  • plus we plan at creating a social media linked custodial wallet of customers with zero knowledge of crypto

  • Creating a borderless, opensource, transparent, yet easy to use payment is our main goal moving forward


Welcome to Tron Hackathon season 5
To my understanding Payee is a promising project with the potential to make crypto payments more accessible and user-friendly.
I have an important questions

How do you plan to make Payee more inclusive for users with disabilities.

What steps are you taking to ensure the long-term sustainability of Payee.

What measures have you taken to protect user funds and prevent fraud, and how does Payee comply with relevant financial regulations.


Welcome team, this is like domain or bitcoin lighting where you can send crypto to domain names and usernames. But with these you can send crypto directly in any wallet especially with domains which does not require the sender to register a domain name. How can you make this possible using your platform. EG: Party A has registered on your platform and has a username, party B has not registered on your platform but can send crypto from metamask to party A using Party A username.


Welcome to Grand Hackathon Season 5, I think @Prince-Onscolo Has already asked what I intended to ask, please am looking forward the answers, thank you

1 Like

@Prince-Onscolo it seems we have different understanding on this project because from what he wrote here, I think both users (the sender and the receiver) must have a registered account in the platform before the sender can send crypto using the receiver’s username. But let him clarify this before my question can come in.


yeah that’s how this platforms work but I want to knw if he can make it possible like the domain does


Oh, Okay! Now I got your question bro, but I don’t think his project can offer that feature. He’s following the normal route, involving both users to have a registered account in the platform before they can carry out transactions using their unique username. Still, let’s wait and see what he have to answer to that


thanks bro, if he can add that it will be a plus


Thank you very much for your response.
Let me answer your questions here:-


Well I haven’t paid much though as of now on how it can be made inclusive for users with disabilities. But now when I think about it I guess, Next step in Payee’s development should be integrating a audio dictation tool where blind people could directly scan a qr and the app will speak out the username and Actual name of the receiver after which they can make the payments.

if a audio recognizer is integrated, I think blind people should be able to say commands like
Payee Pay vignesh123 1000 BTT
after which it would speak out the username and all they would have to do sign the transaction


The business model I am thinking of, depends on collecting small fees for registering new usernames, in the demo version we are charging 10000 BTT as registration fees(Due to less test token received via faucet) will be approx. USD 1 and similar for withdrawals.

I am working on creating a system similar to merchant gateway accounts, with custom push notifications , product specific payment links with callback functions few other features, for crypto money collection where we would earn more fees (hopefully in season6 we will be in builders track)


To provide security and avoid malicious actors, complete processing is carried out over smart contract and nothing is carried out offchain,

I would still like to get the contract audited, by proper agency before moving to mainnet. As far the contract is concerned, it simply follows straight forward moves funds balance under usernames, same way token contracts store account balance under wallet addresses. no fishy moving of funds, not even admin is allowed to withdraw funds belonging to someone else.

Although I plan at adding a function to run disperse funds action from admin account.

As per as the financial regulations are considered, all transactions are completely transparent,
traceable and verifiable. and as per as user accounts are concerned, we are asking users to sign in before they can make a transaction, thus we can enforce KYC requirements if required


This is different from domains, as domains are like a separate contract which just resolve your account address from your domain address, working something similar as a DNS( which maps ip addresses to domain addresses).

Whereas Payee works as a VPN, where you pay to payee contract directly, rather than resolving username to get account address and then paying to that contract.

You pay to payee contract with the username as a input rather than using receiving address, and payee puts it in something like a wallet, which receiver can withdraw any time he wants(can be made to auto withdraw, but we will loose a important income source).

Allowing unregistered users

This can be done with payee, will just have to remove isRegistered modifier from sendMoney method or copy paste same method without modifier under name anonymousSendMoney, and some basic UI changes.

But main aim of Payee is to create transactions more safe environment please read this


Thank you for your response
Please check the previous post, I tried to give answers in the best way possible to me.
Sorry for the delay in reply

1 Like

alright I get it thanks

1 Like

I have been waiting for this response to better get clarity on what you’re building and here it is. Thanks for replying with such details on how the payee is different from domains. Now my question is on the registration process. Can you tell us what information users need to provide to be able to use the platform and what measures you have in place to ensure the privacy of those information.

1 Like

We are only asking for Email address, name, and Password to be submitted while registering to the platform, (Which we might also gate with a KYC form). all this data is stored in secure AWS based Database. As an extra measure and industry standards we also do not store password, only hashes of password to verify.
so in total we only store Names and Email Addresses,

While binding your wallet with a username, we only ask for username from the user, and

  1. Username 2. Name 3. Wallet address
    These three data are submitted on chain and made public

As of now we do not ask for any other data, When we plan at employing KYC in future, We would prefer a partner, which provides on chain wallet linked KYC verification and completely remove the initial logging in requirements.

1 Like

I gave it a thought and researched about it, Found out something as metamask snaps which allows for adding extra use cases with metamask, I would still try to research a bit more and figure out if I could integrate payee . Thank you for your suggesation


you are welcome, thanks for considering my suggestion



I like this process but step 9 was interesting to me. Does this mean any funds sent to the address / username generated live on the app and then must be withdrawn? Or would the funds be sent directly to my linked MetaMask account?


Sorry I was not able to reply back early, was travelling a bit.
As per step 9 is concerned, It was added intentionally, as the system is made to be integratable by merchants, something similar to what UPI has,

sending crypto directly to your metamask account is also possible, I will just have to change a single line in contract,

Actually when UPI was implemented in India, it was noticed that small merchants were collecting microtransaction, with 100’s of transactions daily with amount less than usd 1(my 90% upi transactions are of amount less than 50 cents), and when they reflected on their bank statements, it was a complete disaster for their CA and auditors, as they had to audit like 50k microtransactions per small merchant.

So they implemented something called as bulk settlements, which I am trying to implement with payee, so auditing will be simple.

again do it on BTT network allows even more advantages because much lower transaction fees.

One more reason is creation of a business model, as of now we are asking for a small fee per withdrawal, so we could have people now doing settlements(withdrawal ) more frequently, so we could have a pool created for further usage, (See starbuck’s wallet example). as of now there is no payment facility without withdrawing money, but we could add it and sometime in future.


I am also trying to make cross chain transfers, did it using router, between polygon testnet and avalanche, but couldn’t find anything on BTT, working on that, should be completed before we go mainnet as per hackathon rule.

1 Like

Hey Everyone,
I just noticed that voting has started, don’t know much how it works,
I am tagging everyone who showed interest in my project.
If you think I am building something good, Please vote for me,
I know my project is a bit crude and still under development, and not as elaborate as other projects, Please vote for this project so I could keep its development going.

Please feel free to ask any questions regarding this project,
and I would love to hear many more suggestions from you

Thank you in advance

Also if you like think there is a potential in what I am doing let me know, and please provide suggestions with what I can do more

Here is a link to voting link
W12 Payee - Send Crypto directly via Usernames @Prince-Onscolo @Okorie @Youngyuppie @StevenTRON @Dhanvanti @Bobrik @WhisperingWillow @jisun @yasmin01 @derstdori @Relate101 @donaldg