Route outbound HTTP through SC-VPN Gateway to bypass region restrictions. Use when a script hits a geo block and needs to appear from a specific country (e.g. Binance 451, US-only news site, request as JP, KR exit IP).

GitHub
Install command
npx skhub add starchild-ai-agent/sc-vpn
Markdown
SKILL.md

SC-VPN Gateway

Internal VPN service for the Starchild platform. Provides exit nodes in 18 fixed countries — accessible only from within the Starchild internal network. No credentials or setup needed.

⚠️ When to Use

SC-VPN is a last resort, not a default. Most agent HTTP traffic already goes through sc-proxy (the platform's transparent billing proxy for paid APIs). Setting a global VPN proxy will break sc-proxy routing.

Use SC-VPN only when:

  • A specific request is geo-blocked or returns a region error
  • You need to appear from a specific country for a particular API call
  • A target website/API refuses connections from the default exit

Always use per-request proxy (pass proxies= to requests.get() or -x to curl). Never set global HTTP_PROXY / HTTPS_PROXY environment variables

Available Countries

CountryCodeExample Cities
🇦🇺 AustraliaauAdelaide, Sydney, Melbourne
🇨🇭 SwitzerlandchZürich
🇩🇪 GermanydeBerlin, Frankfurt
🇯🇵 JapanjpTokyo, Osaka
🇲🇾 MalaysiamyKuala Lumpur
🇲🇽 MexicomxQuerétaro
🇹🇭 ThailandthBangkok
🇿🇦 South AfricazaJohannesburg
🇧🇷 BrazilbrSão Paulo, Fortaleza
🇦🇷 ArgentinaarBuenos Aires
🇸🇬 SingaporesgSingapore
🇭🇰 Hong KonghkHong Kong
🇬🇧 United KingdomgbLondon, Manchester
🇳🇱 NetherlandsnlAmsterdam
🇫🇷 FrancefrParis, Marseille
🇸🇪 SwedenseStockholm, Malmö
🇪🇸 SpainesMadrid
🇮🇹 ItalyitMilan, Rome

Only these 18 countries. Requests for other regions are rejected (502). The specific server per country is auto-selected daily based on latency.

Quick Start

curl (per-request proxy)

# Route ONE request through Japan
curl -x "http://jp:x@sc-vpn.internal:8080" https://ifconfig.me

# Route ONE request through Brazil
curl -x "http://br:x@sc-vpn.internal:8080" https://example.com/api

Python requests (per-request proxy)

import requests

def vpn_proxy(region: str) -> dict:
    """Return proxy dict for a given region code."""
    return {
        "https": f"http://{region}:x@sc-vpn.internal:8080",
        "http":  f"http://{region}:x@sc-vpn.internal:8080",
    }

# Only the geo-blocked request goes through VPN
resp = requests.get("https://geo-restricted-api.example.com", proxies=vpn_proxy("jp"))

# All other requests go through normal sc-proxy routing (no proxies= arg)
resp2 = requests.get("https://api.coingecko.com/...")

❌ Do NOT do this

# WRONG — may influence other requests
export HTTP_PROXY="http://jp:x@sc-vpn.internal:8080"
export HTTPS_PROXY="http://jp:x@sc-vpn.internal:8080"

Region Selection

The username in the proxy URL selects the exit country:

InputResolves To
jp or japanJapan
au or australiaAustralia
de or germanyGermany
ch or switzerlandSwitzerland
th or thailandThailand
br or brazilBrazil
ar or argentinaArgentina
mx or mexicoMexico
my or malaysiaMalaysia
za or south_africaSouth Africa
sg or singaporeSingapore
hk or hong_kongHong Kong
gb or uk or united_kingdomUnited Kingdom
nl or netherlandsNetherlands
fr or franceFrance
se or swedenSweden
es or spainSpain
it or italyItaly

REST API

Base URL: http://sc-vpn.internal:8081

EndpointDescription
GET /api/tunnelsStatus of all 18 tunnels (region, latency, uptime)
GET /api/statusGateway overview
GET /api/usageYour traffic stats (identified by source IP)
GET /healthHealth check

Rate Limits

LimitDefault
Monthly quota per client500 GB
Max concurrent connections50
Requests per second100

Clients identified by source IP. No API keys needed — internal network only.

Verify It Works

# Your real exit IP
curl https://ifconfig.me

# VPN exit IP (should be different, from Japan)
curl -x "http://jp:x@sc-vpn.internal:8080" https://ifconfig.me

Troubleshooting

ProblemFix
502 Bad Gateway: Unknown regionUse one of: au, ch, de, jp, my, mx, th, za, br, ar, sg, hk, gb, nl, fr, se, es, it
502 Bad Gateway: Tunnel not activeGateway may need restart — check /api/status
400 Bad Request: No region specifiedAdd username to proxy URL: http://jp:x@sc-vpn.internal:8080
DNS failure for sc-vpn.internalOnly accessible from Starchild internal network
Other requests broken after using VPNYou set global HTTP_PROXY — unset it immediately
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

sc-vpn

Default branch

main

Latest commit

cce29fd

Tree SHA

baca3ec