mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-13 19:06:24 +00:00
removed ecash mention, its not ecash
This commit is contained in:
parent
2198147d2b
commit
feba8cf6a1
34
88.md
34
88.md
@ -1,20 +1,20 @@
|
||||
NIP-88
|
||||
======
|
||||
|
||||
Nostr Cash (simple Nostr ecash)
|
||||
Nostr Cash (simple Nostr cash/token/cheque)
|
||||
-----------------------------------
|
||||
|
||||
`draft` `optional` `author:benarc`
|
||||
|
||||
> Nostr Cash is not blinded, so prob not stricly an ecash. The reason for not blinding, is to keep implementing simple, and also on the assumption the type of relays who want to offer a legitimate custodial service would prefer to do without the risk of being used for things like "coin mixing".
|
||||
> Nostr Cash is not blinded, so is not cash. The reason for having unblinded, is to keep implementing simple/flexible, and also on the assumption the type of relays who want to offer a legitimate custodial service would prefer to do without the risk of being used for things like "coin mixing".
|
||||
|
||||
Ecash is useful and relays should have the option to offer ecash mints. Other mints could exist as stand-alone clients, but relays are ideally placed to package in with their service offerings.
|
||||
Electronic cash is useful and relays should have the option to offer minting/custodial services. Other mints could exist as stand-alone clients, but relays are ideally placed to package in with their service offerings.
|
||||
|
||||
Users can use relays offering mints they trust, or relays they don't trust but for smaller amounts.
|
||||
|
||||
Relays offering mints must have a keypair and an additional nostr keypair for its mint.
|
||||
|
||||
Nostr Cash uses derived keys, much like [NIP26](https://github.com/nostr-protocol/nips/blob/master/26.md). Each "ecash" is actually just a derived private key that can be burned or passed to another user.
|
||||
Nostr Cash uses derived keys, much like [NIP26](https://github.com/nostr-protocol/nips/blob/master/26.md). Each "cash" is actually just a derived private key that can be burned or passed to another user.
|
||||
|
||||
All communication between the relay and user happen over [NIP04](https://github.com/nostr-protocol/nips/blob/master/04.md).
|
||||
|
||||
@ -34,18 +34,18 @@ spent:
|
||||
timestamp: <integer timestamp>
|
||||
```
|
||||
|
||||
User client ecash wallet stores:
|
||||
User client cash wallet stores:
|
||||
|
||||
```
|
||||
active:
|
||||
key: <string, derived private key/ecash>,
|
||||
key: <string, derived private key/cash>,
|
||||
amount: <integer BTC millisat denomination>,
|
||||
relay: <string, relay ws address>,
|
||||
relaykey: <string, public-key of relay>,
|
||||
timestamp: <integer timestamp>
|
||||
|
||||
spent:
|
||||
key: <string, derived private key/ecash>,
|
||||
key: <string, derived private key/cash>,
|
||||
amount: <integer BTC millisat denomination>,
|
||||
relay: <string, relay ws address>,
|
||||
relaykey: <string, public-key of relay>,
|
||||
@ -80,7 +80,7 @@ Relay DMs user (maybe after a check if the relays mint has restricted access):
|
||||
|
||||
### Minting
|
||||
|
||||
**For creating new ecash from a mint.**
|
||||
**For creating new cash from a mint.**
|
||||
|
||||
User DMs the relay:
|
||||
|
||||
@ -112,7 +112,7 @@ Mint replies:
|
||||
|
||||
```json
|
||||
{
|
||||
"key": <string derived private key/ecash>,
|
||||
"key": <string derived private key/cash>,
|
||||
"amount": <integer BTC millisat denomination>
|
||||
}
|
||||
```
|
||||
@ -121,7 +121,7 @@ User client stores:
|
||||
|
||||
```json
|
||||
{
|
||||
"key": <string derived private key/ecash>,
|
||||
"key": <string derived private key/cash>,
|
||||
"amount": <integer BTC millisat denomination>,
|
||||
"relay": <string relay ws address>,
|
||||
"relaykey": <string public-key of relay>,
|
||||
@ -131,13 +131,13 @@ User client stores:
|
||||
|
||||
### Claiming
|
||||
|
||||
**For cashing in ecash with the mint.**
|
||||
**For cashing in cash with the mint.**
|
||||
|
||||
User DMs relay:
|
||||
|
||||
```json
|
||||
{
|
||||
"key": <String, derived private key/ecash>,
|
||||
"key": <String, derived private key/cash>,
|
||||
"amount": <Integer, BTC millisat denomination>,
|
||||
"type": <String, preffered payment method bolt11 bolt12 onchain stripe paypal shitcoin etc>
|
||||
}
|
||||
@ -161,25 +161,25 @@ User DMs relay:
|
||||
|
||||
### Sending
|
||||
|
||||
**For sending ecash to another nostr user.**
|
||||
**For sending cash to another nostr user.**
|
||||
|
||||
User DMs relay:
|
||||
|
||||
```json
|
||||
{
|
||||
"key": <String, derived private key/ecash>,
|
||||
"key": <String, derived private key/cash>,
|
||||
"amount": <Integer, BTC millisat denomination>,
|
||||
"type": <String, public key of recipient>
|
||||
}
|
||||
```
|
||||
|
||||
Mint `burns` the old record for the ecash and creates a new record(s), depending on if sending user is owed change (the old record moves from `active` to `spent` table). The mint creates a new record in `active` and DMs the recipient user the private-key/ecash. If change is due, another record is created in `active` and sent back to the sender user.
|
||||
Mint `burns` the old record for the cash and creates a new record(s), depending on if sending user is owed change (the old record moves from `active` to `spent` table). The mint creates a new record in `active` and DMs the recipient user the private-key/cash. If change is due, another record is created in `active` and sent back to the sender user.
|
||||
|
||||
Relay DMs user(s):
|
||||
|
||||
```json
|
||||
{
|
||||
"key": <string derived private key/ecash>,
|
||||
"key": <string derived private key/cash>,
|
||||
"amount": <integer BTC millisat denomination>
|
||||
}
|
||||
```
|
||||
@ -188,7 +188,7 @@ User(s) client stores:
|
||||
|
||||
```json
|
||||
{
|
||||
"key": <string derived private key/ecash>,
|
||||
"key": <string derived private key/cash>,
|
||||
"amount": <integer BTC millisat denomination>,
|
||||
"relay": <string, relay ws address>,
|
||||
"relaykey": <string public-key of relay>,
|
||||
|
Loading…
Reference in New Issue
Block a user