Real World Assets on Stellar. Invoice financing for emerging markets.
Astera lets SMEs tokenize unpaid invoices as Soroban-based RWA tokens. Community investors fund a USDC liquidity pool. Smart contracts handle escrow, repayment, and yield distribution. Every paid invoice builds an on-chain credit history.
contracts/
invoice/ — RWA invoice token contract (Soroban/Rust)
pool/ — Liquidity pool + yield distribution (Soroban/Rust)
frontend/ — Next.js 14 app (Freighter wallet, Stellar SDK)
create_invoice— SME mints an invoice token with amount, debtor, due datemark_funded— Called by pool when invoice is fundedmark_paid— SME or pool marks invoice as repaidmark_defaulted— Pool flags missed repayment
initialize— Sets admin, first accepted stablecoin (initial_token), and invoice contractadd_token/remove_token— Admin maintains a whitelist of accepted stablecoin SAC addressesdeposit— Investor deposits a whitelisted stablecoin into the pool (positions are per token)init_co_funding— Admin opens an invoice for co-funding in a specific stablecoincommit_to_invoice— Investors commit available balance in that invoice’s token until the principal target is metrepay_invoice— SME repays principal + simple interest (8% APY default) in the same token the invoice was funded withwithdraw— Investor withdraws available (undeployed) balance in the chosen token
Start with the guide that matches how you want to work:
- Local Development with Docker Compose
- Windows/WSL2 Setup Guide
- Testnet Deployment Guide
- Smart Contract Interaction Guide
We provide a Docker Compose workflow for the Stellar local network, the Next.js frontend, a contracts development shell, mock services, and the optional local indexer.
docker compose up --buildAfter the stack is ready:
- Frontend is available at http://localhost:3000
- Stellar Horizon/RPC is available at http://localhost:8000
- Mock Services are available at http://localhost:4000
Read the full local development guide before the first run. It explains the required frontend env file, manual contract workflow, common failures, and reset commands.
If you are on Windows, we strongly recommend using WSL2. See our Windows/WSL2 Setup Guide for details.
- Rust + Cargo
- Stellar CLI
- Node.js 20+
- Freighter wallet browser extension
cd astera
cargo build --target wasm32-unknown-unknown --release# Fund a testnet account
stellar keys generate --global deployer --network testnet
stellar keys fund deployer --network testnet
# Deploy invoice contract
stellar contract deploy \
--wasm target/wasm32-unknown-unknown/release/invoice.wasm \
--source deployer \
--network testnet
# Deploy pool contract
stellar contract deploy \
--wasm target/wasm32-unknown-unknown/release/pool.wasm \
--source deployer \
--network testnet# Initialize invoice contract
stellar contract invoke \
--id <INVOICE_CONTRACT_ID> \
--source deployer \
--network testnet \
-- initialize \
--admin <YOUR_ADDRESS> \
--pool <POOL_CONTRACT_ID>
# Initialize pool contract
stellar contract invoke \
--id <POOL_CONTRACT_ID> \
--source deployer \
--network testnet \
-- initialize \
--admin <YOUR_ADDRESS> \
--usdc_token <USDC_TOKEN_ID> \
--invoice_contract <INVOICE_CONTRACT_ID>cd frontend
cp .env.example .env.local
# Fill in contract IDs in .env.local
npm install
npm run devOpen http://localhost:3000.
- Connect Freighter wallet
- Go to New Invoice — fill debtor, amount, due date
- Sign transaction — invoice minted on Stellar
- Monitor status on Dashboard — see funding, credit score
- When customer pays, call
repay_invoiceto settle
- Connect Freighter wallet
- Go to Invest — choose a whitelisted stablecoin and deposit into the pool
- Pool admin deploys liquidity to approved invoices
- When invoices are repaid, yield accumulates in the pool
- Withdraw available balance anytime
Use the Stellar testnet USDC asset or deploy a mock token:
stellar contract invoke \
--id <TOKEN_ID> \
--source deployer \
--network testnet \
-- mint \
--to <YOUR_ADDRESS> \
--amount 1000000000000Deploy your own instance of the Astera frontend with one click:
For detailed instructions on various hosting options, see the Frontend Deployment Guide.
For development and testing, see the Testnet Deployment Guide for step-by-step instructions.
For production deployment, see the comprehensive Mainnet Deployment Guide which includes:
- Pre-deployment security checklist
- Contract verification procedures
- Monitoring and alerting setup
- Rollback and emergency procedures
- Post-deployment verification steps
For upgrade runbooks and migration safety checks, see the Contract Upgrade Guide.
For safely testing contract upgrades before deployment, see the Upgrade Dry-Run Guide.
- RPC: https://soroban-testnet.stellar.org
- Horizon: https://horizon-testnet.stellar.org
- Explorer: https://stellar.expert/explorer/testnet
- RPC: https://soroban-mainnet.stellar.org
- Horizon: https://horizon.stellar.org
- Explorer: https://stellar.expert/explorer/public
The contracts.yml workflow runs on every push
to main and on every pull request targeting main. It:
- Installs Rust stable with the
wasm32-unknown-unknowntarget - Caches
~/.cargo/registryandtarget/viaSwatinem/rust-cache - Builds the workspace with
cargo build --target wasm32-unknown-unknown --release - Runs
cargo testfor each contract (invoice,pool,credit_score)
Branch protection for main should be configured so that:
- Pull requests cannot be merged unless the
Build & test Soroban contractscheck passes. - Direct pushes to
mainare disabled (PRs only).
To apply, in GitHub: Settings → Branches → Branch protection rules → Add rule for
main, enable Require status checks to pass before merging, and select
Build & test Soroban contracts from the list of checks.
We welcome contributions from developers of all experience levels! Whether you're fixing bugs, improving documentation, adding features, or participating in the Wave Program, your work helps advance tokenized RWA solutions on Stellar.
Getting started:
- Read our CONTRIBUTING.md for a complete guide on how to set up your environment, run tests, and submit pull requests
- Check out good first issue labels for beginner-friendly tasks
- See the security checklist before submitting smart contract changes
For more details on issue labels, workflow, and coding standards, please refer to CONTRIBUTING.md.
- Task: Add SME onboarding verification — prevent duplicate SME accounts
- Reward: $10
- Source: GitHub-Paid
- Date: 2026-04-27