1. The API builds the transaction
When an investor deposits or redeems, or a manager creates a fund, the Starke app asks the API to build the transaction. The API reads the fund’s current state and prices, and returns the transaction unsigned.2. The user’s wallet signs it
The investor’s or manager’s own wallet signs the transaction. That signature is what authorizes it: only the wallet that holds the fund tokens can redeem them, and only the investor can deposit from their wallet. Starke also signs each transaction the app sends, as the fee payer: Starke pays the Solana network fee, so users don’t need SOL to deposit or redeem.3. The app sends it, and the program checks it
The app sends the signed transaction to Solana and waits for the network to confirm it. The fund program then applies the fund’s rules on-chain, and refuses the transaction if one isn’t met. For a deposit, for example, the investor’s wallet must be on the fund’s list of allowed wallets: Starke adds a wallet to that list once its owner has verified their identity (KYC).4. The indexer records it
Once the transaction is confirmed, the indexer reads it from the chain and records it in Starke’s database, and the API’s reads show the new balances and prices. To know when one transaction has been recorded, call:404 until the transaction is recorded, and 200 with its signature after. The Starke app does the same: it asks once a second until it gets a 200, then refreshes its reads.