cargo install --locked stellar-cli
rustup target add wasm32v1-none
stellar keys generate questboard-deployer --network testnet --fundstellar contract build
# → target/wasm32v1-none/release/quest_escrow.wasmThe WASM must target wasm32v1-none. The plain cargo build --target wasm32-unknown-unknown output enables reference-types the network rejects — use
stellar contract build (or the make contract-build target).
stellar contract deploy \
--wasm target/wasm32v1-none/release/quest_escrow.wasm \
--source questboard-deployer --network testnet --alias quest_escrow
# → prints the contract id (C...)The current testnet deployment is
CBKESO2WG5QWS2GJN7CBUCUQA7JGWGI3YG3BUAPUKAPLMWWSHPNAEBFY.
make bindings CONTRACT_ID=<new-id> NETWORK=testnet
pnpm build:clientSet the contract id in the web app:
# web/.env.local
NEXT_PUBLIC_CONTRACT_ID=<new-id>
NEXT_PUBLIC_RPC_URL=https://soroban-testnet.stellar.org
NEXT_PUBLIC_TOKEN=<reward-token-sac>
stellar contract invoke --id <new-id> --source questboard-deployer \
--network testnet -- quest_count # expect 0 on a fresh deployRepeat with --network mainnet and a funded mainnet identity. Audit the
contract and pin the reward token list before mainnet use.