# emma66886/meterora_permissionless_fee_routing architecture

> Architecture diagram of the GitHub repository emma66886/meterora_permissionless_fee_routing, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/emma66886/meterora_permissionless_fee_routing
- Repository: https://github.com/emma66886/meterora_permissionless_fee_routing

## Overview

This Anchor Solana program is intended to route DAMM V2 quote fees to investors according to Streamflow vesting balances, with a permissionless daily crank and creator remainder. The user-facing flow is vault initialization, honorary-position policy setup, then paged fee distribution and progress tracking. The sampled crank currently simulates fee claiming and locked balances; its Streamflow and DAMM helper calls are not wired into that handler, and investor payouts are not transferred. The graph distinguishes implemented calls from these documented but incomplete integrations.

Main entry points: [`programs/program/src/instructions/crank_distribute_fees.rs`](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/crank_distribute_fees.rs) (Daily distribution crank), [`programs/program/src/helpers.rs`](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/helpers.rs) (Token and fee helpers), [`programs/program/src/lib.rs`](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/lib.rs) (Anchor instructions), [`programs/program/src/instructions/initialize_honorary_position.rs`](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/initialize_honorary_position.rs) (Honorary setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Program entry"]
  node_program["Anchor instructions<br/>[lib.rs]"]
end

subgraph group_setup["Vault setup"]
  node_init_position["Honorary setup"]
  node_init_pdas["Vault PDA setup"]
  node_validation["Quote pool validation<br/>[helpers.rs]"]
  node_state[("Policy and progress<br/>[mod.rs]")]
end

subgraph group_distribution["Fee distribution"]
  node_crank["Daily distribution crank"]
  node_helpers["Token and fee helpers<br/>[helpers.rs]"]
  node_events["Distribution events<br/>[mod.rs]"]
  node_treasury[("Quote treasury")]
end

subgraph group_integrations["External integrations"]
  node_damm{{"DAMM V2"}}
  node_streamflow{{"Streamflow"}}
  node_token_program{{"SPL Token program"}}
end

node_initializer(("Initializer"))
node_cranker(("Permissionless cranker"))
node_creator[("Creator quote account")]

node_initializer -->|"submits setup"| node_program
node_program -->|"dispatches setup"| node_init_position
node_program -->|"dispatches setup"| node_init_pdas
node_init_position -->|"validates pool"| node_validation
node_init_position -->|"initializes state"| node_state
node_init_pdas -->|"initializes PDAs"| node_state
node_cranker -->|"submits crank"| node_program
node_program -->|"dispatches crank"| node_crank
node_crank -->|"reads and updates"| node_state
node_crank -->|"reads balance"| node_treasury
node_crank -->|"calls transfer"| node_helpers
node_helpers -->|"transfers tokens"| node_token_program
node_helpers -->|"sends remainder"| node_creator
node_crank -->|"emits events"| node_events
node_validation -.->|"reads pool layout"| node_damm
node_helpers -.->|"claims fees"| node_damm
node_helpers -.->|"reads stream data"| node_streamflow

click node_program "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/lib.rs"
click node_init_position "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/initialize_honorary_position.rs"
click node_init_pdas "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/initialize_vault_pdas.rs"
click node_validation "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/helpers.rs"
click node_state "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/states/mod.rs"
click node_crank "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/crank_distribute_fees.rs"
click node_helpers "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/helpers.rs"
click node_events "https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/events/mod.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_program toneBlue
class node_init_position,node_init_pdas,node_validation,node_state,node_creator toneAmber
class node_crank,node_helpers,node_events,node_treasury toneMint
class node_damm,node_streamflow,node_token_program toneRose
class node_initializer,node_cranker toneIndigo
```

## Components

### Program entry

- [Anchor instructions](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/lib.rs): `programs/program/src/lib.rs`

### Vault setup

- [Honorary setup](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/initialize_honorary_position.rs): `programs/program/src/instructions/initialize_honorary_position.rs`
- [Vault PDA setup](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/initialize_vault_pdas.rs): `programs/program/src/instructions/initialize_vault_pdas.rs`
- [Quote pool validation](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/helpers.rs): `programs/program/src/helpers.rs`
- [Policy and progress](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/states/mod.rs): `programs/program/src/states/mod.rs`

### Fee distribution

- [Daily distribution crank](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/instructions/crank_distribute_fees.rs): `programs/program/src/instructions/crank_distribute_fees.rs`
- [Token and fee helpers](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/helpers.rs): `programs/program/src/helpers.rs`
- [Distribution events](https://github.com/emma66886/meterora_permissionless_fee_routing/blob/main/programs/program/src/events/mod.rs): `programs/program/src/events/mod.rs`
- **Quote treasury**

### External integrations

- **DAMM V2**
- **Streamflow**
- **SPL Token program**

### Other components

- **Initializer**
- **Permissionless cranker**
- **Creator quote account**

## Connections

- Initializer → Anchor instructions: submits setup
- Anchor instructions → Honorary setup: dispatches setup
- Anchor instructions → Vault PDA setup: dispatches setup
- Honorary setup → Quote pool validation: validates pool
- Honorary setup → Policy and progress: initializes state
- Vault PDA setup → Policy and progress: initializes PDAs
- Permissionless cranker → Anchor instructions: submits crank
- Anchor instructions → Daily distribution crank: dispatches crank
- Daily distribution crank → Policy and progress: reads and updates
- Daily distribution crank → Quote treasury: reads balance
- Daily distribution crank → Token and fee helpers: calls transfer
- Token and fee helpers → SPL Token program: transfers tokens
- Token and fee helpers → Creator quote account: sends remainder
- Daily distribution crank → Distribution events: emits events
- Quote pool validation → DAMM V2: reads pool layout
- Token and fee helpers → DAMM V2: claims fees
- Token and fee helpers → Streamflow: reads stream data
