Gonka Labs: Gonka Chat - Wallet-to-Wallet messaging on Gonka #1711
gonkalabs
started this conversation in
Show and Tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hey! Gonka Labs here.
On September 1st, we shipped Gonka Chat - an open-source wallet-to-wallet messenger for Gonka.
You write a
gonka1...address or a.gnk(GNS, https://gonka.gg/names) name the same way you'd write a handle. No new account. The wallet is the identity.IMG_3702.MP4
The problem
Most web3 ecosystems already have some form of wallet chat. Solana, Ethereum, Coinbase - same pattern, for the same reason.
On a chain, people are addresses. That is fine until you need to talk to one.
Today the workaround is: paste the address into Telegram, ask in Discord, hope someone recognizes it. That is slow, and it is not how the rest of the stack works. Transfers, names, explorers - those already speak
gonka1.... Chat should too.That is the product. Text as a native part of using Gonka, not a side channel.
Why we built our own
We did not take a ready-made messenger and glue a wallet login on top. Those stacks assume usernames, phone numbers, or a vendor account. Gonka already has an identity layer: the address, plus an optional
.gnkname.So we wrote the mailbox, the auth, and the crypto against that.
Gonka Chat encryption key v1) seeds a per-wallet NaCl box key. Same wallet on another browser = same inbox, same keys. You are not copying a chat backup around.Until both wallets have been on the service and the room key is in place, the payload is still ciphertext. We do not keep a plaintext copy "just in case.", everything is encrypted.
How sign-in works
window.gonkaWalletorwindow.keplrfor the address.gonka1...is yours. No tx, no fee.If you have used GG Wallet against gonka.gg or the playground, this is the same provider story. Keplr works the same way on
gonka-mainnet.How a message is sent
Simplified:
secretbox'd with the room key. Attachments are boxed the same way and uploaded as opaque bytes.(In case you want to verify, you can click "Packets" button at the top bar of the website. It will show all the incoming and outgoing traffic and you can verify that encryption is done ON DEVICE before packet is sent out).
You can send first. They do not have to be online. They connect that wallet later, you open the chat once so their wrap exists, and they can read.
Groups and channels use the same room-key model. Adding someone to a group or channel creates an invite - the room does not appear in their inbox until they join. DMs are just the two addresses.
What you get
gonka1...or.gnk. Address is enough.@squad. Mentions are clickable.https://chat.gonka.gg/app?with=gonka1...- connect if needed, then open or create the DM..gnk(GNS Names, https://gonka.gg/names) is optional. You do not need a name to be reachable. If you have one, it shows up as the label. Same name layer as GG Wallet and gonka.gg.Why this is useful on Gonka specifically
Explorer, wallet, names, and now chat all point at the same object: the address.
That is not "yet another DM app." If you can pay an address, you should be able to write it. If you can look an address up on gonka.gg, you should be one click from a thread. If a name resolves to a wallet, that name should work in the composer too.
For node ops and anyone running public infrastructure this is practical. The address on the dashboard is the contact method. No "find me on Telegram" footnote.
Outreach is free and off-chain for everyone. You are not paying gas to say hello, and you are not publishing the message on-chain. Everyting is End-To-End encrypted and stored in the distributed / decentralised storage.
Open source
MIT, same as the rest of what we ship.
Source Code: https://github.com/gonkalabs/gonka-chat
Read the sign-in path and the room-key wrap code if you care how keys move. If something looks wrong, please - open an issue and lets make it better together!
What's next
Gonka Chat will land in the other Gonka Labs surfaces so you do not have to remember a separate URL every time:
.gnkas a chat handle, not only a send targetAnd many other application layers!
The deep link is already there if you want to wire it from your own tool:
https://chat.gonka.gg/app?with=<address>(or your domain if you selfhost).Try it
gonka1...or a.gnknameWould love feedback, feature requests, and bug reports. If you use it for node ops, a validator room, support, or just to reach someone you only know as an address - feel free to share your experience in this thread! We would love to hear about application cases!
Links
All reactions