Soroban smart contracts for the ACTA identity and Verifiable Credential infrastructure on Stellar.
Latest release: vc-vault v0.3.0
On-chain registry for the did:stellar decentralized identifier method (v0.1). Stores the authoritative DidRecord for each DID on Stellar, readable directly from RPC without an indexer.
| Function | Description |
|---|---|
register |
Create a new DID |
update |
Replace the full DID record (optimistic concurrency) |
transfer_controller |
Transfer control to a different Stellar account |
deactivate |
Permanently deactivate a DID |
get |
Read-only: return the current DidRecord |
See contracts/did-stellar-registry/README.md for the full ABI, authorization model, and error codes.
Per-holder vault for Verifiable Credentials on Stellar. Manages VC storage, issuance status, revocation, issuer authorization, and fee collection in USDC. Contract admin is set at deploy time via __constructor.
| Category | Functions |
|---|---|
| Admin | nominate_admin, accept_contract_admin, upgrade, version, fee_* |
| Vault | create_vault, create_sponsored_vault, set_vault_admin, authorize_issuer, authorize_issuers, revoke_issuer, revoke_vault, list_authorized_issuers, list_denied_issuers, authorized_issuer_count, denied_issuer_count |
| Credentials | issue, batch_issue, issue_linked, revoke, verify_vc, get_vc, list_vc_ids, vc_count, push |
See contracts/vc-vault/README.md for the full ABI, authorization model, and error codes.
| Contract | Contract ID |
|---|---|
did-stellar-registry |
CB7ATU7SF5QUKJMSULJDJVWJZVDXC23HTZX6NFUDTSFPVT6MA575NNZJ |
vc-vault |
CATL4IDH7XXPDC2UHSEX2GP45PPBVDFSKUDTKCSQICDOJVDLYNKISXFH |
Network: Stellar Testnet (Test SDF Network ; September 2015)
Full deployment record: docs/deployments/testnet.md
# Build a specific contract
./scripts/build.sh vc-vault
./scripts/build.sh did-stellar-registryOutput files:
target/wasm32v1-none/release/<contract>.wasmtarget/wasm32v1-none/release/<contract>.optimized.wasm
# Prerequisites: stellar-cli installed, network configured, key generated
./scripts/deploy.sh <package> <network> <source-account>
# Examples
./scripts/deploy.sh did-stellar-registry testnet acta_deployer
./scripts/deploy.sh vc-vault testnet acta_deployerRecord the resulting contract ID in docs/deployments/<network>.md.
The did:stellar v0.1 method specification lives at docs/did-spec/did-stellar-v0.1.md. It covers:
- DID syntax and identifier generation
- On-chain data model (
DidRecord) - Contract operations and mutation semantics
- DID Document construction rules
- Proof of control protocol
- Normative test vectors
cargo test -p vc-vault-contract # 127 tests
cargo test -p did-stellar-registry # 56 testsLicensed under the Apache License 2.0.