Portfolio Protocol V2

A small protocol with explicit trust boundaries.

The architecture separates canonical project truth, visitor intent, and engagement proof. Each contract owns one responsibility and exposes the assumptions a reviewer should inspect.

CallerEOA or ERC-1271 account
typed intent →
Intent processorArchitectureDecisionLab
verify + issue →
Canonical readPortfolioRegistry
Bounded writeBuilderPassport

Contract boundaries

Responsibility is deliberately narrow.

Canonical truth

PortfolioRegistry

Owns

Project identity, release proof, lifecycle status

Refuses

Transfers, silent history rewrites, unbounded page reads

Intent processor

ArchitectureDecisionLab

Owns

Decision receipt, result counter, response nonce

Refuses

Unknown projects, duplicate responses, stale signatures

Engagement proof

BuilderPassport

Owns

Non-transferable achievement balances

Refuses

Transfers, duplicate issuance, unknown achievement types

Reviewed guarantees

What this architecture makes easier to trust.

  • Project versions remain individually inspectable.
  • Every decision references a registered project.
  • Relayed submissions support EOAs and ERC-1271 accounts.
  • No portfolio token or approval is required.
  • Achievements are explicitly non-financial and non-transferable.
  • Contract reads are bounded; event indexing handles discovery.

Try the interface

The useful abstraction is a legible decision—not another token.

Open decision workbench