{ "openrpc": "1.2.6", "info": { "title": "Circles RPC", "description": "A JSON-RPC API for interacting with a Circle, allowing script execution and authentication.", "version": "1.0.0" }, "methods": [ { "name": "fetch_nonce", "summary": "Fetches a cryptographic nonce for a given public key.", "params": [ { "name": "pubkey", "description": "The client's public key.", "required": true, "schema": { "type": "string" } } ], "result": { "name": "nonce_response", "description": "The cryptographic nonce to be signed.", "schema": { "$ref": "#/components/schemas/NonceResponse" } } }, { "name": "authenticate", "summary": "Authenticates the client using a signed nonce.", "params": [ { "name": "credentials", "description": "The authentication credentials, including the public key and the signed nonce.", "required": true, "schema": { "$ref": "#/components/schemas/AuthCredentials" } } ], "result": { "name": "authentication_status", "description": "The result of the authentication attempt.", "schema": { "type": "object", "properties": { "authenticated": { "type": "boolean" } }, "required": ["authenticated"] } }, "errors": [ { "code": -32002, "message": "Invalid Credentials", "description": "The provided credentials were not valid." } ] }, { "name": "play", "summary": "Executes a Rhai script and returns the result.", "params": [ { "name": "script", "description": "The Rhai script to execute.", "required": true, "schema": { "type": "string" } } ], "result": { "name": "play_result", "description": "The output of the executed script.", "schema": { "type": "string" } }, "errors": [ { "code": -32000, "message": "Execution Error", "description": "The script failed to execute." }, { "code": -32001, "message": "Authentication Required", "description": "The client must be authenticated to use this method." } ] } ], "components": { "schemas": { "AuthCredentials": { "type": "object", "properties": { "pubkey": { "type": "string", "description": "The public key of the client." }, "signature": { "type": "string", "description": "The nonce signed with the client's private key." } }, "required": ["pubkey", "signature"] }, "NonceResponse": { "type": "object", "properties": { "nonce": { "type": "string", "description": "The single-use cryptographic nonce." } }, "required": ["nonce"] } } } }