Skip to main content

Basic Concepts

Games need to communicate not just with their UI, but also the rest of the web2 world that may want to interact with the game state. Paima exposes multiple different endpoints to help both with humans and tools to access the game state.

(REST) OpenAPI

Paima Engine comes with support for OpenAPI in two ways:

  • (for humans) http://localhost:3333/docs/rest/ui to visually see the REST API generated for the node
  • (for robots) http://localhost:3333/docs/rest/spec.json to access the OpenAPI specification for the node

Notably, the specification can be combined with tools like openapi-typescript to generate a typescript library for your application.

To have your game's OpenAPI definition also show up in the docs, simply place an openapi.json file inside the packaged folder generated by your game, and Paima will automatically detect it (this is done automatically for you in the Paima game templates)

(MQTT) AsyncAPI

Paima Engine comes with support for AsyncAPI in two ways:

  • (for humans) http://localhost:3333/docs/asyncapi/ui to visually see the AsyncAPI generated for the node
  • (for robots) http://localhost:3333/docs/asyncapi/spec.yml to access the AsyncAPI specification for the node

You don't typically have to interact with the specification directly, as you typically interact with these through the event log system

(JSON-RPC) EVM RPC API

Some tools only support the EVM JSON-RPC specification. Since Paima applications are non-EVM in nature (they aggregate multiple stacks, some of which might not even be EVM at all), it doesn't support this specification fully.

However, Paima nodes expose a EVM RPC wrapper API that tries its best to emulate the same behavior as EVM.

You can access the wrapper API at http://localhost:3333/rpc/evm

NOTE: this feature is still experimental, and we will update which endpoints work and which ones don't as well as subtle differences at a later time

(JSON) Precompile information

You can find information about all the precompiles of the node at http://localhost:3333/docs/precompiles