Policy-version pinning
Every approved action carries the policy version it was approved under. A later policy change invalidates that approval instead of silently reinterpreting it.
Policy-enforced payments, approvals, and recovery — enforced onchain by Soroban contracts instead of manual wallet operations.
The Smart Treasury Account (STA) is a programmable treasury wallet built on Stellar and Soroban. It holds Stellar Asset Contract balances and enforces policy on payments, approvals, automation, and recovery through smart contracts.
This site is the technical documentation for the system: what each contract does, what every entrypoint expects, what the errors and events mean, which guarantees the system makes, how to run the test suite that proves them, where the testnet and mainnet deployments live, how to operate a treasury from the production dApp, and how to integrate from TypeScript with the SDK.
It is written for developers integrating with the contracts, reviewers verifying the guarantees, and operators running a treasury.
| If you want to | Read |
|---|---|
| Understand how the contracts fit together | Contract architecture |
| Call the policy layer | PolicyEngine reference |
| Verify the security claims | Security guarantees |
| Run the tests yourself | Running the tests |
| Find the mainnet addresses and hashes | Mainnet deployment |
| Operate a treasury from the dApp | Operator guide |
| Review it end to end, rejections included | Testing support guide |
| Integrate from TypeScript | TypeScript SDK |
| See exactly what is implemented today | Status |
The contract core is being delivered in tranches. Not every module documented in the architecture exists yet, and this site marks clearly which is which rather than describing planned code as though it shipped. See Status for the current picture.