Getting Started with SDK

How to setup the AkashicPay SDK for use in your codebase

Installing

Install the package with

npm install @akashicpay/sdk
#or
yarn add @akashicpay/sdk

Register

Create an AkashicLink account and go through the registration process on AkashicPay.com including setting up callback URLs as desired, as described in the Quick Guide.

l2Address - Located at the top bar of AkashicLink

privateKey - Login AkashicPay -> KeyPair Settings -> Use the API/SDK KeyPair

Build

This example configuration uses many optional build arguments, for illustration purposes.

import type { IHttpClient, ILogger } from "@akashicpay/sdk";
import { ACDevNode, ACNode, AkashicPay, Environment } from "@akashicpay/sdk";
import axios from "axios";
import pino from "pino";
import { Environment } from "@akashicpay/sdk/src";

// use whatever secret management tool you prefer to load the private key
// from your AkashicLink account. It should be of the form:
// `"0x2d99270559d7702eadd1c5a483d0a795566dc76c18ad9d426c932de41bfb78b7"`
// In development, each developer could have their own, or omit this (and
// the l2Address), in which case the SDK will create and use a new pair.
// you can instead use your Akashic Link account's 12-word phrase, using the
// `build()` argument `recoveryPhrase`
const privateKey = process.env.akashicKey;
// this is the address of your AkashicLink account. Of the form "AS1234..."
const l2Address = process.env.l2Address;
// in development, you will use our testnet and testnet L1 chains
const environment =
  process.env.environment == "production"
    ? Environment.Production
    : Environment.Development;
// you're strongly encouraged to pass an instance of your preferred logger
const logger: ILogger = pino({ name: "AkashicPaySDK" });
// optional, the SDK will try to find the fastest node if omitted
const targetNode =
  environment == "development" ? ACNode.SingaporeDAI : ACDevNode.Singapore1;

// instantiate an SDK instance, ready to use
const akashicPay = await AkashicPay.build({
  privateKey,
  l2Address,
  environment,
  targetNode,
  logger,
});

You are now ready to use AkashicPay! To learn more about the different functions, go to the next page. Continue reading for more details about advanced setup of AkashicPay and testing.

Testing

You can also use AkashicPay with the AkashicChain Testnet & Sepolia (Ethereum) and Shasta (Tron) testnets, useful for local development and staging environments. To do this, follow the same setup as above, but use testnet versions of AkashicLink and testnet.akashicpay.com. The SDK setup is almost identical, though note that the "Development" enviropnment must be used.

import { AkashicPay, Environment } from "@akashicpay/sdk";

const privateKey = process.env.akashicKey;
const l2Address = process.env.l2Address;

const akashicPay = await AkashicPay.build({
  privateKey,
  l2Address,
  environment: Environment.Development,
});

// Now, e.g. create a wallet on the Tron Shasta testnet
const { address } = await akashicPay.getDepositAddress(
  NetworkSymbol.Tron_Shasta,
  "EndUser123"
);

Callbacks

To complete the integration, please ensure you add your Callback URLs in the designated configuration settings. These URLs are essential for enabling secure communication between our systems and handling authentication or data exchange seamlessly.

For more in-depth technical guidance—including required URL formats, security best practices, and troubleshooting—please refer to our Callback Documentation.

Last updated

Was this helpful?