Receive-only wallet server

Hello grin people. I’ve been having fun learning how grin works and thinking about how one might write a web wallet.

I see in grin/doc/wallet/design.md that one of the modes which grin core plans to support is:

A receive-only online wallet server. This should have some well-known network address that can be reached by a client. There should be a spending key kept offline.

I think this is a good idea. Users will expect to be able to receive payments anytime, even if they are offline. I bet many users would be willing to trust their receive key to a wallet provider who runs a receive-only server on their behalf. And they are unlikely to go through the hassle of setting up a personal, always-on wallet server with access to their private key. Even DHT/nat tunneling doesn’t really solve this problem for users that don’t have an always-on computer.

However it looks like receive-only keys are not implemented. I see a “TODO figure out what’s needed for the bulletproof.” in design.md.

Transactions with split spend/receive keys are over my head. How is this going to work?

Are receive-only keys planned before mainnet?

The only way I see this working (without just handing over your private keys to a third party that you fully trust with all received funds), is if a wallet manufacturer like Ledger produces a receive-only hardware wallet that you can setup with your existing master key (24 word list) and then hand over to a third party. Said party can now receive funds through some online webpage or API and have the wallet produce new outputs, signatures and rangeproofs, but they won’t be able to extract any private keys or spend any output.

Someday…

3 Likes

Thanks @tromp. Interesting idea to protect the private key with special hardware.

OK so I won’t hold my breath for separate spend/receive keys.

Other ideas about wallets: the only “usually online computer” that many people have is their phone. So maybe a mobile app that accepts payments through push (and saves the private key in the OS keychain) would be a good solution for now.

Is there anyone willing to sell me some Grin to test out?

Sure, I’d love to extanage testnet coins for money

1 Like

Hey Jeff,

no need to buy some :slight_smile: - just join us on gitter and ask someone to send you some. You’ll need your wallet URL in the form of http://ip.of.your.walletserver:port/ .

Chris

1 Like

Thanks Chris, will do.

Are there any instructions on how do this?