Keep intent beside the action
A transaction starts next to the message or bot context that caused it, so the reason for the request is not lost during approval.
Designing the moment where a familiar conversation becomes a consequential financial action.
Yarsha puts messages, bot actions and wallet-triggering interactions in the same thread. The product needed to preserve conversational context while making it unmistakable when a user was about to authorize something consequential. The hard part was not drawing a transaction card. It was deciding how intent, review, wallet handoff, waiting, failure and resolution should stay connected as one understandable event.
My contribution. I designed the messaging-to-wallet interaction model, including transaction cards, review states, wallet handoff, pending behavior, rejection and failure recovery, and the resolved state that remains in the conversation. The work focused on behavior between screens as much as the screens themselves.
A transaction starts next to the message or bot context that caused it, so the reason for the request is not lost during approval.
The interface separates reading a message from authorizing a transaction, giving the user one clear moment to check what will happen.
Pending, rejected, failed and completed outcomes use explicit status language and a clear next action instead of optimistic loading copy.
The artifacts sit inside the story because proof is more useful next to the decision it supports than in a ceremonial section at the end.
The resulting model keeps wallet behavior understandable without turning the thread into a finance dashboard. It also gives engineering explicit states to implement rather than a set of finished-looking mockups with the difficult behavior left between them.
Conversation explains why the action exists.
Review explains exactly what is about to be authorized.
Wallet and network states explain what is happening now.
Resolution records what happened and returns the user to context.
The resulting model keeps wallet behavior understandable without turning the thread into a finance dashboard. It also gives engineering explicit states to implement rather than a set of finished-looking mockups with the difficult behavior left between them.