Announcing the Grin++ Wallet! (finally!)

@david does grin++ has the same owner_api and foreign_api as the official grin wallet?
if so, I could make my Niffler wallet support it :slight_smile:

@xiaojay Unfortunately, no. I started with the same APIs, but there were 2 issues:

  1. v2 APIs were being developed faster than I could keep up with.
  2. I didn’t like the idea of storing passwords in memory.

For these reasons, I modified the APIs to better suit my needs, including creating a login token system that all of my APIs use, and moving the foreign API to the front-end. Many of the APIs are very similar though (some identical aside from the additional token). If you’re still interested, I’d love to work with you to add Grin++ support to Niffler.

Thank you, @mo35! For those interested, the new version is here:

I’ll be making a more official announcement on the forum once I finish the how-to docs.


yes, I am interested if there are details doc of wallet api.

because i am not good at c++ to dig the code :sweat_smile:

1 Like

@xiaojay Nope, I’m pretty far behind on documentation :smile:. I will make one later today and add it to the Grin++ wiki. They’ll be here once I’m finished: Owner APIs · GrinPlusPlus/GrinPlusPlus Wiki · GitHub


Great working for the GRIN

Woot! Nice color scheme / font. Looks great, excited to try it out.

1 Like

Looks like Grin 0.4.0 is out for Windows. About to test it out.

You might have planned to update the README on the main page of Github. The URL leading to and mention of the floonet.

It’s ready to go and working, right?



Thanks for pointing that out. I have updated the readme.

Cool, I see that. I have a few things I want to discuss with you regarding Grin++. I have some technical proficiencies that I believe would be of great benefit to this project. I joined the Telegram channel but cannot send any messages. Do you have it locked down for member-approval, or perhaps you need to initiate the first message to allow other users to send?


1 Like

Sorry about that. It was apparently a “channel” not a “group”. This has been fixed.

1 Like

The link is broken due to missing DNS entries. See this post.

Sweet logo, I love the MW in the I! Congrats y’all, and thank you.


Your wallet looks really nice! I like it!


hi David. This is my 1st unique crypto learning. What is the Finalize is for?
I don’t have any Grin yet. But I can send you EOS as donation. We send donation as token of your hardwork If only if dummy like me able to figure out how to receive my Grin from exchange. iol

1 Like

Transactions for Grin are interactive, requiring both parties to work together to build a transaction. There are several methods of performing this interaction. Grin++ supports 3 such methods: File(preferred), http(s), and grinbox. A typical transaction has 3 steps:

  1. Init Send - In the initial step, the sender initiates the transaction and creates an in-process transaction. This in-process transaction is referred to as a “slate”.
  2. Receive - The recipient adds his or her outputs and signature(s) to the “slate”, and returns this updated slate back to the sender.
  3. Finalize - The sender adds their signature(s) and completes the transaction before sending it to the node to be included in a future block.

Sending by file, although currently the preferred way of sending grin, requires you to manually perform each step, whereas when sending by http(s) and/or grinbox, all of that happens without user-interaction as soon as the sender hits the “send” button. So in Grin++, the finalize button is only ever used when sending via file.

1 Like

I did purchase a few of Grin in Bitforex. Try to use the Grin++ as storage. However, numerous attempt withdrawal from the exchange failed. Finally give up. Sold the Grin get my ETH back. I am still try hunt for better exchange without KYC to buy some Grin as future investment thou. Will let you know if l make it into the wallet.

1 Like

I had the same experience. It looks like BitForex cannot reach that is used by Grin++ for https transactions.
However, BitForex withdrawals to wallets work.
I think it might have something to do with the Chinese Firewall or so. Or maybe ngrok is blacklisted in China. I watched the network traffic and it looks like BitForex cannot reach ngrok at all.
It is really a BitForex / China problem, because in general, works just fine as a port tunnelling / forwarding bridge for sending and receiving GRIN.

However, GRIN++ is great. I love all the development that is going on. Super cool.

Thanks for investigating that! If you setup port forwarding on port 3415, you can still receive via http using your IP address. The ngrok address is just displayed for convenience, but it doesn’t prevent you from using your IP. I’ll maybe show both in a future version.

That’s not working for me, because I’m located in Germany and my internet provider (Vodafone Kabel Deutschland) uses something called DS-Lite. This means, I cannot expose an IPv4 address, only IPv6.
I’m already having a lot of trouble because of that, not only limited to GRIN xD