Skip to main content

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

PyPI PyPI - Python Version PyPI - Downloads License: MIT x402

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

  1. Client calls POST /create-music.
  2. Server returns 402 Payment Required with a JSON accepts array. Each entry declares scheme (exact), network (eip155:8453), asset (USDC on Base), payTo address, and maxAmountRequired.
  3. SDK builds an EIP-3009 TransferWithAuthorization typed message and signs it with the configured wallet.
  4. SDK base64-encodes the payment payload and replays the original request with the X-PAYMENT header.
  5. 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:

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

suede_ai-0.2.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

suede_ai-0.2.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

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

Hashes for suede_ai-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e9c7677a0a342047d0198f09c3f9b070489dd3cd8590318cc4101908a41ab719
MD5 ce283281e072eb4abfd52756cf6ef38d
BLAKE2b-256 1b5418f5773a36af86a59c168fb19b5aa2f5877f181c593ed28e9c851cbf7aaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for suede_ai-0.2.0.tar.gz:

Publisher: publish.yml on Suede-AI/suede-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for suede_ai-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8d162e94f247f784bc24c30a1430e38593a6b0b67541c7e72cb81214b62c0d1
MD5 492eef134f748242a7f10a153a7bf0ae
BLAKE2b-256 f767f3b7ffb5c77414653a5b48bd2918be73366afb3303eb2fc9c502d1dc2051

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page