View Issue Details

IDProjectCategoryView StatusLast Update
0006652Talerwallet-corepublic2022-11-04 19:52
ReporterFlorian Dold Assigned ToFlorian Dold Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PriorityhighSeverityfeatureReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.9Fixed in Version0.9 
Summary0006652: support peer-to-peer payments
DescriptionRight now we have a strict separation between merchants and customers. Eventually we might also want to support direct payments between customers via their Taler wallet.

The main challenge for this is KYC. We could implement special KYCed reserves for this that are then used as the wire info for a payment (payto://taler-kyc-reserve/) from customer to customer. The KYC would allow transaction limits to be placed on receiving money as a customer. A prerequisite for these P2P payments would be that the receiving party has a KYC registered reserve/account with an exchange.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Florian Dold

2021-01-17 19:53

manager   ~0017366

It's still totally unclear is how the signaling between the sender and receiver of the P2P payment will work. Unlike when a merchant is involved, the two parties can't directly communicate with each other. Of course the exchange might be able to help here, at least as long as it's not expensive for the exchange.

So what's the desired user experience here?

Does the receiver of the money initiate? If so, does the receiver simply give some generic address, or do they create some kind of "P2P contract terms"? How does the receiver learn whether/when they received a payment?

Does the sender of the money initiate? If so, how does the sender know when/how to sign deposit permissions? Or do we have some special "wildcard deposit permission" where the P2P receiver can substitute their own wire transfer information?

Florian Dold

2021-01-17 20:17

manager   ~0017367

Pro/con of sender-initiated payments:
* can be used to simply attach money to some message
* doesn't give the sender any guarantees what will happen with their money
* requires additional "wildcard deposit permission" support from the exchange
   (the receiver of the message does a /deposit, but can give arbitrary wire data)
* the contract terms will be chosen by the receiver, and will be completely under their control
* the size of the payment message is proportional to the number of coins involved

Pro/con of receiver-initiated payments:
* lots of overlap with payments based on a merchant backend
* unclear how the communication will happen between the two parties

I think the sender-initiated payments are simpler and cover more use cases that are not already covered by payments where a merchant backend is involved.

Christian Grothoff

2021-08-01 13:04

manager   ~0018046

Spec seems done, moving towards implementation category.

Christian Grothoff

2022-06-05 12:30

manager   ~0018917

Exchange implementation is basically done, next are wallet and auditor!

Florian Dold

2022-11-01 13:33

manager   ~0019327

What's left here is basically a "v2" of the wallet-core API based on input of the UI developers.

Christian Grothoff

2022-11-01 13:49

manager   ~0019328

Do you already have such input? Should this then not be separate bugs for each of the requested tweaks?

Florian Dold

2022-11-01 14:24

manager   ~0019329

Yes, but the general sentiment was that we should not break the API before we release 0.9. So maybe we can put this down for 0.9.{1,2}?

Christian Grothoff

2022-11-01 14:41

manager   ~0019331

Sure, but moreover, I'm suggesting that you track those desired change requests in new bug report(s).

Florian Dold

2022-11-04 19:15

manager   ~0019358

MVP in the wallet works, and we've opened other bugs for missing parts and polishing.

Issue History

Date ModifiedUsernameFieldChange
2020-11-26 16:07Florian DoldNew Issue
2021-01-17 19:53Florian DoldNote Added: 0017366
2021-01-17 20:17Florian DoldNote Added: 0017367
2021-04-18 00:29Christian GrothoffAssigned To => Christian Grothoff
2021-04-18 00:29Christian GrothoffStatusnew => assigned
2021-04-18 00:34Christian GrothoffPrioritylow => normal
2021-04-18 00:34Christian GrothoffCategoryother => exchange API (HTTP specification)
2021-04-18 00:34Christian GrothoffProduct Version => git (master)
2021-04-18 00:34Christian GrothoffTarget Version => 0.9
2021-08-01 10:04Christian GrothoffPrioritynormal => low
2021-08-01 10:04Christian GrothoffTarget Version0.9 => 0.9.1
2021-08-01 10:04Christian GrothoffTarget Version0.9.1 =>
2021-08-01 13:04Christian GrothoffCategoryexchange API (HTTP specification) => exchange
2021-08-01 13:04Christian GrothoffNote Added: 0018046
2021-12-26 12:11Christian GrothoffTarget Version => 0.9.1
2022-06-05 12:30Christian GrothoffNote Added: 0018917
2022-07-03 12:00Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2022-07-03 12:00Christian GrothoffPrioritylow => high
2022-08-25 19:07Christian GrothoffCategoryexchange => wallet (TS core)
2022-10-20 09:44Christian GrothoffTarget Version0.9.1 => 0.9
2022-11-01 13:33Florian DoldNote Added: 0019327
2022-11-01 13:49Christian GrothoffNote Added: 0019328
2022-11-01 14:24Florian DoldNote Added: 0019329
2022-11-01 14:41Christian GrothoffNote Added: 0019331
2022-11-04 19:15Florian DoldStatusassigned => informing
2022-11-04 19:15Florian DoldResolutionopen => fixed
2022-11-04 19:15Florian DoldNote Added: 0019358
2022-11-04 19:16Florian DoldFixed in Version => 0.9
2022-11-04 19:52Christian GrothoffStatusinforming => closed
2023-04-13 18:36Florian DoldCategorywallet (TS core) => wallet-core