Before you start
What an anchor or custodial app needs in place, and who does what, before it publishes its first coverage record.
An institution needs five things in place before it sets up Solva: a Stellar account, a reserve source, an export of customer balances, a passkey and an owner for each part of the work. Work through this list once per institution.
Solva runs on Stellar Testnet, and on Mainnet Coming soon.
What you need
| You need | What it is for | Today |
|---|---|---|
| A Stellar account | Your issuing or treasury account. Its home domain serves your stellar.toml, where you link your record. | Any account you control. On Testnet, Friendbot funds accounts for free. |
| A reserve source | The place your reserve figures come from. | A custodian that signs each balance it reports. Reserves held on Stellar are read on chain. |
| An export of customer balances | What you owe each customer, as one balance per customer. | Up to 8 customer balances per proof. Larger proofs Coming soon lift the limit. |
| A passkey on a device | Signs you in to the console and controls your institution's wallet. | A device with Face ID, Touch ID, Windows Hello or a similar built-in authenticator, in a browser over https. |
| The right people | Each part has an owner. See Who does what. | One signed-in owner per institution in the console. |
A reserve source
Solva reads reserves from one of two kinds of reserve source:
- Attested. A custodian's service signs each balance it reports. Ask your custodian if it can sign balance statements with a P-256 (secp256r1) key.
- Read on chain. For reserves held in Stellar accounts, the orchestrator reads each balance from the ledger, with no custodian in the path. List the accounts and the asset they hold.
The settings for both are in Connect a reserve source.
An export of customer balances
The export has one row per customer, with your own reference for that customer and the balance you owe them. Balances are whole numbers in the smallest unit of the asset, such as cents. Reserve figures use the same unit. The format is in Load what is owed.
Who does what
| Role | Owns |
|---|---|
| Operations | Runs and schedules cycles. Watches each result and starts the response when coverage drops. |
| Finance | Owns the reserve figures and the customer balance export. Reconciles the two before each cycle. |
| Compliance | Submits the business details (KYB). Reviewed KYB Coming soon follows. Explains a drop in coverage to holders and partners. Owns the public record link. |
| Engineer | Provisions the registry, configures the reserve source and the schedule, and holds the API token. |
The console signs in one owner per institution. Team roles Coming soon (owner, compliance, operator and viewer) give each person only the actions their role needs.
Limits to plan for
| Limit | Value today |
|---|---|
| Customer balances per proof | 8 |
| Reserve figures per proof | 4 |
| Largest single balance | 18,446,744,073,709,551,615 minor units (an unsigned 64-bit integer) |
| Reserve growth between cycles | At most 10 percent. The proof requires 10 × R <= 11 × R_prev. |
| Network | Stellar Testnet |
Check you are ready
stellar.toml.Confirm with your custodian that it signs balance statements, and get its public key as a PEM file. For reserves on Stellar, list the account addresses and the asset code and issuer.
Produce a test export of customer balances in minor units, and check the total against your books.
Result
You have everything setup asks for.
Next: Set up your institution.