Experimental implementations and explorations for smart contracts on Stellar.
This repository contains various contract implementations, proof-of-concepts, and research work exploring different approaches to on-chain systems.
contracts/- Individual contract implementationsvc-issuer-registry- Allowlist and metadata registry for VC issuersvc-revocation-registry- Revocation status tracking for credentialsvc-schema-registry- On-chain registry for Verifiable Credential schema definitionscredential-gated-dao- Credential-weighted governance with proposal lifecyclecredential-escrow- Conditional token escrow released against verified credentialsvc-supply-chain-provenance- Append-only custody chain with terminal sealingvc-health-license-registry- Professional licenses with derived status (expiry, suspension, revocation)
docs/- Documentation and specificationsscripts/- Build and deployment utilities
| Contract | Description |
|---|---|
vc-issuer-registry |
On-chain allowlist and metadata registry for VC issuers |
vc-revocation-registry |
Revocation status tracking for credentials |
vc-schema-registry |
On-chain registry for Verifiable Credential schema definitions |
credential-gated-dao |
Credential-weighted governance with bounded proposal voting |
credential-escrow |
Conditional token escrow with credential-gated release and deadline refund |
vc-supply-chain-provenance |
Append-only supply-chain custody chain with terminal sealing and revocation checks |
vc-health-license-registry |
Professional license registry with derived status from expiry, suspension, and revocation |
Build a single contract or all contracts in the workspace:
./scripts/build.sh vc-issuer-registry
./scripts/build.sh # build all contractsThe script derives the list of contracts from contracts/*/, so adding a new
contract directory requires no script changes.
Target triple: wasm32v1-none (soroban-sdk 27 does not support
wasm32-unknown-unknown on Rust 1.82+)
./scripts/deploy.sh <contract> <network> <source-account>Examples:
./scripts/deploy.sh vc-issuer-registry testnet acta_deployer
./scripts/deploy.sh vc-schema-registry testnet acta_deployerThe CONTRACT_ADMIN environment variable can be used to override the admin
address for contract initialization (defaults to the source account address).
Build and deploy all contracts to testnet:
./scripts/release.shOr deploy a specific contract:
./scripts/release.sh vc-issuer-registrycargo testLicensed under the MIT License.