This guide documents the minimum path to build, deploy, and smoke-test the Access Layer contracts on Stellar testnet.
It is intentionally lightweight. Use it for contributor validation, review environments, and Wave work before any mainnet discussion.
Before deploying, make sure the machine running the release checks has:
- Rust stable installed
rustfmtandclippycomponents installed- the
wasm32v1-nonetarget installed - the
stellarCLI installed and available onPATH - a funded Stellar testnet identity available in the local CLI config
This repository currently assumes:
- Rust workspace tooling from
rust-toolchain.toml - Soroban SDK
22.0.0fromCargo.toml - a deployable contract crate at
creator-keys
If your local stellar CLI or RPC environment differs, verify the command flags with stellar --help before deploying.
Install the Rust target used by Soroban contracts:
rustup target add wasm32v1-noneCreate a local testnet identity and fund it:
stellar keys generate accesslayer-testnet --network testnet --fundIf you already have an identity, funding it again is usually enough:
stellar keys fund accesslayer-testnet --network testnetRun the normal repository checks first:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspaceBuild the contract wasm artifact from the repo root:
stellar contract build --package creator-keysExpected artifact:
target/wasm32v1-none/release/creator_keys.wasm
This path is a local build output only. After you build, copy the wasm to team-controlled storage with a clear name and recorded metadata; see deploy-artifacts.md.
Deploy the built wasm and save a local alias for follow-up calls:
stellar contract deploy \
--network testnet \
--source accesslayer-testnet \
--alias creator-keys-testnet \
--wasm target/wasm32v1-none/release/creator_keys.wasmRecord the returned contract ID in the pull request or release notes for reviewers.
After deployment, confirm the contract can accept a state-changing call and a read call.
Register a creator profile:
CREATOR_ADDRESS="$(stellar keys public-key accesslayer-testnet)"
stellar contract invoke \
--network testnet \
--source accesslayer-testnet \
--id creator-keys-testnet \
--send=yes \
-- register_creator \
--creator "$CREATOR_ADDRESS" \
--handle "wave-test"Read the stored creator profile back:
stellar contract invoke \
--network testnet \
--source accesslayer-testnet \
--id creator-keys-testnet \
--send=no \
-- get_creator \
--creator "$CREATOR_ADDRESS"If the second command returns a populated profile with supply: 0, the deployment is working at the minimum expected level for this repository.
Use the short actionable checklist in testnet-release-checklist.md for shared review or testnet rollout validation.
At minimum, always capture:
- built wasm artifact path and checksum,
- deployed contract ID,
- smoke-test results for register/read calls.