Manifold · Schema
Manifold OAuth2 Authentication API Schemas
JSON Schema definitions for the Manifold OAuth2 Authentication API request and response payloads.
NFTCreator ToolsSmart ContractsBlockchainWeb3EthereumERC721ERC1155RoyaltiesMarketplaceMintingOpenSeaBaseOptimism
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://manifold.xyz/schemas/oauth2-authentication",
"title": "Manifold OAuth2 Authentication API Schemas",
"description": "JSON Schema definitions for the Manifold OAuth2 Authentication API request and response payloads.",
"$defs": {
"VerifyRequest": {
"$id": "#/VerifyRequest",
"title": "VerifyRequest",
"description": "Request body for POST /verify (Signature Grant). Provides the session token obtained from the Manifold frontend client.",
"type": "object",
"required": ["token"],
"properties": {
"token": {
"type": "string",
"description": "The session token retrieved from the Manifold Ethereum Provider or the `m-authenticated` event on the frontend."
}
},
"additionalProperties": false
},
"VerifyResponse": {
"$id": "#/VerifyResponse",
"title": "VerifyResponse",
"description": "Successful response from POST /verify containing the authenticated wallet address.",
"type": "object",
"properties": {
"unwrappedJWT": {
"type": "object",
"description": "The decoded JWT payload.",
"properties": {
"address": {
"type": "string",
"description": "The Ethereum wallet address of the authenticated user.",
"pattern": "^0x[0-9a-fA-F]{40}$",
"examples": ["0xAbCd1234567890AbCd1234567890AbCd12345678"]
}
},
"required": ["address"]
}
},
"required": ["unwrappedJWT"]
},
"TokenRequest": {
"$id": "#/TokenRequest",
"title": "TokenRequest",
"description": "Request body for POST /token (Authorization Code Grant). Exchanges a one-time code for a long-lived access token.",
"type": "object",
"required": ["clientId", "code", "clientSecret", "signature"],
"properties": {
"clientId": {
"type": "string",
"description": "The client ID for the Developer App, obtained from the Manifold Developer Portal."
},
"code": {
"type": "string",
"description": "The one-time authorization code received after the user completes the OAuth2 authorization flow."
},
"clientSecret": {
"type": "string",
"description": "The client secret for the Developer App, obtained from the Manifold Developer Portal."
},
"signature": {
"type": "string",
"description": "A cryptographic signature used to authenticate the token exchange request."
}
},
"additionalProperties": false
},
"TokenResponse": {
"$id": "#/TokenResponse",
"title": "TokenResponse",
"description": "Successful response from POST /token containing a 30-day access token.",
"type": "object",
"properties": {
"access_token": {
"type": "string",
"description": "A 30-day access token for server-side access to private Manifold user data."
},
"expires_in": {
"type": "integer",
"description": "Token lifetime in seconds. Typically 2592000 (30 days).",
"example": 2592000
}
},
"required": ["access_token", "expires_in"]
},
"ErrorResponse": {
"$id": "#/ErrorResponse",
"title": "ErrorResponse",
"description": "Error response returned when authentication or validation fails.",
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Machine-readable error code."
},
"error_description": {
"type": "string",
"description": "Human-readable description of the error."
}
}
}
}
}