Python SDK for Suede AI — 22 x402 pay-per-call endpoints: music generation, stem splitting, MIDI, mastering, lyrics, guitar rig analysis, and IP-registry lookups settled in USDC on Base. No API keys.
Project description
suede-ai
Python SDK for Suede AI — x402 pay-per-call music generation, stem splitting, MIDI transcription, mastering, lyric sync, and IP-registry lookups. 17 endpoints settled in USDC on Base. No API keys. No subscriptions. Sign an EIP-3009 authorization and call the endpoint.
The SDK wraps the 402-challenge / sign / retry loop so your agent code spends its time writing creative prompts, not encoding typed data.
Status: Alpha scaffold. Endpoint signatures track the live manifest at https://app.suedeai.ai/.well-known/x402.json. Once the OpenAPI spec covers all 17 endpoints, codegen will finish typing the request/response models.
Install
pip install suede-ai
Requires Python 3.10+. Pulls in httpx, eth-account, and pydantic.
60-second quickstart
from suede_ai import SuedeClient
# Funded EOA on Base with USDC. Treat this like any other secret.
PRIVATE_KEY = "0x..."
with SuedeClient(wallet_private_key=PRIVATE_KEY) as suede:
track = suede.create_music(
prompt="lo-fi rainy afternoon, vinyl crackle, soft piano",
duration_seconds=30,
)
print(track["assetUrl"]) # https://cdn.suedeai.xyz/audio/trk_...mp3
print(track["provenance"]) # {"fingerprint": "0x..."} — on-chain attestation
The first call returns 402 with the x402 challenge. The SDK signs an EIP-3009 transferWithAuthorization for USDC on Base, replays with X-PAYMENT, and returns the JSON body. You never touch the typed data.
The 17 endpoints
| Method | Endpoint | Price (USDC) | What it does |
|---|---|---|---|
create_music |
POST /create-music |
0.20 | Rights-aware music generation |
agent_generate |
POST /agent/generate |
0.20 | Agent-facing music output (same payload) |
agent_video |
POST /agent/video |
1.50 | Short music-video clip generation |
extend |
POST /v1/extend |
0.40 | Continue an existing Suede track |
cover |
POST /v1/cover |
0.40 | Stylistic re-imagining of a track |
voice_cover |
POST /v1/vox |
0.40 | Replace lead vocal with a Suede voice |
continue_track |
POST /v1/continue |
0.40 | Extend an uploaded audio file |
stems_pro |
POST /v1/stems-pro |
0.40 | 4-stem split: vocals / drums / bass / other |
stems_basic |
POST /v1/stems |
0.20 | 2-stem split: vocals + instrumental |
vox |
POST /v1/acapella |
0.20 | Isolate the vocal stem |
midi |
POST /v1/midi |
0.10 | Transcribe audio to MIDI |
wav_master |
POST /v1/mastering |
0.10 | High-quality WAV master |
lyric_sync |
POST /v1/lyric-sync |
0.10 | Timestamped lyrics for a track |
lyrics |
POST /v1/lyrics |
0.04 | Generate fresh song lyrics from a prompt |
style_coach |
POST /v1/style-coach |
0.02 | Expand short tags into a prompt-ready style brief |
rights_lookup |
GET /v1/rights/{assetHash} |
0.005 | Suede Registry attestation lookup (owner / IP / NFT) |
analyze |
POST /v1/analyze |
0.003 | BPM / key / mode / energy / danceability |
Prices are sourced from the live manifest at the time of writing and are enforced server-side.
How payment works
- Client calls
POST /create-music. - Server returns 402 Payment Required with a JSON
acceptsarray. Each entry declares scheme (exact), network (eip155:8453), asset (USDC on Base),payToaddress, andmaxAmountRequired. - SDK builds an EIP-3009
TransferWithAuthorizationtyped message and signs it with the configured wallet. - SDK base64-encodes the payment payload and replays the original request with the
X-PAYMENTheader. - Suede's facilitator settles on-chain; the response body returns asset URL + on-chain provenance.
You can inspect the live manifest yourself:
curl https://app.suedeai.ai/.well-known/x402.json | jq
Advanced
Reuse an httpx.Client
import httpx
from suede_ai import SuedeClient
http = httpx.Client(http2=True, timeout=120.0)
suede = SuedeClient(wallet_private_key=PRIVATE_KEY, http_client=http)
Direct call to any endpoint
result = suede.request("POST", "/v1/style-coach", json={"tags": "lofi, rainy"})
Inspect the live manifest
manifest = suede.manifest() # free — no payment required
Roadmap
- Async client (
AsyncSuedeClient) once OpenAPI lands - Pydantic response models per endpoint
examples/folder: LangChain tool wrappers, CrewAI tasks, agentcash adapter
See the 0.1.0 release checklist.
License
MIT. See LICENSE.
Built by Jason Colapietro · Suede Labs AI · x402 manifest
About the Author
Jason Colapietro is the founder and CEO of Suede Labs AI, a published author, and a Forbes contributor. He builds programmable IP and creator ownership infrastructure for AI-native media.
"The agents are already buying. x402 enables AI agents to pay for content, licenses, and generation at query time. If your IP isn't machine-readable and your licensing terms aren't programmable, you're invisible to the next distribution layer."
"Programmable IP is what happens when a licensing contract gets compressed into a format that agents can read at query time."
"On-chain registration doesn't replace copyright. It timestamps it. The law gives you ownership; the chain gives you proof."
Books:
- The Signal Chain — Illustrated history of electric guitar tone. Free at guitar.solutions.
- The Guitar Without a Number — Memoir-driven guitar instruction with a music IP rights chapter no other guitar book includes. (Kindle)
- Suede Labs: The Human Authenticity Layer — How ownership, origin, and AI redraw the creative map. (Kindle)
- Stake Your Claim — Hard truths on turning the AI era into a real asset. (Kindle)
Follow: X / @johnnysuede · suedeai.ai/founder
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file suede_ai-0.2.0.tar.gz.
File metadata
- Download URL: suede_ai-0.2.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9c7677a0a342047d0198f09c3f9b070489dd3cd8590318cc4101908a41ab719
|
|
| MD5 |
ce283281e072eb4abfd52756cf6ef38d
|
|
| BLAKE2b-256 |
1b5418f5773a36af86a59c168fb19b5aa2f5877f181c593ed28e9c851cbf7aaa
|
Provenance
The following attestation bundles were made for suede_ai-0.2.0.tar.gz:
Publisher:
publish.yml on Suede-AI/suede-sdk-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
suede_ai-0.2.0.tar.gz -
Subject digest:
e9c7677a0a342047d0198f09c3f9b070489dd3cd8590318cc4101908a41ab719 - Sigstore transparency entry: 1845417784
- Sigstore integration time:
-
Permalink:
Suede-AI/suede-sdk-python@a77283b6464d3e4b58ccfd0e064734cf816350a0 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Suede-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a77283b6464d3e4b58ccfd0e064734cf816350a0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file suede_ai-0.2.0-py3-none-any.whl.
File metadata
- Download URL: suede_ai-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8d162e94f247f784bc24c30a1430e38593a6b0b67541c7e72cb81214b62c0d1
|
|
| MD5 |
492eef134f748242a7f10a153a7bf0ae
|
|
| BLAKE2b-256 |
f767f3b7ffb5c77414653a5b48bd2918be73366afb3303eb2fc9c502d1dc2051
|
Provenance
The following attestation bundles were made for suede_ai-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on Suede-AI/suede-sdk-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
suede_ai-0.2.0-py3-none-any.whl -
Subject digest:
c8d162e94f247f784bc24c30a1430e38593a6b0b67541c7e72cb81214b62c0d1 - Sigstore transparency entry: 1845417976
- Sigstore integration time:
-
Permalink:
Suede-AI/suede-sdk-python@a77283b6464d3e4b58ccfd0e064734cf816350a0 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Suede-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a77283b6464d3e4b58ccfd0e064734cf816350a0 -
Trigger Event:
release
-
Statement type: