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

# Architecture

> The parts of Starke's platform, and where the API's data comes from.

Starke's funds live on Solana. Everything else reads from the chain or helps a user write to it. The picture shows the platform in five layers, from the people who use it down to the Solana ecosystem; the sections below describe the four parts Starke runs.

![Starke's platform in five layers: people, interfaces, Starke services, Starke programs on Solana and the Solana ecosystem, with arrows for who uses, signs, sends, records and reads what.](https://mintcdn.com/starkefinance/d6RNKILsCMDLvLBg/images/developers/architecture-light.svg?fit=max\&auto=format\&n=d6RNKILsCMDLvLBg\&q=85\&s=30f6c12a1a2c2650f8e81ae47a62939b)

## The on-chain programs

* **The fund program** holds each fund's assets in accounts that the program controls, not any person. It issues fund tokens when an investor deposits, burns them when the investor redeems, and calculates the fund token's price on-chain. It also checks, on-chain, which wallets may deposit into each fund.
* **The transfer hook** runs on every transfer of a fund token. It refuses the transfer unless the fund allows transfers.

Because the funds are on-chain, every fund's holdings, tokens and transactions can be checked on Solana, independently of Starke.

## The indexer

The indexer reads every transaction of the fund program from Solana, decodes it, and records the result in Starke's database: the funds, their transactions, the changes to their tokens and assets, and their prices over time.

## The API

The API serves reads from that database: the [public reference](https://docs.starke.finance/api-reference/authentication.md) lists them. It also builds the transactions that the Starke app asks its users to sign (see [Transaction model](https://docs.starke.finance/developers/transaction-model.md)); those operations aren't public yet.

## The app

The Starke app, at [app.starke.finance](https://app.starke.finance), is where investors and fund managers sign in, verify their identity, and deposit, redeem or manage a fund. It uses the same API.

## What this means for your integration

* **The chain is the record; the API is a view of it.** A transaction shows in the API's reads once the indexer has recorded it, a short time after the chain confirms it. To know when that has happened for one transaction, call `GET /v1/transactions/{signature}` ([Transaction model](https://docs.starke.finance/developers/transaction-model.md)).
* **Fund addresses are Solana addresses.** The `ids` and `id` parameters take the fund's account address, the same one the Starke app shows in a fund page's URL.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.