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 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 a HTTP 429. We recommend implementing retries with a backoff to handle any rate limits errors that arise. You can also adjust the rate limits of your keys to better balance your QPS allotment across your keys.
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).
- Set the base URL to
https://api.shinami.com/aptos/node/v1
- Send your access key in one of these two headers:
"Authorization: Bearer YOUR_ACCESS_KEY"
"X-Api-Key: YOUR_ACCESS_KEY"
- 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"
}