> For the complete documentation index, see [llms.txt](https://docs.souless.fun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.souless.fun/developers/contracts.md).

# Smart contracts

Souless is modular. Current deployment addresses are published separately for [Arc Mainnet](/networks-and-reference/arc-mainnet.md) and [Arc Testnet](/networks-and-reference/arc-testnet.md).

| Contract                               | Purpose                                                                  | Important public actions                                    |
| -------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------- |
| `TokenFactory`                         | Deterministic LaunchToken deployment                                     | deploy a token through the launch flow                      |
| `LaunchToken`                          | Fixed-supply non-upgradeable ERC-20                                      | standard ERC-20 methods                                     |
| `HumanLaunchPolicy`                    | Human issuer eligibility and launch-slot policy                          | validate/consume launch permission                          |
| `GuardedV3LaunchCoordinator`           | Guarded launch orchestration and genesis Community policy initialization | create guarded launch and finalize its starting policy      |
| `LaunchGuardFactory`                   | Deploys a launch-specific guard                                          | create guard                                                |
| `LaunchGuardV1`                        | Commitment, batch settlement, recovery                                   | start, commit, finalize, recover/cancel                     |
| `MultiRangeV3LaunchAdapter`            | Creates and seeds canonical V3 liquidity ranges                          | settlement adapter calls                                    |
| `MultiPositionLpLocker`                | Permanent custody and fee collection                                     | permissionless USDC collection; controlled token collection |
| `LaunchRegistry`                       | Canonical Launch ID and immutable relationships                          | register/read launch                                        |
| `FeeDispatcher`                        | Routes each USDC-side fee unit once                                      | credit collected fees, claim/accrual paths                  |
| `OpeningFeeVault`                      | Receives explicit Launch Guard fee                                       | deposit/record opening fee                                  |
| `LaunchFeeVault`                       | Receives launch fees                                                     | deposit and route quoted fee                                |
| `TokenFeeTimelock` / `TokenFeeReserve` | Separates token-side LP fees                                             | delayed collect/release or allowed burn                     |
| `LaunchPartnerPool`                    | Global fixed-slot campaign accounting                                    | credit and authorized claim                                 |
| `NarrativeProtectionRegistry`          | Protection state and versioned launch-fee quotes                         | quote and policy updates                                    |
| `CommunityRegistry`                    | Attaches Community Mode modules                                          | register/read community                                     |
| `CommunityVault` / `StakedToken`       | 1:1 token custody and transferable receipt                               | stake, unstake                                              |
| `DeFiPositionRegistry`                 | Recognized liquid-stake representations                                  | read supported position adapters                            |
| `CreatorAlignmentRegistry`             | Creator veto alignment and grace state                                   | refresh/check alignment                                     |
| `CommunityRewardsDistributor`          | Genesis/future Community policy, epoch fees, roots, and USDC claims      | initialize policy, credit, finalize, claim                  |
| `CommunityGovernance`                  | Snapshot-based bounded future-policy proposals                           | propose, vote, veto, execute                                |

For Community-enabled guarded launches, `GuardedV3LaunchCoordinator` passes the launch-selected Community share and Staking share to `CommunityRewardsDistributor.initializeGenesisPolicy` after the market is finalized. That policy is active from epoch 1. Later `CommunityGovernance` changes use the separate future-policy scheduling path.

## Example interfaces

```solidity
interface ICommunityVault {
    function stake(address token, uint256 amount) external;
    function unstake(address token, uint256 amount) external;
    function balanceOf(address token, address account) external view returns (uint256);
}
```

```solidity
interface ICommunityRewards {
    function currentEpochId(address token) external view returns (uint64);
    function claim(
        address token,
        uint64 epochId,
        uint256 amount,
        bytes32[] calldata proof
    ) external;
}
```

These snippets explain shape only; use the compiled ABI and the address published for the selected network before integration.

## Access and assumptions

Ordinary token transfers, trading, eligible post-grace launch finalization, and qualifying fee collection are permissionless. Protocol-controlled actions remain constrained by the deployed contracts and cannot override the immutable market rules described in these docs.

State transitions and economic implications are covered in the feature pages. Integrators should use verified source and ABI information for the public network version when those links are available.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.souless.fun/developers/contracts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
