Skip to main content

API Reference Overview

AceSteps provides both backend APIs and smart contract interfaces for building on the platform.

API Types

┌─────────────────────────────────────────────────────────────┐
│ ACESTEPS APIs │
├─────────────────────────────────────────────────────────────┤
│ │
│ REST API Smart Contracts │
│ ───────── ─────────────── │
│ • Music Generation • SongNFT (ERC-721) │
│ • NFT Metadata • SongVault │
│ • User Profiles • SongToken (ERC-20) │
│ • Trading Data • RevenueHook │
│ │
│ Base URL: Network: │
│ api.acesteps.xyz/v1 Base (chainId: 8453) │
│ │
└─────────────────────────────────────────────────────────────┘

Backend API

RESTful API for off-chain operations:

CategoryEndpointsDescription
Music GenerationPOST /music/generateGenerate AI music from prompts
NFTPOST /nft/mint, GET /nft/{id}NFT minting and metadata
TradingGET /trading/poolsPool data and analytics
UserGET /user/profileUser profiles and stats

Base URL: https://api.acesteps.xyz/v1

OpenAPI Spec: Download OpenAPI YAML

Smart Contract ABIs

On-chain interfaces deployed on Base Network:

ContractStandardAddress
SongNFTERC-7210x... (TBD)
SongVaultCustom0x... (TBD)
SongTokenERC-20Per-song deployment
RevenueHookUniswap V40x... (TBD)

Network: Base Mainnet (chainId: 8453)

Authentication

Backend API

Authorization: Bearer <farcaster_jwt>

Authentication flow:

  1. User authenticates with Farcaster
  2. Backend issues JWT token
  3. Include token in Authorization header

Smart Contracts

Wallet-based authentication:

  • Connect wallet (e.g., via WalletConnect)
  • Sign transactions with private key
  • Platform signature required for minting

Rate Limits

Endpoint CategoryLimitWindow
Music Generation10 requestsPer hour
Metadata/NFT100 requestsPer hour
Trading Data500 requestsPer hour
General1000 requestsPer hour
Rate Limit Headers

Response headers include:

  • X-RateLimit-Limit: Max requests allowed
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Unix timestamp when limit resets

Error Handling

All API errors follow a consistent format:

{
"error": "ERROR_CODE",
"message": "Human-readable description",
"details": {}
}
Status CodeDescription
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing auth
404Not Found - Resource doesn't exist
429Too Many Requests - Rate limited
500Server Error - Internal error

SDKs & Libraries

Coming soon:

  • JavaScript/TypeScript SDK
  • React hooks library
  • Python SDK