Skip to main content
Version: v4

VS Agent environment variables

The agent is configured entirely through environment variables, read once at startup. Startup fails on an invalid value. Source: specification section VSA-VTI-CFG-ENV.

Identity and corporation​

VariableRequiredMeaning
VERANA_CORPORATION_IDyesId of the corporation the agent acts for. The agent is one of its VS operators.
VERANA_ACCOUNT_MNEMONICyesBIP-39 mnemonic of the agent's own account on the network. This account signs the transactions the corporation has authorized it for. Keep it secret.

Network​

VariableRequiredMeaning
VERANA_RPC_ENDPOINT_URLyesRPC of a Verana node, for example https://rpc.testnet.verana.network. Used to broadcast transactions.
VERANA_INDEXER_BASE_URLyesIndexer API, for example https://idx.testnet.verana.network. The agent reads all chain state from the indexer, never from the node.
VERANA_CHAIN_IDnoChain id, for example vna-testnet-1.
VERANA_INDEXER_SUBSCRIPTION_SCOPEnodid (default) subscribes to events about the agent's DID only; corporation subscribes to every event of the corporation.
VERANA_INDEXER_DEFAULT_HANDLERS_OVERRIDEnoComma-separated indexer event types whose built-in reaction is disabled, or *. The backend still receives them as vpr.notification events and reacts itself.
VERANA_GAS_ADJUSTMENTnoMultiplier applied to simulated gas. Default 1.5. Raise it on out of gas after a successful simulation.

Agent mode​

VariableRequiredMeaning
AGENT_MODEnostandalone (default): the agent obtains its own ECS Organization or Persona credential and issues its own Service credential. delegated: a parent Verifiable Service issues this agent's Service credential and carries the Organization or Persona credential.
AGENT_DELEGATED_PARENT_VS_DIDwhen delegatedDID of the parent Verifiable Service.
TRUSTED_ECS_ECOSYSTEM_DIDSwhen standaloneComma-separated DIDs of the ECS ecosystems the agent trusts for essential schemas.

ECS credential claims​

The claims the agent proposes for its own ECS credentials. The id claim and every *DigestSri claim are derived by the agent: it fetches each paired URI and computes the digest. A URI that cannot be fetched stops the flow with an error naming the variable.

VariableClaimWhen read
ECS_CLAIMS_ORG_NAME, ECS_CLAIMS_ORG_LOGO_URI, ECS_CLAIMS_ORG_REGISTRY_ID, ECS_CLAIMS_ORG_REGISTRY_URI, ECS_CLAIMS_ORG_ADDRESS, ECS_CLAIMS_ORG_COUNTRY_CODE, ECS_CLAIMS_ORG_LEGAL_JURISDICTION, ECS_CLAIMS_ORG_ORGANIZATION_KIND, ECS_CLAIMS_ORG_LEIECS Organization name, logoUri, registryId, registryUri, address, countryCode, legalJurisdiction, organizationKind, leiStandalone mode, and self-issuance
ECS_CLAIMS_PERSONA_NAME, ECS_CLAIMS_PERSONA_DESCRIPTION, ECS_CLAIMS_PERSONA_DESCRIPTION_FORMAT, ECS_CLAIMS_PERSONA_AVATAR_URI, ECS_CLAIMS_PERSONA_CONTROLLER_COUNTRY_CODE, ECS_CLAIMS_PERSONA_CONTROLLER_JURISDICTIONECS Persona name, description, descriptionFormat, avatarUri, controllerCountryCode, controllerJurisdictionStandalone mode, and self-issuance
ECS_CLAIMS_SERVICE_NAME, ECS_CLAIMS_SERVICE_TYPE, ECS_CLAIMS_SERVICE_DESCRIPTION, ECS_CLAIMS_SERVICE_LOGO_URI, ECS_CLAIMS_SERVICE_MINIMUM_AGE_REQUIRED, ECS_CLAIMS_SERVICE_TERMS_AND_CONDITIONS_URI, ECS_CLAIMS_SERVICE_PRIVACY_POLICY_URIECS Service name, type, description, logoUri, minimumAgeRequired, termsAndConditionsUri, privacyPolicyUri. All required in standalone mode.Standalone mode
ECS_CLAIMS_SERVICE_DESCRIPTION_FORMATECS Service descriptionFormat (text/plain or text/markdown)Optional

The agent can serve placeholder resources for a logo, terms and privacy policy at /vt/default/logo.svg, /vt/default/terms.html and /vt/default/privacy.html, so a first deployment can point the URI variables at itself.

Runtime​

VariableRequiredMeaning
PUBLIC_API_BASE_URLyesPublic https:// base URL where peers reach the agent. The DID is derived from it, so it must not change after first start. A base path is allowed; credentials in the URL are rejected.
PUBLIC_API_PORTnoPort of the public listener inside the container. Default 3001.
AGENT_PUBLIC_DID_METHODnowebvh (default) or web. Chosen once, at first start.
MRTD_MASTER_LIST_CSCA_LOCATIONnoPath or https:// URL of the CSCA master list for the MRTD module (passport reading).

Administration API​

VariableRequiredMeaning
ADMIN_API_PORTnoPort of the admin listener. Default 3000. Must differ from the public port.
ADMIN_API_AUTH_MODEnointernal (default): only trusted networks may call. corporation: external callers authenticate with an account signature.
ADMIN_API_TRUSTED_NETWORKSnoCIDR blocks served without authentication. Default 127.0.0.0/8,::1/128. Keep the address of any public ingress out of this list.
ADMIN_API_PUBLIC_URLwhen corporation modePublic origin of the Admin API. Also published in the DID Document as a VsAgentAdminAPI service entry.
ADMIN_API_CORPORATION_ALLOWED_ACCOUNTSwhen corporation modeAccount addresses allowed to call from outside. This allowlist is the whole authorization model for external callers.

Events​

VariableRequiredMeaning
EVENTS_WEBHOOK_URLnoWebhook that receives every event by HTTP POST. Unset means no events. See Events.
EVENTS_WEBHOOK_API_KEYnoSent as Authorization: Bearer on every delivery.

OpenID4VC​

VariableRequiredMeaning
OID4VC_CONFIG_FILE_LOCATIONnoPath or https:// URL of the OpenID4VC configuration file. Setting it enables both the issuer and the verifier capability and their public endpoints; unset means no OpenID4VC.

The file is JSON and every key is optional, so {} is valid. It holds what the agent cannot derive: the signing mode of each capability and the X.509 roots of wallet and key attestations.

{
"issuer": {
"signing": { "configured": { "certificateChain": ["..."], "privateJwk": { } } },
"walletAttestationCertificates": [],
"keyAttestationCertificates": []
},
"verifier": {
"signing": { }
}
}

With signing absent, the agent generates a self-signed P-256 certificate per capability and publishes its key in the DID Document. That is development signing, not for production. With signing.configured, the operator supplies the certificate chain (leaf first, carrying the agent DID as a URI SAN) and the private key, and publishes the key in the DID Document before startup.

Logging​

VariableDefaultValues
AGENT_LOG_LEVELwarntrace, debug, info, warn, error, off
ADMIN_API_LOG_LEVELinfosame