Download OpenAPI specification:
Client-facing HTTP contract for the Pump Party frontend gateway.
This spec covers routes the rewritten frontend may call through the
Backend-for-Frontend gateway. Browser code calls /api/backend/* or
frontend-owned /api/auth/*; this file documents the backend canonical
/api/v1/* contract that the gateway forwards to.
| address required | string |
| chainId required | integer |
| domain | string |
| uri | string |
| statement | string or null |
{- "address": "string",
- "chainId": 0,
- "domain": "string",
- "uri": "string",
- "statement": "string"
}{- "nonce": "string",
- "domain": "string",
- "chainId": 0,
- "address": "string",
- "uri": "string",
- "statement": "string",
- "issuedAt": 0,
- "expiresAt": 0,
- "message": "string"
}| message required | string |
| signature required | string |
{- "message": "string",
- "signature": "string"
}{- "accessToken": "string",
- "accessExpiresAt": 0,
- "refreshToken": "string",
- "refreshExpiresAt": 0,
- "sessionId": "string",
- "user": {
- "id": "string",
- "email": "string",
- "displayName": "string",
- "createdAt": 0,
- "updatedAt": 0,
- "primaryWallet": {
- "chainNamespace": "evm",
- "chainId": 0,
- "address": "string",
- "walletProvider": "megaeth_eoa",
- "verifiedAt": 0
}
}, - "isNewUser": true
}| refreshToken required | string |
{- "refreshToken": "string"
}{- "accessToken": "string",
- "accessExpiresAt": 0,
- "refreshToken": "string",
- "refreshExpiresAt": 0,
- "sessionId": "string"
}| allSessions | boolean |
{- "allSessions": true
}{- "error": {
- "code": "string",
- "message": "string",
- "details": null
}
}{- "user": {
- "id": "string",
- "email": "string",
- "displayName": "string",
- "createdAt": 0,
- "updatedAt": 0,
- "primaryWallet": {
- "chainNamespace": "evm",
- "chainId": 0,
- "address": "string",
- "walletProvider": "megaeth_eoa",
- "verifiedAt": 0
}
}
}| limit | integer >= 1 |
{- "clones": [
- {
- "id": 0,
- "ownerUserId": "string",
- "displayName": "string",
- "model": "string",
- "status": "active",
- "activeStrategyVersionId": "string",
- "createdAt": 0,
- "updatedAt": 0
}
]
}| cloneId required | integer >= 1 |
{- "clone": {
- "id": 0,
- "ownerUserId": "string",
- "displayName": "string",
- "model": "string",
- "status": "active",
- "activeStrategyVersionId": "string",
- "createdAt": 0,
- "updatedAt": 0
}, - "entitlement": {
- "cloneId": 0,
- "tier": "starter",
- "maxActiveAssets": 0,
- "allowedModelStrength": "cheap",
- "source": "audition_fee",
- "status": "active",
- "economyEventId": "string",
- "reason": "string",
- "effectiveAt": 0,
- "expiresAt": 0,
- "revokedAt": 0,
- "createdAt": 0,
- "updatedAt": 0
}, - "activeStrategyVersion": {
- "id": "string",
- "cloneId": 0,
- "version": 0,
- "graph": { },
- "model": "string",
- "isActive": true,
- "publishedByUserId": "string",
- "publishedAt": 0
}
}| cloneId required | integer >= 1 |
| displayName | string or null |
| model | string or null |
{- "displayName": "string",
- "model": "string"
}{- "clone": {
- "id": 0,
- "ownerUserId": "string",
- "displayName": "string",
- "model": "string",
- "status": "active",
- "activeStrategyVersionId": "string",
- "createdAt": 0,
- "updatedAt": 0
}
}| cloneId required | integer >= 1 |
{- "entitlement": {
- "cloneId": 0,
- "tier": "starter",
- "maxActiveAssets": 0,
- "allowedModelStrength": "cheap",
- "source": "audition_fee",
- "status": "active",
- "economyEventId": "string",
- "reason": "string",
- "effectiveAt": 0,
- "expiresAt": 0,
- "revokedAt": 0,
- "createdAt": 0,
- "updatedAt": 0
}
}Strategy drafts, published versions, backtests, decision history, and workflow data previews.
| cloneId required | integer >= 1 |
required | object (CloneStrategyGraph) |
{- "graph": { }
}{- "draft": {
- "cloneId": 0,
- "graph": { },
- "updatedByUserId": "string",
- "createdAt": 0,
- "updatedAt": 0
}
}| cloneId required | integer >= 1 |
object (CloneStrategyGraph) |
{- "graph": { }
}{- "version": {
- "id": "string",
- "cloneId": 0,
- "version": 0,
- "graph": { },
- "model": "string",
- "isActive": true,
- "publishedByUserId": "string",
- "publishedAt": 0
}, - "clone": {
- "id": 0,
- "ownerUserId": "string",
- "displayName": "string",
- "model": "string",
- "status": "active",
- "activeStrategyVersionId": "string",
- "createdAt": 0,
- "updatedAt": 0
}
}| cloneId required | integer >= 1 |
{- "versions": [
- {
- "id": "string",
- "cloneId": 0,
- "version": 0,
- "graph": { },
- "model": "string",
- "isActive": true,
- "publishedByUserId": "string",
- "publishedAt": 0
}
]
}| cloneId required | integer >= 1 |
| strategyVersionId required | string |
{- "version": {
- "id": "string",
- "cloneId": 0,
- "version": 0,
- "graph": { },
- "model": "string",
- "isActive": true,
- "publishedByUserId": "string",
- "publishedAt": 0
}
}| cloneId required | integer >= 1 |
object (CloneStrategyGraph) | |
| assetScope | string Value: "all_active" |
| async | boolean |
object | |
| cadenceSec | integer >= 300 |
| maxDecisionCalls | integer [ 1 .. 200 ] |
{- "graph": { },
- "assetScope": "all_active",
- "async": true,
- "window": {
- "preset": "last_6h"
}, - "cadenceSec": 300,
- "maxDecisionCalls": 1
}{- "estimate": { },
- "quota": { },
- "usage": { },
- "allowed": true,
- "blockers": [
- { }
]
}| cloneId required | integer >= 1 |
object (CloneStrategyGraph) | |
| assetScope | string Value: "all_active" |
| async | boolean |
object | |
| cadenceSec | integer >= 300 |
| maxDecisionCalls | integer [ 1 .. 200 ] |
{- "graph": { },
- "assetScope": "all_active",
- "async": true,
- "window": {
- "preset": "last_6h"
}, - "cadenceSec": 300,
- "maxDecisionCalls": 1
}{- "cloneId": 0,
- "window": {
- "preset": "last_6h",
- "startMs": 0,
- "endMs": 0,
- "cadenceSec": 0,
- "pointCount": 0,
- "decisionCallLimit": 0
}, - "model": {
- "productModelId": "string",
- "provider": "string",
- "providerModel": "string"
}, - "summary": {
- "startingEquityUsd": 0,
- "endingEquityUsd": 0,
- "pnlUsd": 0,
- "pnlPct": 0,
- "maxDrawdownPct": 0,
- "decisionCount": 0,
- "marketActionCount": 0,
- "tokenUsage": {
- "inputTokens": 0,
- "outputTokens": 0,
- "totalTokens": 0
}
}, - "series": [
- {
- "timestampMs": 0,
- "equityUsd": 0,
- "cashUsd": 0,
- "positionsValueUsd": 0
}
], - "assets": [
- {
- "symbol": "string",
- "startingPriceUsd": 0,
- "endingPriceUsd": 0,
- "finalQuantity": 0,
- "finalMarketValueUsd": 0,
- "realizedPnlUsd": 0,
- "feesUsd": 0,
- "pnlUsd": 0,
- "pnlPct": 0,
- "decisions": [
- {
- "timestampMs": 0,
- "branchId": "string",
- "symbol": "string",
- "status": "completed",
- "intendedMarketAction": "string",
- "reasoning": "string",
- "confidence": 0,
- "notionalUsd": 0,
- "quantity": 0,
- "priceUsd": 0,
- "equityUsd": 0,
- "tokenUsage": {
- "inputTokens": 0,
- "outputTokens": 0,
- "totalTokens": 0
}, - "validationWarnings": [
- "string"
]
}
]
}
], - "warnings": [
- "string"
]
}| cloneId required | integer >= 1 |
| limit | integer >= 1 |
{- "jobs": [
- {
- "jobId": "string",
- "cloneId": 0,
- "status": "queued",
- "progress": {
- "totalDecisionCalls": 0,
- "completedDecisionCalls": 0,
- "currentPrompt": {
- "timestampMs": 0,
- "symbol": "string",
- "branchId": "string",
- "status": "running"
}, - "completedPrompts": [
- {
- "timestampMs": 0,
- "symbol": "string",
- "branchId": "string",
- "status": "running"
}
]
}, - "error": "string",
- "createdAt": 0,
- "updatedAt": 0
}
], - "limit": 0
}| cloneId required | integer >= 1 |
| jobId required | string |
{- "jobId": "string",
- "cloneId": 0,
- "status": "queued",
- "progress": {
- "totalDecisionCalls": 0,
- "completedDecisionCalls": 0,
- "currentPrompt": {
- "timestampMs": 0,
- "symbol": "string",
- "branchId": "string",
- "status": "running"
}, - "completedPrompts": [
- {
- "timestampMs": 0,
- "symbol": "string",
- "branchId": "string",
- "status": "running"
}
]
}, - "result": {
- "cloneId": 0,
- "window": {
- "preset": "last_6h",
- "startMs": 0,
- "endMs": 0,
- "cadenceSec": 0,
- "pointCount": 0,
- "decisionCallLimit": 0
}, - "model": {
- "productModelId": "string",
- "provider": "string",
- "providerModel": "string"
}, - "summary": {
- "startingEquityUsd": 0,
- "endingEquityUsd": 0,
- "pnlUsd": 0,
- "pnlPct": 0,
- "maxDrawdownPct": 0,
- "decisionCount": 0,
- "marketActionCount": 0,
- "tokenUsage": {
- "inputTokens": 0,
- "outputTokens": 0,
- "totalTokens": 0
}
}, - "series": [
- {
- "timestampMs": 0,
- "equityUsd": 0,
- "cashUsd": 0,
- "positionsValueUsd": 0
}
], - "assets": [
- {
- "symbol": "string",
- "startingPriceUsd": 0,
- "endingPriceUsd": 0,
- "finalQuantity": 0,
- "finalMarketValueUsd": 0,
- "realizedPnlUsd": 0,
- "feesUsd": 0,
- "pnlUsd": 0,
- "pnlPct": 0,
- "decisions": [
- {
- "timestampMs": 0,
- "branchId": "string",
- "symbol": "string",
- "status": "completed",
- "intendedMarketAction": "string",
- "reasoning": "string",
- "confidence": 0,
- "notionalUsd": 0,
- "quantity": 0,
- "priceUsd": 0,
- "equityUsd": 0,
- "tokenUsage": {
- "inputTokens": 0,
- "outputTokens": 0,
- "totalTokens": 0
}, - "validationWarnings": [
- "string"
]
}
]
}
], - "warnings": [
- "string"
]
}, - "error": "string",
- "createdAt": 0,
- "updatedAt": 0
}| cloneId required | integer >= 1 |
| limit | integer >= 1 |
| symbol | string |
| branchId | string |
| status | string (DecisionRunStatus) Enum: "queued" "running" "completed" "failed" "skipped" |
| scheduledFrom | integer |
| scheduledTo | integer |
{- "runs": [
- { }
], - "filters": { }
}| cloneId required | integer >= 1 |
| symbol required | string |
object (CloneStrategyGraph) | |
| asOfMs | integer |
{- "pipeline": { },
- "asOfMs": 0
}{- "symbol": "string",
- "asOfMs": 0,
- "branches": [
- { }
], - "warnings": [
- "string"
]
}| tier required | string (CloneCapacityTier) Enum: "starter" "builder" "pro" |
| assetCapacity required | integer [ 1 .. 10 ] |
| modelStrength required | string (CloneModelStrength) Enum: "cheap" "medium" "best" |
{- "tier": "starter",
- "assetCapacity": 1,
- "modelStrength": "cheap"
}{- "chainId": 0,
- "vaultAddress": "string",
- "resolverAddress": "string",
- "tier": "starter",
- "assetCapacity": 0,
- "modelStrength": "cheap",
- "amountWei": "string",
- "amountEthString": "string",
- "currency": "ETH"
}Used after the wallet deposit transaction is confirmed. In v1 the frontend supplies the deposit nonce used in the wallet transaction because the backend does not yet create a server-side purchase intent or run an autonomous SignedVault watcher.
The backend still derives the wallet from the authenticated session, verifies the on-chain deposit against the active quote, and only then creates or updates payment, clone, and entitlement state. This endpoint is a confirmation/sync hook, not a general-purpose entitlement grant API.
| depositNonce required | string^\d+$ |
| cloneId | integer >= 1 |
object | |
| tier required | string (CloneCapacityTier) Enum: "starter" "builder" "pro" |
| assetCapacity required | integer [ 1 .. 10 ] |
| modelStrength required | string (CloneModelStrength) Enum: "cheap" "medium" "best" |
{- "depositNonce": "string",
- "cloneId": 1,
- "createClone": {
- "displayName": "string",
- "model": "string"
}, - "tier": "starter",
- "assetCapacity": 1,
- "modelStrength": "cheap"
}{- "purchase": {
- "id": "string",
- "cloneId": 0,
- "status": "granted"
}, - "entitlement": {
- "cloneId": 0,
- "tier": "starter",
- "maxActiveAssets": 0,
- "allowedModelStrength": "cheap",
- "source": "audition_fee",
- "status": "active",
- "economyEventId": "string",
- "reason": "string",
- "effectiveAt": 0,
- "expiresAt": 0,
- "revokedAt": 0,
- "createdAt": 0,
- "updatedAt": 0
}, - "alreadyGranted": true,
- "clone": {
- "id": 0,
- "ownerUserId": "string",
- "displayName": "string",
- "model": "string",
- "status": "active",
- "activeStrategyVersionId": "string",
- "createdAt": 0,
- "updatedAt": 0
}, - "draft": {
- "cloneId": 0,
- "graph": { },
- "updatedByUserId": "string",
- "createdAt": 0,
- "updatedAt": 0
}, - "activeStrategyVersion": {
- "id": "string",
- "cloneId": 0,
- "version": 0,
- "graph": { },
- "model": "string",
- "isActive": true,
- "publishedByUserId": "string",
- "publishedAt": 0
}
}| cloneId required | integer >= 1 |
| allowedSymbols | Array of strings |
| idempotencyKey | string |
| previousAuditionRunId | string or null |
{- "cloneId": 1,
- "allowedSymbols": [
- "string"
], - "idempotencyKey": "string",
- "previousAuditionRunId": "string"
}{- "auditionRun": {
- "id": "string",
- "cloneId": 0,
- "ownerUserId": "string",
- "propAccountId": "string",
- "economyPurchaseId": "string",
- "status": "running",
- "evaluator": "string",
- "startsAt": 0,
- "endsAt": 0,
- "evaluatedAt": 0,
- "profitTargetSummary": "string",
- "failReason": "string",
- "metadata": { },
- "createdAt": 0,
- "updatedAt": 0
}, - "propAccount": {
- "id": "string",
- "cloneId": 0,
- "ownerUserId": "string",
- "strategyVersionId": "string",
- "mode": "sandbox",
- "parentType": "sandbox",
- "parentId": "string",
- "startingBalanceUsdc": 0,
- "currency": "USDC",
- "startsAt": 0,
- "endsAt": 0,
- "status": "string",
- "executionPolicy": { },
- "terminalReason": "string",
- "completedAt": 0,
- "idempotencyKey": "string",
- "createdAt": 0,
- "updatedAt": 0
}, - "alreadyExisted": true
}| auditionRunId required | string |
{- "auditionRun": {
- "id": "string",
- "cloneId": 0,
- "ownerUserId": "string",
- "propAccountId": "string",
- "economyPurchaseId": "string",
- "status": "running",
- "evaluator": "string",
- "startsAt": 0,
- "endsAt": 0,
- "evaluatedAt": 0,
- "profitTargetSummary": "string",
- "failReason": "string",
- "metadata": { },
- "createdAt": 0,
- "updatedAt": 0
}
}| cloneId required | integer >= 1 |
| limit | integer >= 1 |
{- "auditionRuns": [
- {
- "id": "string",
- "cloneId": 0,
- "ownerUserId": "string",
- "propAccountId": "string",
- "economyPurchaseId": "string",
- "status": "running",
- "evaluator": "string",
- "startsAt": 0,
- "endsAt": 0,
- "evaluatedAt": 0,
- "profitTargetSummary": "string",
- "failReason": "string",
- "metadata": { },
- "createdAt": 0,
- "updatedAt": 0
}
]
}| cloneId required | integer >= 1 |
{- "profile": {
- "cloneId": 0,
- "name": "string",
- "username": "string",
- "description": "string",
- "avatarUrl": "string",
- "status": "pending",
- "submittedByUserId": "string",
- "submittedAt": 0,
- "approvedAt": 0,
- "retiredAt": 0,
- "metadata": { },
- "createdAt": 0,
- "updatedAt": 0
}
}| cloneId required | integer >= 1 |
| name required | string |
| username required | string |
| description | string or null |
| avatarUrl | string or null |
| squareImageUrl | string or null |
| iconUrl | string or null |
| imageUrl | string or null |
object (JsonObject) |
{- "name": "string",
- "username": "string",
- "description": "string",
- "avatarUrl": "string",
- "squareImageUrl": "string",
- "iconUrl": "string",
- "imageUrl": "string",
- "metadata": { }
}{- "profile": {
- "cloneId": 0,
- "name": "string",
- "username": "string",
- "description": "string",
- "avatarUrl": "string",
- "status": "pending",
- "submittedByUserId": "string",
- "submittedAt": 0,
- "approvedAt": 0,
- "retiredAt": 0,
- "metadata": { },
- "createdAt": 0,
- "updatedAt": 0
}, - "action": null
}| limit | integer >= 1 |
{- "profiles": [
- {
- "cloneId": 0,
- "name": "string",
- "username": "string",
- "description": "string",
- "avatarUrl": "string",
- "status": "pending",
- "submittedByUserId": "string",
- "submittedAt": 0,
- "approvedAt": 0,
- "retiredAt": 0,
- "metadata": { },
- "createdAt": 0,
- "updatedAt": 0
}
]
}{- "profile": {
- "cloneId": 0,
- "name": "string",
- "username": "string",
- "description": "string",
- "avatarUrl": "string",
- "status": "pending",
- "submittedByUserId": "string",
- "submittedAt": 0,
- "approvedAt": 0,
- "retiredAt": 0,
- "metadata": { },
- "createdAt": 0,
- "updatedAt": 0
}
}| cloneId required | integer >= 1 |
| category required | string |
| detail | string or null |
{- "category": "string",
- "detail": "string"
}{- "report": { }
}| q | string |
| type | string (DefiLlamaSubjectTypeOrAll) Enum: "all" "global" "chain" "protocol" "stablecoin" |
| channel | string (DefiLlamaSourceChannelOrAll) Enum: "all" "capital_base" "capital_flows" "economic_throughput" |
| limit | integer >= 1 |
{- "query": "string",
- "subjectType": "all",
- "channel": "all",
- "subjects": [
- { }
]
}