Mobile · Web3 messaging and wallet context
Yarsha
Connecting conversations and wallet actions without losing track of the person on the other side.
- Contribution
- Product design contribution
- Evidence
- Complete original Figma screens · sample design content

The project and my part in it
Yarsha brings contacts, chats, groups and wallet-related actions into one mobile app. I worked on how people move between those parts, from finding a contact to looking back at a transaction.
The challenge was the change in attention. Starting a conversation is a familiar action. Choosing a recipient and an asset needs a more careful check, even when it begins in the same app.
What shaped the design
- Names and wallet identifiers both help distinguish contacts.
- Tokens and NFTs need different selection details.
- Groups introduce membership and administrator responsibilities.
THE DESIGN CHALLENGE
How can a familiar conversation become the starting point for Web3 actions without making every action feel equally casual?
I organized the walkthrough around a person: find them, open the conversation, choose an action and keep enough context to check what happened afterward.
Find the right person
The contacts list pairs a display name with a shortened wallet identifier. Names help recognition; the identifier helps distinguish people with similar names or avatars.
When search finds no contact, the query stays visible and the screen offers ways to continue. The empty state belongs to the search journey, so it needs to help someone decide whether to change the query, add a contact or invite someone.


A short identifier keeps the list readable, but the full address needs to be available when it matters.
Keep the conversation and its history together
The conversation keeps the contact in the header and the composer at the bottom. From there, the profile gives more context through the address, shared media, groups and links.
In-thread search keeps the conversation visible and adds a match count with previous and next controls. Someone looking for an old link can stay in the place where it was shared.


The profile can hold extra detail without asking people to leave the chat for every small check.
Choose the recipient before the asset
Send Money starts with a person or wallet-address search. Token and NFT selection follow as separate decisions, with names and symbols for tokens and artwork for NFT collections.
That sequence leaves room to check who receives the asset before deciding what to send. A later authorization step still needs to bring the recipient, network, asset and amount together.



Distinct steps give each decision attention, while the previous choices need to stay easy to inspect and change.
Make group membership understandable
Creating a group begins with choosing members. The group details then bring its identity, description and shared content together. Editing keeps the name, description, administrator and member settings in one place.
The administrator screen makes the owner visible and gives adding an administrator its own action. Invitation has a separate screen for copying or sharing the link. These are different responsibilities, so I kept them easy to tell apart.





Compact group settings are convenient, but ownership and permission changes deserve clear labels.
Leave a useful record of the transaction
The transaction-detail view separates spent and received assets from the destination and fee. It gives someone a place to inspect the event after leaving the conversation.
The source frame also contains a Blastscan label in this Solana-oriented design. That is an unresolved detail to check with engineering: the network and explorer destination must agree before the link can be trusted.

A concise result is useful when it also gives access to the details behind it.
What I delivered
The complete screens cover contacts, chat, search, asset selection, group management and transaction detail. The two additional group screens show how membership and responsibility are managed after creation.
Outcomes and next steps
The design connects the social and financial parts of the app. I have no verified adoption or transaction-performance measurements to report.
What I would test next
- Ask someone to detect an incorrect recipient, asset or network before authorizing a transfer.
- Exercise rejection, a delayed confirmation and returning from an explorer. Check whether retrying could accidentally duplicate the action.
What I learned
Keeping a person in view helps a complicated journey feel connected. The interface also needs to slow down enough when the action becomes consequential.
