Skip to content

Add solid:Wallet for a Data Wallet#93

Open
timbl wants to merge 1 commit into
mainfrom
wallet
Open

Add solid:Wallet for a Data Wallet#93
timbl wants to merge 1 commit into
mainfrom
wallet

Conversation

@timbl
Copy link
Copy Markdown
Contributor

@timbl timbl commented Oct 10, 2024

@timbl timbl changed the title Add solid:Wallet fr=or a Data Wallet Add solid:Wallet for a Data Wallet Oct 10, 2024
Copy link
Copy Markdown
Member

@csarven csarven left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. What's the relevance of referring to a random blogpost about data wallets, as opposed to e.g., https://en.wikipedia.org/wiki/Digital_wallet as worst case or something more "authoritative" or internationally acknowledged or backed by a standards development body?
  2. If and how is a dataverse OS's data wallet may be compatible with a Solid "pod"? Can you link to relevant specifications?
  3. Can you link to any Solid specification that's making the case for solid:Wallet?
  4. Can you link to any (open source) Solid server or application that's currently using or making a public call for needing this (or similar class)? How do they function without this class?

This is all so that we don't randomly add / pollute stuff in Solid Terms. We have done that in the past because there was no process. See also https://github.com/w3c-cg/solid/blob/main/CONTRIBUTING.md#vocabulary-management

@timbl
Copy link
Copy Markdown
Contributor Author

timbl commented Oct 11, 2024

What's the relevance of referring to a random blogpost about data wallets, as opposed to e.g., https://en.wikipedia.org/wiki/Digital_wallet as worst case or something more "authoritative" or internationally acknowledged or backed by a standards development body?

This a PR discussion not a spec. Thought the blogpost would help people know that wallets are a thing.
Are you suggesting we should add https://en.wikipedia.org/wiki/Digital_wallet to the ontology?

If and how is a dataverse OS's data wallet may be compatible with a Solid "pod"? Can you link to relevant specifications?

The intent is that a Wallet in Solid will be a container which specifically stores things like credentials. It could be all or (typically) part of a pod.

There is an existing community which is not currently solid compatible at the The OpenWallet Foundation but there is a lot of potential synergy

Can you link to any Solid specification that's making the case for solid:Wallet?

No, this is a placeholder. We could mark it as such.

Can you link to any (open source) Solid server or application that's currently using or making a public call for needing this (or similar class)? How do they function without this class?

  1. I was thinking of writing a pane for SolidOS which would do simple wallet management.
  2. . If I was to add this to SolidOS think I'd want to use the class so one could track a wallet using type Indexes.
  3. The inrupt open source data wallet application puts your wallet related stuff in your pod. It uses a custom API in the backend but the data ends up in a wallet container within your pod.

@timbl
Copy link
Copy Markdown
Contributor Author

timbl commented Oct 11, 2024

May be related to Wikidata's digital wallet

Comment thread solid-terms.ttl
a rdfs:Class ;
dc:issued "2024-10-10"^^xsd:date ;
rdfs:isDefinedBy <http://www.w3.org/ns/solid/terms#> ;
rdfs:comment "A part or all of a pod which contains credentials, etc." ;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
rdfs:comment "A part or all of a pod which contains credentials, etc." ;
rdfs:comment "A part, up to all, of a pod which contains credentials and related documents." ;

@josephguillaume
Copy link
Copy Markdown

3. The inrupt open source data wallet application puts your wallet related stuff in your pod. It uses a custom API in the backend but the data ends up in a wallet container within your pod.

It's great to hear the inrupt data wallet does end up with data in the pod.

If I understand correctly, this is a class that would be referred to in a type registration as something like

solid:forClass solid:Wallet;
solid:instance </path/to/wallet/>

solid:Wallet is then a Data Library for credentials with its own domain specific index. I like the idea of formalising this to help clarify how wallets and Solid relate, but I don't yet understand what shape the data would end up being or what level of compatibility a solid:Wallet will have with competing standardisation efforts? Inrupt's documentation seems to refer to binary payloads? Is a solid:Wallet just a class of container? Or does it have more structure?

@elf-pavlik
Copy link
Copy Markdown
Member

Similar to my comment on #94 (comment)

One of the CG work items listed on https://solidproject.org/TR should use a predicate first. Based on that, it could be added to the vocabulary. I also proposed both PRs as a topic for the next CG meeting.

@NoelDeMartin
Copy link
Copy Markdown
Contributor

NoelDeMartin commented Oct 12, 2024

More generally, isn't a Solid POD already a "Data Wallet"? I thought the term Wallet was just being used as a marketing term to help people understand the purpose of the technology, but in technical terms I don't see what a "Data Wallet" has that a "Solid POD" doesn't.

Looking at the PR, if a data wallet is "A part or all of a pod which contains credentials, etc.", shouldn't it be possible with the current spec to register something in the type index as a container for credentials? Why do we need a new term to express that a container includes some type of data?

@melvincarvalho
Copy link
Copy Markdown
Member

ACK

I can begin to implement this. See SolidOS/solidos#215 (comment)

@melvincarvalho
Copy link
Copy Markdown
Member

Similar to my comment on #94 (comment)

One of the CG work items listed on https://solidproject.org/TR should use a predicate first. Based on that, it could be added to the vocabulary. I also proposed both PRs as a topic for the next CG meeting.

Let’s definitely consider wallets as a CG work item. Might be a good moment to reflect on how we handle smaller vocabulary changes — otherwise, folks may start spinning up their own alternatives.

I’ve actually had an EU-registered company called SolidPay that’s been aiming to implement wallets in Solid, for a few years now, so I’m really glad to see this on the radar.

Comment thread solid-terms.ttl
rdfs:comment "A part or all of a pod which contains credentials, etc." ;
rdfs:label "Wallet"@en ;
rdfs:label "portefeuille"@fr ;
rdfs:label "Geldbörse"@de .
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The term "Geldbörse" specifically refers to a wallet for money.
I think this translation does not reflect the described concept well enough to be included here.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note that in German tech circles, credential/data wallets are referred to by the borrow-word "Wallet"
ex: https://www.sprind.org/taten/challenges/eudi-wallet-prototypes

@jeswr jeswr self-requested a review April 15, 2025 13:23
@uvdsl
Copy link
Copy Markdown
Member

uvdsl commented Apr 17, 2025

From the discussion (also on the gitter), I gather that the proposed solid:Wallet aims to describe "a collection of things that I may want to show to people such that they can verify the signature or proof" (as indicated by @jeswr's comment).
Using solid:Wallet as the class of these things, an application could discover the members of the class to display them (and their member things).

I thus see the following issue:

If the underlying idea is having multiple different solid:Wallets as in different collections of different cryptographically verifiable things, like in wallet_1 there is credit_card_1 and national_id_1 and in wallet_2 there is credit_card_2 and national_id_1 and drivers_license_123, so really - different collections of such things - then in the physical world, I still would not call these collections "wallets" if these two collections of cards just sit on my table. To me, a wallet is what enables me to store the single things, organize them, and pull them out for usage.

The term digital wallet is widely used "out there" already... e.g. Google Wallet, EUDI Wallet, and so on, and they refer to applications. By re-using the same term for only a "collection of things that I may want to show to people such that they can verify its signature or proof" -- instead of also referring to the application to do it -- will be misleading to a lot of people.

If I come back to my physical wallet, this wallet has different pockets or compartments for organizing cards and bills into different collections. Maybe such terms are not as specifically used already compared to the term wallet?

FWIW, I personally could also work with the model of having a collection resource, e.g. a container or a dataset series, where it is defined that the members adhere e.g. to the W3C VC data model (without defining a specific credential type).
In this case, we do not even need a specific class name for this concept.

@melvincarvalho
Copy link
Copy Markdown
Member

It's been 18 months. This should be merged so implementers can use solid:Wallet to build user interfaces. Label and translation refinements can be addressed in follow-up PRs and should not block the initial merge.

@TallTed
Copy link
Copy Markdown
Contributor

TallTed commented Apr 10, 2026

@melvincarvalho

I see commentary here from @uvdsl and others, more recently than yours. I do not see changes to the PR nor further discussion by you in response to them. The 18 month gap appears to have been on your desk, not on the desks of those who have posted here more recently, in response to you.

Also, I find the tone of your last comment here, as well as in many other threads in which you have been a participant, to be combative and demanding, without apparent openness to discussion nor adjustment of PRs. I do not feel invited to discuss the substance of the PRs. I believe others have the same feeling of discouragement, contributing to the low participation in this and those other threads.

You might consider adjusting your tone, if you really do want to discuss these things, and have these PRs proceed through discussion to something like consensus, and thus to merge.

@bumblefudge
Copy link
Copy Markdown

To me, a wallet is what enables me to store the single things, organize them, and pull them out for usage.

Having tracked this across both EU/eIDAS/EUBW and various decentralized-identity contexts over the last 7ish years, I can say that the commonalities across all those overlapping (but honestly quite divergent) mental models and product lines and protocols is that a data wallet can authenticate data, whether interactively or not. it isn't where your credentials are stored, it's the piece of software and/or hardware and/or firmware that "presents" (usually, "signs over") credentials in high-values/high-stakes interactions or queries. Many "enterprise wallets", for example, store credentials in a very Solid-like way with nuanced ACL and consent receipts, but "present" that data with just-in-time signing, whether TEE or HSM or otherwise complexly managed and PKI'd.

See, for example, this definition from the website of the Decentralized Identity Foundation (linux foundation org) from five years ago.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants