Shinami's Node Service provides a fast, reliable way to interact with the Aptos blockchain.

You'll find key usage notes below and API endpoints in the folders on the left nav beneath this doc. If you ever need help with an integration question, you can reach out to us.

Authentication, Rate Limits, and Error Handling

Authentication

Our service URL is https://api.shinami.com/aptos/node/v1. You authenticate via an access key passed in a header ("X-Api-Key: ACCESS_KEY" or "Authorization: Bearer ACCESS_KEY"). These steps are done automatically by our TypeScript SDK. For more information, including how to set up API access keys, see our Authentication and API Keys guide.

Rate Limits

When you surpass the QPS limit for a key, we return an HTTP 429. We recommend implementing retries with a backoff to handle any rate limits errors that arise.

Error Handling

See our Error Reference guide.

How to Send a Request

When sending a request to our Node Service, make sure to do the following two things (done automatically by our TypeScript SDK).

  1. Set the base URL to https://api.shinami.com/aptos/node/v1
  2. Send your access key in one of these two headers:
    1. "Authorization: Bearer YOUR_ACCESS_KEY"
    2. "X-Api-Key: YOUR_ACCESS_KEY"
  3. Use an access key tied to the network you want to interact with. When you create an API access key in your Shinami dashboard, you give it rights to exactly one network. We route to Mainnet or Testnet based on the API access key you send in the request.

Sample Request

Example Request Template

The TypeScript example uses the Shinami Clients SDK.

Replace all instances of {{name}} with the actual value for that name

curl https://api.shinami.com/aptos/node/v1/accounts/{{accountAddress}} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {{aptosNodeServiceAccessKey}}"
import { createAptosClient } from "@shinami/clients/aptos";

const shinamiAptosClient = createAptosClient(SHINAMI_NODE_ACCESS_KEY);

await aptosClient.getAccountInfo({ accountAddress: {{accountAddress}} });

Example Response

{
   "authentication_key" : "0x4d3e2cfa689883a76ea1600451e42691f1615153d4f44b89c92149afea3ceda3",
   "sequence_number" : "51"
}
{
   "authentication_key" : "0x4d3e2cfa689883a76ea1600451e42691f1615153d4f44b89c92149afea3ceda3",
   "sequence_number" : "51"
}