Catalyst · Roles

Roles in the Catalyst system

Catalyst has five distinct roles. Each one has a clearly scoped set of permissions on-chain, and each one corresponds to either a human (or AI agent) acting through the frontend / MCP, or an off-chain service doing automated work. This page lists every role, what it can do, and what it cannot do.

Founder

The person or team launching a startup. Can be a human using the frontend or an AI agent using the MCP integration.

What the founder can do

  • • Register a new startup by calling CatalystRegistry.registerStartup(), posting the required ETH collateral
  • • Receive ongoing operational funding from Pool 1 swap fees (70% of fees flow to the founder address)
  • • Close the funding phase manually before the deadline if enough capital has been raised
  • • Reclaim their collateral after a successful settlement (SUCCESS verdict)

What the founder cannot do

  • • Touch investor principal in Pool 1 — it stays in the Uniswap v4 pool, controlled by the immutable PoolManager
  • • Modify the minimum price target after registration
  • • Interfere with the oracle or the performance evaluator
  • • Withdraw their own collateral before settlement

Investor

Anyone providing liquidity to a startup's Pool 1. Can be a retail user, a fund, or an autonomous agent.

What the investor can do

  • • Deposit USDx and USDy into Pool 1 via CatalystHook.fundStartup()
  • • Receive token allocation proportional to their funding contribution
  • • Withdraw their Pool 1 liquidity at any time during the active phase or after settlement
  • • File a claim against the founder's collateral if settlement results in FAILED
  • • Transfer or sell their token allocation in Pool 2

What the investor cannot do

  • • Force an early settlement before the commitment deadline
  • • Override or influence the oracle verdict
  • • Claim more than their pro-rata share of collateral

Oracle

The address authorized to post adoption verdicts on-chain via the CatalystAdoptionScorer contract. In practice, this is the signing key used by the off-chain scorer-oracle daemon.

What the oracle can do

  • • Call postScore(startupId, verdict, confidence, reasoningCID) to publish a new verdict
  • • Publish one of three verdicts: PENDING (0), APPROVE (1), or DENY (2)
  • • Include a confidence value (0-100) and an IPFS CID with the reasoning

What the oracle cannot do

  • • Move any funds
  • • Modify any contract except CatalystAdoptionScorer
  • • Change startup parameters (price target, deadline, token allocation)
  • • File or settle claims

ℹ️Why least privilege matters

The oracle signing key is held by a daemon running 24/7 on a server. If that server were ever compromised, the attacker could post false verdicts — but they couldn't drain any funds or take over the protocol. That's why the oracle is scoped to a single function on a single contract, and why it can (and should) be a dedicated key separate from the protocol admin.

For the full oracle walkthrough see Adoption oracle.

Admin

The owner of the core Catalyst contracts. During the initial deploy this is the deployer address, and in a production setup it would typically be a multisig or a DAO. The admin role is intentionally narrow.

What the admin can do

  • • Set or rotate the oracle address via adoptionScorer.setOracle(newAddress)
  • • Set the registry address on the vault and on the hook (protocol wiring)
  • • Slash a misbehaving evaluator by calling the EvaluatorRegistry
  • • Pause the hook in an emergency (if configured)
  • • Rotate protocol fee recipients

What the admin cannot do

  • • Touch investor funds in Pool 1 or Pool 2
  • • Modify an existing startup's commitment terms
  • • Unlock founder collateral before settlement
  • • Override the performance evaluator's decision
  • • Change the ERC-8210 claim semantics

Evaluator

The role defined by ERC-8183 that attests to the outcome of a job. In Catalyst, the primary evaluator is the PerformanceEvaluator contract itself — a fully on-chain, deterministic evaluator that reads price from Uniswap v4 and verdict from the adoption scorer, and returns SUCCESS or FAILED.

Additional evaluators can register in the CatalystEvaluatorRegistry by staking ETH. Staked evaluators can be slashed if they submit an attestation that contradicts on-chain reality. This creates a trust-minimized evaluation market where the cost of lying is higher than any reward from lying.

What an evaluator can do

  • • Register a stake in the evaluator registry
  • • Attest the outcome of a job by calling the performance evaluator
  • • Withdraw their stake after a cooldown period, if not slashed

What an evaluator cannot do

  • • Submit an attestation without stake
  • • Modify a past attestation
  • • Resist slashing if the admin proves the attestation was wrong

Quick reference

RoleScopeKey action
FounderPer startupregisterStartup
InvestorPer startupfundStartup / fileClaim
OracleAll startups (scorer only)postScore
AdminProtocol-widesetOracle / setRegistry
EvaluatorPer job attestationevaluate