Get up and running with AnchorKit on Stellar testnet in minutes.
- Rust toolchain (
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) - Soroban CLI (
cargo install --locked soroban-cli)
cargo build --releaseThe fastest way to get started is with the minimal reference config:
cp configs/testnet-example.json configs/my-anchor.jsonOpen configs/my-anchor.json and replace the placeholder values:
| Field | What to change |
|---|---|
contract.name |
Your anchor name (lowercase, hyphens only) |
attestors[0].address |
Your attestor's Stellar public key (starts with G) |
attestors[0].endpoint |
Your attestor's HTTPS endpoint URL |
cargo run --bin anchorkit -- validate configs/my-anchor.jsonExpected output:
✔ configs/my-anchor.json: valid JSON
For strict schema validation (field lengths, patterns, enums):
python validate_config.pycargo run --bin anchorkit -- doctorcargo run --bin anchorkit -- register \
--address GYOUR_ATTESTOR_ADDRESS_HERE \
--services deposits,withdrawals,kyc \
--endpoint https://your-anchor.example.comThe minimal config only requires two top-level sections:
{
"contract": {
"name": "my-anchor", // lowercase alphanumeric + hyphens
"version": "1.0.0", // semver
"network": "stellar-testnet" // stellar-testnet | stellar-mainnet | stellar-futurenet
},
"attestors": {
"registry": [
{
"name": "kyc-provider",
"address": "G...", // 56-char Stellar public key
"endpoint": "https://...",
"role": "kyc-issuer", // see valid roles below
"enabled": true
}
]
}
}Valid attestor roles: kyc-issuer, transfer-verifier, compliance-approver, rate-provider, attestor
See configs/testnet-example.json for the annotated minimal config, or the more complete examples:
configs/fiat-on-off-ramp.json— fiat deposit/withdrawal with KYCconfigs/remittance-anchor.json— cross-border remittance with AMLconfigs/stablecoin-issuer.json— stablecoin issuance with reserve audits