# Gateway
There are two types of actions. An `Execute` involves a modification to state, and a `Query` merely fetches information from state.
All actions can be sent over websocket as json payloads at `WEBSOCKET [GATEWAY_WEBSOCKET_ENDPOINT]`
Additionally, you can send executes and queries over HTTP, at `POST [GATEWAY_REST_ENDPOINT]/execute` and `GET/POST [GATEWAY_REST_ENDPOINT]/query` respectively. For executes, the request should be sent with a json payload, while for queries, the payload should be encoded into url query strings.
`HTTP` requests must set the `Accept-Encoding` to include `gzip`, `br` or `deflate`
## Endpoints
### **Testnet**:
* Websocket: `wss://gateway.test.nado.xyz/v1/ws`
* REST: `https://gateway.test.nado.xyz/v1`
## Websocket
{% hint style="info" %}
**Notes on *****keeping websocket connections alive*****:**
* When interacting with our API via websocket, you must send ping frames every 30 seconds to keep the websocket connection alive.
* Ping / Pong frames are built into the websocket protocol and should be supported natively by your websocket library. See [Ping/Pong frames](https://datatracker.ietf.org/doc/html/rfc6455#section-5.5.2) for more info.
{% endhint %}
{% content-ref url="gateway/executes" %}
[executes](https://docs.nado.xyz/developer-resources/api/gateway/executes)
{% endcontent-ref %}
{% content-ref url="gateway/queries" %}
[queries](https://docs.nado.xyz/developer-resources/api/gateway/queries)
{% endcontent-ref %}