Public Blockfrost prerequisites forbid the mnemonic and VDR key the driver requires
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 74/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- documentation
Research direction
Start with documentation/develop/cloud-agent/environment-variables.md at lines 68, 99, 107, and 109, then compare the prerequisites with the pinned cloud-agent AppConfig.scala and BlockfrostPrismDriverProvider.scala referenced in the issue. Update the environment reference to match both NeoPRISM enabling paths and the PRISM signing requirements, including the private-network/API-key exclusion. Done when each statement matches the configuration and provider behavior without requiring live credentials or services.
Written by the indexing model from the issue text.
Description
User impact
The environment reference tells operators using a public Blockfrost API key to leave VDR_PRISM_DRIVER_WALLET_MNEMONIC and VDR_PRISM_DRIVER_VDR_PRIVATE_KEY unset. Both are mandatory in the pinned configuration and are consumed on exactly the public-API-key branch, so an operator who follows the table cannot configure a public-Blockfrost PRISM VDR consistently: omitting them leaves required configuration absent, and supplying them contradicts the reference. vdr.md on the same portal requires both values for both network modes, so the two pages disagree. A related row also understates when NEOPRISM_BASE_URL matters.
Affected documentation and ownership
- Page: https://identus.io/documentation/develop/cloud-agent/environment-variables/ — GET 200 after trailing-slash resolution,
Last-Modified: Tue, 27 Oct 2026 12:51:14 GMT, observed 2026-10-29T10:22Z. - Documentation source: environment-variables.md lines 107 and 109, plus line 68 and line 99, revision
fa985dfa33caefa45bf1e9009e1f6f5a445344fb. - Editable owning source: the same Markdown file (ordinary committed source, not generated).
- Intended component version: Identus Cloud Agent
2.2.1-SNAPSHOT. The docs revision pins itscloud-agentsubmodule ateee1ff7, whoseversion.sbtandapplication.confare identical to the comparison revision24faccbelow; thecomparecontains only CI-workflow and client-generator lockfile changes. These unversioned pages document that main configuration.
Observed versus expected
Documented rows:
107: | VDR_PRISM_DRIVER_VDR_PRIVATE_KEY | VDR private key for the Prism driver. Must not be present if Blockfrost API key is provided. |
109: | VDR_PRISM_DRIVER_WALLET_MNEMONIC | Wallet mnemonic phrase for DID configuration in the Prism driver. Must not be present if Blockfrost API key is provided. |
Pinned code:
PrismDriverVdrConfigdeclareswalletMnemonic: StringandvdrPrivateKey: String(notOption); itsvalidateonly rejectsblockfrostApiKeytogether withprivateNetwork— the two network options, nothing about the signing fields.BlockfrostPrismDriverProviderbuildsCardanoWalletConfig(config.walletMnemonic)andSecp256k1PrivateKey(config.vdrPrivateKey)after the network branch, i.e. also forSome(apiKey)/public Blockfrost.application.confsupplies no literal default for either variable (lines 348–351), so "not present" is not a supported state.- The same portal's
vdr.mdPRISM Driver section marks both variables✅ Yesfor the public-Blockfrost example, which is the correct requirement.
Related row: NEOPRISM_BASE_URL (line 68) says "Only required when NODE_BACKEND is set to neoprism", while VDR_NEOPRISM_DRIVER_ENABLED (line 99) requires it to be configured and the NeoPRISM VDR client is built independently of the DID node backend (Modules.scala#L185-L189, consuming didNode.neoprism.baseUrl at Modules.scala#L216-L229). Note that application.conf also supplies the default http://localhost:8080 (line 16), so the requirement is about the effective endpoint, not about the variable always being set. The same wording appears in node-backend.md line 47; this issue covers the environment-reference rows, and the node-backend wording is reported separately so both files can be repaired consistently.
Expected: prerequisite statements match the typed configuration and every code path that consumes the values.
Evidence and reproduction
Static comparison at the revisions above, observed 2026-10-29:
gh api repos/hyperledger-identus/docs/contents/documentation/develop/cloud-agent/environment-variables.md \
-q .content | base64 -d | sed -n '68p;99p;107p;109p'
grep -rn "walletMnemonic\|vdrPrivateKey" --include=*.scala .
grep -n "VDR_PRISM_DRIVER_WALLET_MNEMONIC\|VDR_PRISM_DRIVER_VDR_PRIVATE_KEY\|NEOPRISM_BASE_URL" \
cloud-agent/service/server/src/main/resources/application.conf
Limitations: static inspection only. No agent, ledger or Blockfrost service was contacted, and no mnemonic or private key was used; the contradiction is established from the configuration schema and the provider code, not from a live start.
Existing work checked
GitHub issue/PR search across hyperledger-identus/docs and hyperledger-identus/cloud-agent, open and closed (2026-10-29):
VDR_PRISM_DRIVER_WALLET_MNEMONIC→ 0 results;VDR_PRISM_DRIVER_VDR_PRIVATE_KEY→ 0 results;NEOPRISM_BASE_URL→ 0 results;Blockfrost configuration→ 0 results indocs.VDR driverindocs→ docs#230 (open milestone checklist, no prerequisite wording), docs#247 (merged: added the VDR driver documentation), docs#241, docs#228 (closed). None covers the Blockfrost signing prerequisites.
Acceptance criteria
- The public/private Blockfrost prerequisites no longer forbid fields the driver requires, and the private-network/API-key mutual exclusion is stated accurately.
- The
NEOPRISM_BASE_URLrequirement reflects both enabling paths (DID node backend and independently enabled NeoPRISM VDR) and the existing default. - Verification: corrected statements traceable to the same revision's
AppConfig/provider code, without requiring real mnemonics, private keys or ledger operations.
- Dominant language
- TypeScript
- Stars
- 15
- Forks
- 8
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 2
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from hyperledger-identus/docs
-
bug documentation
Difficulty 1/5 Under an hour Newbie friendliness 85/100
hyperledger-identus/docs#303 ·
-
bug documentation
Difficulty 1/5 Under an hour Newbie friendliness 88/100
hyperledger-identus/docs#302 ·
-
bug documentation
Difficulty 1/5 Under an hour Newbie friendliness 88/100
hyperledger-identus/docs#301 ·
-
bug documentation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
hyperledger-identus/docs#299 ·
-
bug documentation
Difficulty 1/5 1-3 hours Newbie friendliness 84/100
hyperledger-identus/docs#297 ·
All issues in hyperledger-identus/docs
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
better-auth/better-auth#12132 · 1 reaction ·
Maintainers usually reply within 1 day
-
o8 next debug build aborts on Glass to Dark appearance switch (nil identifier messaged before check)Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
hurttlocker/o8#5112 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
webrecorder/wabac.js#386 ·
-
needs-triage
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
agent-of-empires/agent-of-empires#5098 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day