Authentication

Access Vertex's authenticated streams.

Rate limits

A single wallet address can be authenticated by up to 5 websocket connections, regardless of the originating IP address. Connections exceeding these limits will be automatically disconnected.

Request

To access streams that require authentication, submit a request with the method field set to authenticate.

Connect

WEBSOCKET [SUBSCRIPTIONS_ENDPOINT]

Message

{
  "method": "authenticate",
  "id": 0,
  "tx": {
    "sender": "0x...",
    "expiration": "1..."
  },
  "signature": "0x..."
}

Request Parameters

Parameter
Type
Required
Description

method

string

Yes

authenticate

id

number

Yes

Can be set to any positive integer. Can be used to identify the websocket request / response.

tx

object

Yes

StreamAuthentication object that needs to be signed. See Signing section for more details.

tx.sender

string

Yes

A hex string representing a bytes32 of a specific subaccount.

tx.expiration

string

Yes

Represents the expiration time in milliseconds since the Unix epoch.

signature

string

Yes

Hex string representing hash of the signed StreamAuthentication object.See Signing section for more details.

Signing

The typed data struct that needs to be signed is:

struct StreamAuthentication {
    bytes32 sender;
    uint64 expiration;
}

sender: A hex string representing a bytes32 of a specific subaccount. The signature must be signed by the wallet address specified by sender.

expiration: Represents the expiration time in milliseconds since the Unix epoch. Requests will be denied if the expiration is either smaller than the current time or more than 100 seconds ahead of it.

Response

{
  "result": null,
  "id": 10
}

Last updated