Skip to content

Repository files navigation

contracts-acta-spikes

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.

Structure

  • contracts/ - Individual contract implementations
    • vc-issuer-registry - 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 proposal lifecycle
    • credential-escrow - Conditional token escrow released against verified credentials
    • vc-supply-chain-provenance - Append-only custody chain with terminal sealing
    • vc-health-license-registry - Professional licenses with derived status (expiry, suspension, revocation)
  • docs/ - Documentation and specifications
  • scripts/ - Build and deployment utilities

Contracts

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

Building

Build a single contract or all contracts in the workspace:

./scripts/build.sh vc-issuer-registry
./scripts/build.sh                # build all contracts

The 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+)

Deploying

./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_deployer

The CONTRACT_ADMIN environment variable can be used to override the admin address for contract initialization (defaults to the source account address).

Release

Build and deploy all contracts to testnet:

./scripts/release.sh

Or deploy a specific contract:

./scripts/release.sh vc-issuer-registry

Testing

cargo test

License

Licensed under the MIT License.

About

Experimental Stellar smart contracts for Verifiable Credentials..

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages