Skip to Content
DocumentationDeployment

Deployment

Environment variables

VariableRequiredDefaultDescription
PII_MASTER_KEYYes32+ byte key for PII encryption
VASP_DIDNodid:web:vasp.example.comThis VASP’s DID
CIRCUIT_ARTIFACTS_DIRNo./artifactsPath to compiled artifacts
CORS_ALLOWED_ORIGINSNohttp://localhost:3000Comma-separated origins
DEPLOYER_PRIVATE_KEYFor deployWallet private key
SEPOLIA_RPC_URLFor deploySepolia RPC endpoint
SIWE_DOMAINNolocalhostSIWE domain
CHAIN_IDNo11155111EVM chain ID
HKDF_SALTNozk-travel-rule-v1Salt for HKDF key derivation. Set explicitly for production.
COMPLIANCE_REGISTRY_ADDRESSFor on-chainDeployed ComplianceRegistry address (used for domain binding)

Startup validation

The server validates at startup:

  1. PII_MASTER_KEY entropy — must be ≥32 bytes
  2. Verification key — must exist in artifacts directory
  3. CORS configuration — rejects * wildcard with credentials

Infrastructure

Minimum: 2 vCPUs, 4 GB RAM, Python 3.11+, Node.js 20+

Recommended: 4 vCPUs, 8 GB RAM, SSD storage

CI/CD

JobDescription
python-tests~100 pytest tests
typescript-buildType-check proof SDK and CLI
hardhat-tests26 contract tests
circuitsCircom compilation + constraint check

Daily: sanctions-update rebuilds the tree and opens a PR.

Make targets

make install && npm install # Install Python + Node dependencies make dev # Start API dev server make test # Run all tests make build-sanctions-tree # Rebuild sanctions tree make update-sanctions-oracle NETWORK=sepolia make benchmark # Proof latency benchmark