Skip to content
Back to skills

Opengfx

ASecurity

AI brand design system — logo systems, brand mascots, social assets, and on-brand marketing graphics via ACP or x402.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 18, 2026
content-marketingtypescriptrustgobashexpressawsgitapidocumentation

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned October 18, 2026

npx -y skills add johnalbertini14-glitch/openclaw-skills --skill opengfx --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Opengfx?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Opengfx
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/johnalbertini14-glitch-opengfx/badge)](https://www.skillsdirectory.com/skills/johnalbertini14-glitch-opengfx)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: opengfx
description: AI brand design system — logo systems, brand mascots, social assets, and on-brand marketing graphics via ACP or x402.
version: 1.5.0
homepage: https://opengfx.app
source: https://github.com/aklo360/opengfx-skill
author: AKLO Labs <aklo@aklo.studio>
---

# Skill: opengfx

## Description
AI brand design system — generates complete logo systems, brand mascots, social assets, and on-brand marketing graphics in minutes. **Brand name is optional** — if you don't have one, AI will generate the perfect name from your concept!

**Pricing:**
- Logo System: $5
- Brand Mascot: $5
- Social Assets: $5
- On-Brand GFX: $2

**This is a SERVICE skill** — it documents how to use an external paid API. No code execution, no local files modified, no credentials requested.

---

## Two Integration Options

| Method | Protocol | Best For |
|--------|----------|----------|
| **ACP** | Virtuals Protocol | OpenClaw agents with ACP skill |
| **x402** | HTTP 402 | Any agent/app with crypto wallet |

Both methods support the same services at the same price ($5 USDC or equivalent).

---

## Requirements

**For ACP integration:**
- An ACP-compatible agent/wallet (e.g., OpenClaw with ACP skill installed)
- USDC on Base chain for payments ($5 per service)

**For x402 integration:**
- Any HTTP client
- Wallet for payment signing (Base USDC or Solana SOL)
- Use `@x402/fetch` SDK or manual payment flow

**This skill does NOT:**
- Install any binaries
- Request or store private keys
- Execute any code on your system

---

## Privacy & Data

- **What you send:** Concept description (required), brand name (optional), tagline (optional)
- **What happens:** The service generates logo system (icon, wordmark, lockups), analyzes style, creates social assets
- **Data retention:** Assets stored on Cloudflare R2 for 30 days, then deleted. Contact aklo@aklo.studio for early deletion.
- **Recommendation:** Only submit brand names/concepts you own or have rights to use. Do not submit confidential or trademarked content.

---

## Option 1: ACP Integration (Virtuals Protocol)

### Agent Details

- **Agent Wallet:** `0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e`
- **Protocol:** ACP (Agent Commerce Protocol)
- **Marketplace:** https://app.virtuals.io/acp

### Create Logo Job (with name)

```bash
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e logo \
  --requirements '{"brandName":"Acme","concept":"Modern fintech startup, bold and trustworthy","tagline":"Banking for Everyone"}'
```

### Create Logo Job (AI names the brand)

```bash
# Just provide concept — AI will generate the perfect brand name!
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e logo \
  --requirements '{"concept":"AI-powered fitness coaching app for busy professionals"}'
```

### Poll Job Status

```bash
acp job status <jobId>
```

### Create Social Assets (from Logo Service)

```bash
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e social \
  --requirements '{"brandSystemUrl":"https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/brand-system.json"}'
```

### Create Social Assets (BYOL — Bring Your Own Logo)

```bash
# AI extracts colors from your logo
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e social \
  --requirements '{"logoUrl":"https://example.com/my-logo.png","brandName":"My Brand"}'

# Or specify colors manually
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e social \
  --requirements '{"logoUrl":"https://example.com/my-logo.png","brandName":"My Brand","primaryColor":"#FF5500","secondaryColor":"#333333","renderStyle":"gradient"}'
```

### Create On-Brand GFX (from Logo Service)

```bash
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e gfx \
  --requirements '{"brandSystemUrl":"https://pub-xxx.r2.dev/acme/brand-system.json","prompt":"Announcement graphic: We just hit 10,000 users! Celebratory vibe.","aspectRatio":"1:1"}'
```

### Create On-Brand GFX (BYOL)

```bash
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e gfx \
  --requirements '{"logoUrl":"https://example.com/logo.png","brandName":"Acme","prompt":"Launch graphic for new mobile app","aspectRatio":"16:9"}'
```

### Create Brand Mascot (from prompt)

```bash
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e mascot \
  --requirements '{"brand_name":"Melodify","prompt":"Cute music note mascot with headphones, purple body","primary_color":"#8B5CF6","leg_count":2}'
```

### Create Brand Mascot (from locked master)

```bash
# Generate expression sheet from approved master image
acp job create 0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e mascot \
  --requirements '{"brand_name":"Melodify","master_url":"https://example.com/master.png","leg_count":2}'
```

---

## Option 2: x402 Integration (Direct API)

### Base URL

```
https://gateway.opengfx.app
```

### Endpoints

| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/` | API documentation |
| GET | `/health` | Health check |
| GET | `/v1/pricing` | Pricing with current SOL rate |
| POST | `/v1/logo` | Generate logo system (x402 payment) |
| POST | `/v1/mascot` | Generate brand mascot with 6 poses (x402 payment) |
| POST | `/v1/socials` | Generate social assets (x402 payment) |
| POST | `/v1/gfx` | Generate on-brand marketing graphic (x402 payment) |
| GET | `/v1/jobs/:id` | Check job status |
| GET | `/v1/jobs` | List jobs (filter by wallet) |

### Supported Payment Chains

| Chain | Asset | Network |
|-------|-------|---------|
| Base | USDC | `eip155:8453` |
| Solana | SOL | `solana:mainnet` |

### Payment Wallets

- **Base (USDC):** `0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e`
- **Solana (SOL):** Check `/v1/pricing` for current wallet

### x402 Payment Flow

1. **Request service** → POST to any endpoint (`/v1/logo`, `/v1/mascot`, `/v1/socials`, `/v1/gfx`)
2. **Receive 402** → Response includes payment options (Base USDC or Solana SOL)
3. **Sign payment** → Use wallet to sign the payment authorization
4. **Retry with payment** → Same request with `X-Payment` header containing signed payment
5. **Receive job ID** → Response includes `jobId` and `pollUrl`
6. **Poll for completion** → GET `/v1/jobs/:jobId` until `status: "completed"`
7. **Get assets** → Response contains CDN URLs for all generated assets

### Example: Logo Request ($5)

```bash
curl -X POST https://gateway.opengfx.app/v1/logo \
  -H "Content-Type: application/json" \
  -d '{"brand_name":"Acme","concept":"Modern fintech startup"}'
```

### Example: Mascot Request ($5)

```bash
curl -X POST https://gateway.opengfx.app/v1/mascot \
  -H "Content-Type: application/json" \
  -d '{"brand_name":"Melodify","prompt":"Cute music note mascot with headphones","primary_color":"#8B5CF6"}'
```

### Example: Social Assets Request ($5)

```bash
# From brand-system.json
curl -X POST https://gateway.opengfx.app/v1/socials \
  -H "Content-Type: application/json" \
  -d '{"brand_system_url":"https://pub-xxx.r2.dev/acme/brand-system.json"}'

# BYOL mode
curl -X POST https://gateway.opengfx.app/v1/socials \
  -H "Content-Type: application/json" \
  -d '{"logo_url":"https://example.com/logo.png","brand_name":"Acme"}'
```

### Example: GFX Request ($2)

```bash
curl -X POST https://gateway.opengfx.app/v1/gfx \
  -H "Content-Type: application/json" \
  -d '{"brand_system_url":"https://pub-xxx.r2.dev/acme/brand-system.json","prompt":"Launch announcement graphic","aspect_ratio":"1:1"}'
```

### Poll for Completion

```bash
curl https://gateway.opengfx.app/v1/jobs/<jobId>
```

### Using @x402/fetch SDK

```typescript
import { wrapFetch } from '@x402/fetch';

const x402Fetch = wrapFetch(fetch, wallet);

const response = await x402Fetch('https://gateway.opengfx.app/v1/logo', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    brand_name: 'Acme',
    concept: 'Modern fintech startup'
  })
});

const { jobId, pollUrl } = await response.json();

// Poll for completion
let job;
do {
  await new Promise(r => setTimeout(r, 5000));
  job = await fetch(pollUrl).then(r => r.json());
} while (job.status === 'processing');

console.log(job.logo); // CDN URLs
```

---

## Pricing

| Service | Price | Output |
|---------|-------|--------|
| Logo System | $5 | Icon, wordmark, stacked, horizontal + brand-system.json |
| Brand Mascot | $5 | 6-pose expression sheet (master, wave, happy, sad, angry, laugh) |
| Social Assets | $5 | Avatar (1K + ACP) + Twitter banner + OG card + Community banner |
| On-Brand GFX | $2 | Single marketing graphic (any aspect ratio) |

---

## Input Options

### Logo Service

| Field | Required | Description |
|-------|----------|-------------|
| `concept` | ✅ | Brand concept, vibe, industry, style direction |
| `brandName` / `brand_name` | ❌ | Brand name (AI generates if not provided) |
| `tagline` | ❌ | Optional tagline/slogan |

### Social Service (Mode 1: From Logo Service)

| Field | Required | Description |
|-------|----------|-------------|
| `brandSystemUrl` / `brand_system_url` | ✅ | URL to brand-system.json from logo service |

### Social Service (Mode 2: BYOL)

| Field | Required | Description |
|-------|----------|-------------|
| `logoUrl` / `logo_url` | ✅ | URL to your existing logo image |
| `brandName` / `brand_name` | ✅ | Brand name |
| `tagline` | ❌ | Optional tagline |
| `primaryColor` / `primary_color` | ❌ | Primary color hex (auto-extracted if not provided) |
| `secondaryColor` / `secondary_color` | ❌ | Secondary color hex |
| `backgroundColor` / `background_color` | ❌ | Background color hex |
| `renderStyle` / `render_style` | ❌ | flat, gradient, glass, chrome, gold, neon, 3d |

### GFX Service (Mode 1: From Logo Service)

| Field | Required | Description |
|-------|----------|-------------|
| `brandSystemUrl` / `brand_system_url` | ✅ | URL to brand-system.json from logo service |
| `prompt` | ✅ | What graphic to generate (be specific about purpose, mood, text) |
| `aspectRatio` / `aspect_ratio` | ❌ | Output ratio: 1:1, 4:5, 16:9, 9:16, etc. (default: 1:1) |

### GFX Service (Mode 2: BYOL)

| Field | Required | Description |
|-------|----------|-------------|
| `logoUrl` / `logo_url` | ✅ | URL to your existing logo image |
| `brandName` / `brand_name` | ✅ | Brand name |
| `prompt` | ✅ | What graphic to generate |
| `aspectRatio` / `aspect_ratio` | ❌ | Output ratio (default: 1:1) |
| `primaryColor` / `primary_color` | ❌ | Primary color hex (auto-extracted if not provided) |
| `secondaryColor` / `secondary_color` | ❌ | Secondary color hex |
| `renderStyle` / `render_style` | ❌ | flat, gradient, glass, chrome, gold, neon, 3d |

### Mascot Service (from prompt)

| Field | Required | Description |
|-------|----------|-------------|
| `brand_name` | ✅ | Brand name |
| `prompt` | ✅ | Mascot description (creature, style, colors) |
| `primary_color` | ❌ | Primary color hex (e.g., "#8B5CF6") |
| `creature` | ❌ | Creature type override (e.g., "owl", "robot", "cat") |
| `leg_count` | ❌ | Number of legs (default: 2) |
| `claw_count` | ❌ | Number of arms/claws (default: 2) |

### Mascot Service (from master)

| Field | Required | Description |
|-------|----------|-------------|
| `brand_name` | ✅ | Brand name |
| `master_url` | ✅ | URL to locked master image |
| `leg_count` | ✅ | Number of legs (required for QC) |
| `claw_count` | ❌ | Number of arms/claws (default: 2) |

### GFX Aspect Ratios

| Ratio | Pixels | Use Case |
|-------|--------|----------|
| `1:1` | 1024×1024 | Instagram, Twitter, LinkedIn posts |
| `4:5` | 1024×1280 | Instagram feed (portrait) |
| `9:16` | 1024×1820 | Stories, Reels, TikTok |
| `16:9` | 1820×1024 | YouTube thumbnails, Twitter cards |
| `3:2` | 1536×1024 | Blog headers |
| `2:3` | 1024×1536 | Pinterest |

---

## Output

### Logo System Response

```json
{
  "jobId": "abc-123",
  "status": "completed",
  "brandName": "Acme",
  "logo": {
    "icon": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/icon.png",
    "wordmark": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/wordmark.png",
    "stacked": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/stacked.png",
    "horizontal": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/horizontal.png",
    "brandSystem": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/brand-system.json"
  }
}
```

### Social Assets Response

```json
{
  "jobId": "def-456",
  "status": "completed",
  "brandName": "Acme",
  "socials": {
    "avatarMaster": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/avatar-master.png",
    "avatarAcp": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/avatar-acp.jpg",
    "twitterBanner": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/twitter-banner.png",
    "ogCard": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/og-card.png",
    "communityBanner": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/community-banner.png"
  }
}
```

### GFX Response

```json
{
  "jobId": "gfx-789",
  "status": "completed",
  "brandName": "Acme",
  "gfx": {
    "url": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/acme/gfx/gfx-789.png",
    "width": 1024,
    "height": 1024,
    "aspectRatio": "1:1"
  }
}
```

### Mascot Response

```json
{
  "jobId": "mascot-123",
  "status": "completed",
  "brandName": "Melodify",
  "mascot": {
    "master": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/melodify/mascot/FINAL/master.png",
    "wave": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/melodify/mascot/FINAL/wave.png",
    "happy": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/melodify/mascot/FINAL/happy.png",
    "sad": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/melodify/mascot/FINAL/sad.png",
    "angry": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/melodify/mascot/FINAL/angry.png",
    "laugh": "https://pub-156972f0e0f44d7594f4593dbbeaddcb.r2.dev/melodify/mascot/FINAL/laugh.png"
  },
  "qcPassed": true
}
```

---

## Vendor Information

- **Service:** OpenGFX
- **Provider:** AKLO Labs
- **Website:** https://opengfx.app
- **GitHub:** https://github.com/aklo360/opengfx-skill
- **Support:** aklo@aklo.studio
- **Agent Wallet:** `0x7cf4CE250a47Baf1ab87820f692BB87B974a6F4e`
- **x402 Gateway:** https://gateway.opengfx.app
- **ACP Marketplace:** https://app.virtuals.io/acp
- **ClawHub:** https://clawhub.com/skills/opengfx

---

## Best Practices

- **Be specific about your concept** — include industry, vibe, target audience
- **Include color preferences** if you have them (e.g., "blue and gold tones")
- **Mention style direction** — "minimal", "playful", "corporate", "tech", "organic"
- **Dark vs Light** — AI auto-detects, but you can hint ("dark mode aesthetic" or "bright and friendly")
- **Test first** — Use a low-value test job to verify behavior before production use
- **x402 vs ACP** — Use x402 for direct integration; use ACP if you're already in the Virtuals ecosystem

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.