DEV Community

Daniel Ioni
Daniel Ioni

Posted on

From Contributions to Verifiable Knowledge: Building the MyZubster Contributor Passport

Sì. Ti preparo il post DEV già pronto da pubblicare, usando solo ciò che abbiamo effettivamente dimostrato nel sistema. Evito di presentare come già implementati i nodi canonici Knowledge, perché dall’ultimo output il grafo attuale espone ancora contribution/evidence/attestation/reward; quella parte la presentiamo come passo successivo. Testo incollato
From Contributions to Verifiable Knowledge: Building the MyZubster Contributor Passport
Open-source contribution is easy to see.
Knowledge is harder to prove.
A GitHub profile can show commits, pull requests, reviews, and repositories. But it does not necessarily answer a more interesting question:
What has this contributor actually demonstrated that they know?
At MyZubster, we have started experimenting with a different model.
Instead of treating a merged pull request as only a piece of code, we treat it as potential evidence of demonstrated knowledge.
The model is simple:
Contributor
↓
Contribution
↓
Knowledge
↓
Evidence
↓
Attestation
↓
Reward
↓
Reputation

The important word here is evidence.
Knowledge should not simply be claimed.
Knowledge should be evidenced.
A real contributor case
We recently applied this model to the GitHub contributor jdjioe5-cpu.
The contributor had three merged contributions related to NFC functionality in the MyZubster Animal Registry:
PR #9
Web-based NFC Tag Simulator

PR #10
NFC tag physical designs and branding

PR #11
NFC API and integration workflow

Instead of recording these only as merged pull requests, MyZubster created three KnowledgeContribution records.
The current Contributor Passport now reports:
Knowledge contributions: 3
Attestations: 3
Rewards: 1
Completed rewards: 1

Testo incollato
What does “demonstrated knowledge” mean?
Take PR #11.
The contribution documents and demonstrates work around:

  • the MyZubster NFC JavaScript API
  • registration integration
  • NDEF writing workflow
  • payload decoding
  • validation
  • deterministic testing The Passport does not say: This person is globally certified as an NFC expert.

That would be a much stronger claim than the evidence supports.
Instead, it records something narrower and auditable:
This contributor demonstrated this knowledge through this contribution.

The PR #11 record is linked directly to its GitHub evidence and is currently marked REWARDED. Testo incollato
This distinction matters.
A contribution can provide evidence of knowledge without pretending to be a universal professional certification.
Evidence and attestation are separate
Each contribution is also connected to an attestation.
For example, the NFC API contribution contains:
Evidence type:
github_merged_pull_request

Verification method:
github_merged_pr_plus_documented_tests

Status:
OBSERVED

Testo incollato
Notice that the attestation is OBSERVED, not VERIFIED.
That is intentional.
A repository review and a merged contribution provide strong provenance, but they are not automatically equivalent to an independent certification authority.
So MyZubster keeps the concepts separate:
Contribution approved
≠
Evidence observed
≠
Knowledge independently verified

This makes the system more conservative, but also more credible.
From knowledge to reward
The experiment becomes more interesting when knowledge is connected to an economic reward.
PR #11 was associated with a reward of:
0.001 XMR

The reward record is now:
rewardType: knowledge_contribution
currency: XMR
status: paid

and contains a ledger reference pointing to the real Monero settlement transaction. Testo incollato
So the lifecycle becomes:
Merged contribution
↓
KnowledgeContribution
↓
Evidence
↓
Attestation
↓
Reward
↓
On-chain settlement

This is no longer just a theoretical architecture.
It has been executed with a real contributor and a real payment.
The Contributor Passport
The Passport acts as a contributor-centric view of this history.
For PR #11 it can now show:
Contributor:
jdjioe5-cpu

Contribution:
NFC API and integration workflow

Status:
REWARDED

Evidence:
GitHub PR #11

Attestation:
OBSERVED

Reward:
0.001 XMR

Reward status:
paid

Settlement:
Monero transaction reference

The contribution itself contains the reward reference and the settlement ledger reference. Testo incollato
Instead of a résumé statement such as:
I know NFC integration.

the system can eventually support a much stronger statement:
Here is the work through which I demonstrated NFC integration knowledge, the evidence attached to it, the review state, and the reward settlement associated with it.

Building the Knowledge Graph
The same records are also exposed as a Knowledge Graph.
Today, the graph contains explicit nodes for:
Contributor
KnowledgeContribution
Evidence
Attestation
Reward

and relations such as:
CONTRIBUTED
EVIDENCED_BY
ATTESTED_BY
REWARDED_BY

The current graph for this contributor contains 11 nodes, 10 edges, 3 knowledge contributions, 3 attestations, and 1 reward. Testo incollato
For PR #11, the graph already expresses:
jdjioe5-cpu
|
| CONTRIBUTED
v
NFC API and integration workflow
|
| EVIDENCED_BY
v
GitHub PR #11

NFC API and integration workflow
|
| ATTESTED_BY
v
Repository observation

NFC API and integration workflow
|
| REWARDED_BY
v
0.001 XMR

The REWARDED_BY relationship is already present in the graph. Testo incollato
The next step: knowledge as a shared graph entity
Our next step is to separate the abstract knowledge concept from the contribution that demonstrated it.
Instead of only:
Contributor
→ Contribution

we want:
Contributor
↓
Contribution
↓ DEMONSTRATES
Knowledge

For example:
PR #9
↓ DEMONSTRATES
NFC verification workflow

PR #9
↓ DEMONSTRATES
SHA-256 validation

PR #11
↓ DEMONSTRATES
NFC API integration

PR #11
↓ DEMONSTRATES
NDEF integration workflow

This changes the graph significantly.
If another contributor demonstrates NFC API integration, we do not need to create an isolated description of the same knowledge.
Both contributors can connect to the same canonical knowledge node.
Conceptually:
Contributor A ──┐
│
├──→ NFC API Integration
│
Contributor B ──┘

Now knowledge can become something shared across the ecosystem rather than something trapped inside individual commit histories.
Why this matters beyond GitHub
A Contributor Passport could eventually become useful in many environments.
A developer entering a new project could carry a history of demonstrated knowledge.
A researcher could connect publications or experiments to knowledge nodes.
A designer could connect visual contributions.
A reviewer could build reputation through attestations.
A contributor entering a virtual environment could have their digital identity reference the same Passport.
The key point is that reputation would not need to begin with:
Trust this profile.

It could begin with:
Inspect the evidence.

Reward is not knowledge
One design principle is especially important:
Payment does not prove knowledge.
A reward is one relationship in the graph.
It does not create the knowledge claim by itself.
Likewise:
payment ≠ knowledge
merge ≠ independent verification
attestation ≠ absolute truth

Each concept has its own provenance.
That separation is important if we want systems like this to remain useful rather than becoming another badge generator.
What we learned
The first working implementation taught us that a useful Contributor Passport needs more than a list of commits.
It needs relationships.
Who contributed?
What did they contribute?
What knowledge did that work demonstrate?
What evidence supports that claim?
Who or what observed it?
Was it independently verified?
Was there a reward?
Was that reward actually settled?

Those questions together create something much more interesting than a traditional contribution counter.
They create a provenance graph.
Where MyZubster is going
The current experiment already connects:
Contributor
→ Contribution
→ Evidence
→ Attestation
→ Reward
→ On-chain settlement

The next layer is:
Contribution
→ Knowledge concepts
→ Shared Knowledge Graph
→ Contributor Passport
→ Portable reputation

Our goal is not to declare what people know.
Our goal is to build infrastructure through which people can demonstrate what they know.
And to keep the evidence attached.
Knowledge should not be claimed.
Knowledge should be evidenced.
Suggested DEV metadata
Title:
From Contributions to Verifiable Knowledge: Building the MyZubster Contributor Passport
Description:
How MyZubster connects GitHub contributions, evidence, attestations, rewards and on-chain settlement into a contributor knowledge graph.

Top comments (0)