Skip to main content

Contributors

Journalism is often collaborative. CapsuleContributorsRegistryV3 represents that collaboration explicitly instead of forcing every relationship into the primary author field. A contributor record contains a wallet, display name, role, contribution type, share in basis points, attribution URI and active state.

Contributor roles

The V3 contract defines: These contributor roles are local to the Capsule contributor registry. They are not the same enum as PressChain protocol roles such as Journalist or Editor.

Add a contributor

The contract method is:
The Capsule author or contract administration can manage contributors under the current V3 contract.

Share accounting

shareBps uses basis points, where 10,000 represents 100 percent. The registry enforces a maximum combined active allocation of 10,000 basis points.
Do not use floating-point percentages as the authoritative storage form. Preserve basis points in the application model and format for display.

Duplicate protection

The same wallet cannot be attached twice to the same Capsule. The registry also tracks whether an address is currently an active contributor or source. That makes permission checks efficient for downstream contracts such as evidence attachment.

Deactivation preserves history

setContributorActive changes active state and updates active share accounting. It does not erase the contributor record. This is the right behavior for provenance. If a source or co-author relationship changes later, the historical attachment can remain auditable while current permissions and active shares update.

Application example

A newsroom investigation might have:
  • primary Capsule author: reporter A
  • co-author contributor: reporter B, 4,000 bps
  • author contributor: reporter A, 4,000 bps
  • source contributor: data researcher, 2,000 bps
The exact economic meaning of shares should come from the applicable product and settlement policy. The contributor registry guarantees the active total cannot exceed 100 percent.

Attribution URI

Use attributionURI for a durable record that explains the contribution or points to canonical attribution metadata. Avoid putting private source details in public metadata simply because the contract has a string field. A confidential human source may require a privacy-preserving identity or no public wallet attachment at all, depending on the reporting context. Protocol transparency should not override source safety.

Read helpers

The contract exposes getContributorIds, getContributor, contributorCountByCapsuleId and isCapsuleContributor for application reads. Build your contributor panel from these functions or from a projection that can be traced back to them.