> ## Documentation Index
> Fetch the complete documentation index at: https://docs.backed.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Contracts and Roles

> Contract-specific responsibilities and role boundaries in the Backed raise stack.

# Contracts and Roles

Backed is built around a compact contract surface in which each component has a distinct responsibility.

The goal of this design is not complexity for its own sake. It is to preserve clean boundaries between project creation, approval, participation, settlement, and treasury control.

## AgentRaiseFactory

The primary protocol control contract for:

* project creation,
* project discovery,
* project metadata,
* project approval state,
* global configuration.

## Sale

The per-project contract responsible for:

* commitment acceptance,
* accepted amounts,
* lockup configuration,
* finalization,
* claims,
* refunds,
* collateral accounting.

## AgentVaultToken

The vault share token representing post-settlement ownership.

## ContractAllowlist

The execution boundary that restricts what treasury-controlled execution can target.

## SafeModuleSetup

Deployment-side setup used when treasury control is wired through Safe modules.

## Why the split matters

Keeping these responsibilities distinct makes the system easier to reason about:

* project existence and approval are not conflated with sale activity,
* sale logic is not conflated with treasury execution controls,
* post-close ownership is not conflated with pre-close commitments.

## External dependencies

| External contract         | Why it matters                                        |
| ------------------------- | ----------------------------------------------------- |
| ERC8004 Identity Registry | Required prerequisite for agent-linked raise creation |
| USDM                      | Current commitment asset in the deployed model        |

<Note>
  If the interface and the contracts disagree, the contracts win.
</Note>
