📦

Audit History

openserv-multi-agent-workflows - 3 audits

Version comparison

Capability and finding changes across audited versions, newest first.

VersionDateResultReview itemsChange vs previous
v3 LatestAug 7, 2026, 08:47 AM 3 confirmed0No capability change
v2 Jul 21, 2026, 04:32 AM No confirmed findings0No capability change
v1 Jul 10, 2026, 12:07 AM 30 confirmed100Baseline

Aug 7, 2026, 08:47 AM

The 400 static matches are predominantly documentation noise for template literals, diagrams, documented endpoints, and conventional environment-variable configuration. Two direct wallet-private-key references are confirmed security-sensitive, and the workflow examples also lack verification before assigning work to marketplace agents. Static review was capped at 400/444 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

15
Files scanned
2,904
Lines analyzed
6
Review items
0
False positives ignored

Confirmed security concerns (3)

High
Crypto seed/private key mention
privateKey: process.env.WALLET_PRIVATE_KEY!,
The cited text directly handles a wallet private key for authentication or on-chain registration. Compromise could authorize transactions, so this is a real credential-security risk even though no exfiltration is shown.
High
Crypto seed/private key mention
**If using `workflows.create()` or `workflow.sync()` directly:** Ensure the client was authenticated
The cited text directly handles a wallet private key for authentication or on-chain registration. Compromise could authorize transactions, so this is a real credential-security risk even though no exfiltration is shown.
High
Unverified Marketplace Agent Selection
The workflow examples select the first marketplace search result and assign it user-provided work without showing identity, publisher, capability, permission, or data-handling verification. A malicious or unsuitable agent could receive sensitive inputs or return unsafe content.
The cited workflow explicitly searches the marketplace, takes the first result, and passes its identifier into workflow creation. No trust or capability validation appears in the documented pattern.

Risk Factors

⚙️ External commands (50)
examples/blog-pipeline.md:83-87 examples/blog-pipeline.md:87-88 examples/blog-pipeline.md:88-131 examples/blog-pipeline.md:131-141 examples/blog-pipeline.md:141-142 examples/blog-pipeline.md:142-143 examples/blog-pipeline.md:143-144 examples/blog-pipeline.md:144-145 examples/blog-pipeline.md:145-146 examples/blog-pipeline.md:146-147 examples/blog-pipeline.md:147-148 examples/blog-pipeline.md:148-156 examples/blog-pipeline.md:225-229 examples/content-creation-pipeline.md:84-88 examples/content-creation-pipeline.md:88-89 examples/content-creation-pipeline.md:89-90 examples/content-creation-pipeline.md:90-141 examples/content-creation-pipeline.md:141-151 examples/content-creation-pipeline.md:151-152 examples/content-creation-pipeline.md:152-153 examples/content-creation-pipeline.md:153-154 examples/content-creation-pipeline.md:154-155 examples/content-creation-pipeline.md:155-156 examples/content-creation-pipeline.md:156-157 examples/content-creation-pipeline.md:157-158 examples/content-creation-pipeline.md:158-159 examples/content-creation-pipeline.md:159-160 examples/content-creation-pipeline.md:160-161 examples/content-creation-pipeline.md:161-162 examples/content-creation-pipeline.md:162-170 examples/crypto-alpha-pipeline.md:85-89 examples/crypto-alpha-pipeline.md:89-90 examples/crypto-alpha-pipeline.md:90-91 examples/crypto-alpha-pipeline.md:91-136 examples/crypto-alpha-pipeline.md:136-146 examples/crypto-alpha-pipeline.md:146-147 examples/crypto-alpha-pipeline.md:147-148 examples/crypto-alpha-pipeline.md:148-149 examples/crypto-alpha-pipeline.md:149-150 examples/crypto-alpha-pipeline.md:150-151 examples/crypto-alpha-pipeline.md:151-152 examples/crypto-alpha-pipeline.md:152-153 examples/crypto-alpha-pipeline.md:153-161 examples/life-coaching-pipeline.md:96-100 examples/life-coaching-pipeline.md:100-101 examples/life-coaching-pipeline.md:101-102 examples/life-coaching-pipeline.md:102-103 examples/life-coaching-pipeline.md:103-104 examples/life-coaching-pipeline.md:104-201 examples/life-coaching-pipeline.md:201-211
🌐 Network access (34)
🔑 Env variables (50)
examples/blog-pipeline.md:66 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/blog-pipeline.md:66 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/blog-pipeline.md:47 examples/blog-pipeline.md:60 examples/blog-pipeline.md:165 examples/blog-pipeline.md:40 examples/blog-pipeline.md:66 examples/blog-pipeline.md:67 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:70 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:70 examples/content-creation-pipeline.md:49 examples/content-creation-pipeline.md:58 examples/content-creation-pipeline.md:42 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:65 examples/content-creation-pipeline.md:70 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:72 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:72 examples/crypto-alpha-pipeline.md:49 examples/crypto-alpha-pipeline.md:60 examples/crypto-alpha-pipeline.md:42 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:67 examples/crypto-alpha-pipeline.md:72 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:76 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:76 examples/life-coaching-pipeline.md:55 examples/life-coaching-pipeline.md:64 examples/life-coaching-pipeline.md:48 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:71 examples/life-coaching-pipeline.md:76 examples/paid-image-pipeline.md:148 examples/paid-image-pipeline.md:152 examples/paid-image-pipeline.md:148 examples/paid-image-pipeline.md:152 examples/paid-image-pipeline.md:38 examples/paid-image-pipeline.md:47
Audited by: codex

Jul 21, 2026, 04:32 AM

Adjudicated 400 static findings across 14 documentation and example markdown files; all resolved as false positives. The skill is educational documentation for building multi-agent workflows on the OpenServ platform: env-var reads of WALLET_PRIVATE_KEY are the documented, secure way to supply credentials (secrets live in .env, never hardcoded); flagged 'backtick execution' and 'system reconnaissance' matches are JavaScript template literals in console.log calls and mermaid diagram fences, respectively; and hardcoded URLs point only to the platform's own api.openserv.ai endpoint. No executable scripts, no data exfiltration, no command execution, and no real secrets were found. Static review was capped at 400/444 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

14
Files scanned
2,895
Lines analyzed
3
Review items
0
False positives ignored

Risk Factors

⚙️ External commands (50)
examples/blog-pipeline.md:83-87 examples/blog-pipeline.md:87-88 examples/blog-pipeline.md:88-131 examples/blog-pipeline.md:131-141 examples/blog-pipeline.md:141-142 examples/blog-pipeline.md:142-143 examples/blog-pipeline.md:143-144 examples/blog-pipeline.md:144-145 examples/blog-pipeline.md:145-146 examples/blog-pipeline.md:146-147 examples/blog-pipeline.md:147-148 examples/blog-pipeline.md:148-156 examples/blog-pipeline.md:225-229 examples/content-creation-pipeline.md:84-88 examples/content-creation-pipeline.md:88-89 examples/content-creation-pipeline.md:89-90 examples/content-creation-pipeline.md:90-141 examples/content-creation-pipeline.md:141-151 examples/content-creation-pipeline.md:151-152 examples/content-creation-pipeline.md:152-153 examples/content-creation-pipeline.md:153-154 examples/content-creation-pipeline.md:154-155 examples/content-creation-pipeline.md:155-156 examples/content-creation-pipeline.md:156-157 examples/content-creation-pipeline.md:157-158 examples/content-creation-pipeline.md:158-159 examples/content-creation-pipeline.md:159-160 examples/content-creation-pipeline.md:160-161 examples/content-creation-pipeline.md:161-162 examples/content-creation-pipeline.md:162-170 examples/crypto-alpha-pipeline.md:85-89 examples/crypto-alpha-pipeline.md:89-90 examples/crypto-alpha-pipeline.md:90-91 examples/crypto-alpha-pipeline.md:91-136 examples/crypto-alpha-pipeline.md:136-146 examples/crypto-alpha-pipeline.md:146-147 examples/crypto-alpha-pipeline.md:147-148 examples/crypto-alpha-pipeline.md:148-149 examples/crypto-alpha-pipeline.md:149-150 examples/crypto-alpha-pipeline.md:150-151 examples/crypto-alpha-pipeline.md:151-152 examples/crypto-alpha-pipeline.md:152-153 examples/crypto-alpha-pipeline.md:153-161 examples/life-coaching-pipeline.md:96-100 examples/life-coaching-pipeline.md:100-101 examples/life-coaching-pipeline.md:101-102 examples/life-coaching-pipeline.md:102-103 examples/life-coaching-pipeline.md:103-104 examples/life-coaching-pipeline.md:104-201 examples/life-coaching-pipeline.md:201-211
🌐 Network access (34)
🔑 Env variables (50)
examples/blog-pipeline.md:66 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/blog-pipeline.md:66 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/blog-pipeline.md:47 examples/blog-pipeline.md:60 examples/blog-pipeline.md:165 examples/blog-pipeline.md:40 examples/blog-pipeline.md:66 examples/blog-pipeline.md:67 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:70 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:70 examples/content-creation-pipeline.md:49 examples/content-creation-pipeline.md:58 examples/content-creation-pipeline.md:42 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:65 examples/content-creation-pipeline.md:70 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:72 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:72 examples/crypto-alpha-pipeline.md:49 examples/crypto-alpha-pipeline.md:60 examples/crypto-alpha-pipeline.md:42 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:67 examples/crypto-alpha-pipeline.md:72 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:76 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:76 examples/life-coaching-pipeline.md:55 examples/life-coaching-pipeline.md:64 examples/life-coaching-pipeline.md:48 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:71 examples/life-coaching-pipeline.md:76 examples/paid-image-pipeline.md:148 examples/paid-image-pipeline.md:152 examples/paid-image-pipeline.md:148 examples/paid-image-pipeline.md:152 examples/paid-image-pipeline.md:38 examples/paid-image-pipeline.md:47
Audited by: claude

Jul 10, 2026, 12:07 AM

The high-impact confirmed findings are credential-handling patterns in runnable examples, especially WALLET_PRIVATE_KEY and OPENAI_API_KEY usage. Most external command, system reconnaissance, and hardcoded URL findings are false positives caused by Markdown, TypeScript template literals, and documented OpenServ endpoints. Additional context concerns involve paid x402/on-chain wallet workflows and local tunnel exposure. Static review was capped at 400/444 representative findings; omitted static matches are unconfirmed, so automatic publishing stays disabled until manual review.

14
Files scanned
2,895
Lines analyzed
133
Review items
0
False positives ignored

Confirmed security concerns (30)

High
Crypto seed/private key mention
privateKey: process.env.WALLET_PRIVATE_KEY!,
The documentation instructs private key use for authentication or ERC-8004 registration. Private keys can control wallet identity and funds, so copied examples require careful handling.
High
Crypto seed/private key mention
**If using `workflows.create()` or `workflow.sync()` directly:** Ensure the client was authenticated
The documentation instructs private key use for authentication or ERC-8004 registration. Private keys can control wallet identity and funds, so copied examples require careful handling.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY!)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
Add on-chain identity after provisioning so the agent is discoverable via the Identity Registry. **R
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
// Reload .env to pick up WALLET_PRIVATE_KEY written by provision()
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
privateKey: process.env.WALLET_PRIVATE_KEY!,
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
if (!process.env.WALLET_PRIVATE_KEY) {
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Environment file access
3. **`process.env.WALLET_PRIVATE_KEY`** (derived, lowest priority)
The surrounding example uses .env or process.env to handle WALLET_PRIVATE_KEY for authentication or on-chain registration. That is sensitive credential handling even though it supports the intended workflow.
High
Paid Wallet Workflow Requires Financial Review
The paid image example creates an x402 paywall and later shows ERC-8004 on-chain registration with a wallet key. This is legitimate OpenServ functionality, but copied examples can affect funds, gas costs, or payout routing.
The cited lines define a paid x402 trigger, note ETH is required on Base, and pass WALLET_PRIVATE_KEY into registration. The risk is contextual financial impact, not hidden malware.
Medium
Local Agent Tunnel Exposure
The paid image example starts the local agent with run(agent), and the explanation says this starts the local agent with a built-in tunnel. Users should understand that the local process may be reachable through the platform while it runs.
The documentation directly states that run(agent) starts a local agent with a built-in tunnel. The exposure is intended, but it has operational security implications.
Capability review items (100)

These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.

High
Generic API/secret keys · 10 occurrences
WALLET_PRIVATE_KEY=0x...
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys · 10 occurrences
if (!process.env.WALLET_PRIVATE_KEY) {
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys · 11 occurrences
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys
await client.authenticate(process.env.WALLET_PRIVATE_KEY!)
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys
OPENAI_API_KEY=your-openai-key
The example asks users to place an OpenAI API key in .env for local execution. API keys are sensitive credentials and can incur charges if exposed.
High
Generic API/secret keys
WALLET_PRIVATE_KEY=
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys
Add on-chain identity after provisioning so the agent is discoverable via the Identity Registry. **R
The match appears in a credential-handling section for wallet-backed workflows. The exact line is contextual, but the surrounding guidance handles sensitive keys.
High
Generic API/secret keys
// Reload .env to pick up WALLET_PRIVATE_KEY written by provision()
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys
privateKey: process.env.WALLET_PRIVATE_KEY!,
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys
3. **`process.env.WALLET_PRIVATE_KEY`** (derived, lowest priority)
The example references WALLET_PRIVATE_KEY or privateKey for authentication, payout, or on-chain registration. Wallet private keys are high-impact secrets if copied into unsafe environments.
High
Generic API/secret keys
**If using `workflows.create()` or `workflow.sync()` directly:** Ensure the client was authenticated
The match appears in a credential-handling section for wallet-backed workflows. The exact line is contextual, but the surrounding guidance handles sensitive keys.
Low
dotenv library
dotenv.config({ override: true })
This loads .env values into process.env for examples that also use wallet private keys and API keys. The pattern is legitimate local setup, but it is real secret handling.
Low
Environment variable access (dot notation) · 10 occurrences
if (!process.env.WALLET_PRIVATE_KEY) {
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable access (dot notation) · 11 occurrences
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable access (dot notation)
await client.authenticate(process.env.WALLET_PRIVATE_KEY!)
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable access (dot notation)
privateKey: process.env.WALLET_PRIVATE_KEY!,
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable access (dot notation)
3. **`process.env.WALLET_PRIVATE_KEY`** (derived, lowest priority)
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable object · 10 occurrences
if (!process.env.WALLET_PRIVATE_KEY) {
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable object · 11 occurrences
await client.authenticate(process.env.WALLET_PRIVATE_KEY)
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable object
await client.authenticate(process.env.WALLET_PRIVATE_KEY!)
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable object
privateKey: process.env.WALLET_PRIVATE_KEY!,
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.
Low
Environment variable object
3. **`process.env.WALLET_PRIVATE_KEY`** (derived, lowest priority)
The example accesses process.env.WALLET_PRIVATE_KEY for OpenServ authentication or on-chain registration. That is expected for the workflow, but wallet private keys are sensitive credentials.

Risk Factors

⚙️ External commands (50)
examples/blog-pipeline.md:83-87 examples/blog-pipeline.md:87-88 examples/blog-pipeline.md:88-131 examples/blog-pipeline.md:131-141 examples/blog-pipeline.md:141-142 examples/blog-pipeline.md:142-143 examples/blog-pipeline.md:143-144 examples/blog-pipeline.md:144-145 examples/blog-pipeline.md:145-146 examples/blog-pipeline.md:146-147 examples/blog-pipeline.md:147-148 examples/blog-pipeline.md:148-156 examples/blog-pipeline.md:225-229 examples/content-creation-pipeline.md:84-88 examples/content-creation-pipeline.md:88-89 examples/content-creation-pipeline.md:89-90 examples/content-creation-pipeline.md:90-141 examples/content-creation-pipeline.md:141-151 examples/content-creation-pipeline.md:151-152 examples/content-creation-pipeline.md:152-153 examples/content-creation-pipeline.md:153-154 examples/content-creation-pipeline.md:154-155 examples/content-creation-pipeline.md:155-156 examples/content-creation-pipeline.md:156-157 examples/content-creation-pipeline.md:157-158 examples/content-creation-pipeline.md:158-159 examples/content-creation-pipeline.md:159-160 examples/content-creation-pipeline.md:160-161 examples/content-creation-pipeline.md:161-162 examples/content-creation-pipeline.md:162-170 examples/crypto-alpha-pipeline.md:85-89 examples/crypto-alpha-pipeline.md:89-90 examples/crypto-alpha-pipeline.md:90-91 examples/crypto-alpha-pipeline.md:91-136 examples/crypto-alpha-pipeline.md:136-146 examples/crypto-alpha-pipeline.md:146-147 examples/crypto-alpha-pipeline.md:147-148 examples/crypto-alpha-pipeline.md:148-149 examples/crypto-alpha-pipeline.md:149-150 examples/crypto-alpha-pipeline.md:150-151 examples/crypto-alpha-pipeline.md:151-152 examples/crypto-alpha-pipeline.md:152-153 examples/crypto-alpha-pipeline.md:153-161 examples/life-coaching-pipeline.md:96-100 examples/life-coaching-pipeline.md:100-101 examples/life-coaching-pipeline.md:101-102 examples/life-coaching-pipeline.md:102-103 examples/life-coaching-pipeline.md:103-104 examples/life-coaching-pipeline.md:104-201 examples/life-coaching-pipeline.md:201-211
🌐 Network access (34)
🔑 Env variables (50)
examples/blog-pipeline.md:66 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/blog-pipeline.md:66 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/blog-pipeline.md:47 examples/blog-pipeline.md:60 examples/blog-pipeline.md:165 examples/blog-pipeline.md:40 examples/blog-pipeline.md:66 examples/blog-pipeline.md:67 examples/blog-pipeline.md:72 examples/blog-pipeline.md:170 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:70 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:70 examples/content-creation-pipeline.md:49 examples/content-creation-pipeline.md:58 examples/content-creation-pipeline.md:42 examples/content-creation-pipeline.md:64 examples/content-creation-pipeline.md:65 examples/content-creation-pipeline.md:70 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:72 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:72 examples/crypto-alpha-pipeline.md:49 examples/crypto-alpha-pipeline.md:60 examples/crypto-alpha-pipeline.md:42 examples/crypto-alpha-pipeline.md:66 examples/crypto-alpha-pipeline.md:67 examples/crypto-alpha-pipeline.md:72 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:76 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:76 examples/life-coaching-pipeline.md:55 examples/life-coaching-pipeline.md:64 examples/life-coaching-pipeline.md:48 examples/life-coaching-pipeline.md:70 examples/life-coaching-pipeline.md:71 examples/life-coaching-pipeline.md:76 examples/paid-image-pipeline.md:148 examples/paid-image-pipeline.md:152 examples/paid-image-pipeline.md:148 examples/paid-image-pipeline.md:152 examples/paid-image-pipeline.md:38 examples/paid-image-pipeline.md:47
Audited by: codex