Veo 3.1

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The artifacts show a purpose-aligned NanoPhoto video-generation skill, but it needs a NanoPhoto API key and sends prompts/public image URLs to NanoPhoto, which can use account credits.

This skill appears coherent for NanoPhoto Veo 3.1 generation. Install it only if you are comfortable giving it a NanoPhoto API key, sending the requested prompts or public image URLs to NanoPhoto, and spending the associated service credits.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Anyone installing it must trust the skill with a NanoPhoto API key that may access the account and spend available service credits.

Why it was flagged

The script uses a NanoPhoto API key and can read the skill-scoped key from environment/config fallback. This is expected for the service integration, but it is still account credential access.

Skill content
return explicit_api_key or os.environ.get(ENV_KEY_NAME) or load_api_key_from_openclaw_config()
Recommendation

Use the platform’s secure environment setting, avoid passing the key in chat or command-line history, and revoke or rotate the key if you no longer trust the skill.

What this means

Submitting a generation task can spend NanoPhoto credits, especially for multiple shots or higher resolutions.

Why it was flagged

The documented API consumes credits by resolution and shot count. This is core to video generation, but users should notice the cost-bearing action before submitting jobs.

Skill content
| `720p` | per shot | 10 | ... | `4k` | single-shot only | 30 |
Recommendation

Confirm shot count, resolution, and expected credit use before submission; keep 720p as the default unless higher resolution is intentionally requested.

What this means

Prompts and referenced public image URLs leave the local environment and are processed by NanoPhoto.

Why it was flagged

The script posts the generation payload, including prompts and any imageUrls, to the NanoPhoto API. This external provider flow is disclosed and purpose-aligned.

Skill content
payload = build_generate_payload(args)
    return post_json(GENERATE_URL, api_key, payload, args.timeout, args.user_agent)
Recommendation

Only submit prompts and image URLs you are comfortable sharing with NanoPhoto, and do not use private or sensitive images as public URLs.