agentsclimarketplace

Ts sdk client

Skill aptos-labs/aptos-agent-skills/skills/sdk/typescript/ts-sdk-client

AI skills for building secure, modern Aptos dApps — Move contracts, TypeScript SDK, and frontend integration for Claude Code, Cursor, and Copilot.

Install
npx -y skills add aptos-labs/aptos-agent-skills --skill ts-sdk-client

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 19 stars19 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.0 KB, as published. Nobody here has run it

TypeScript SDK: Aptos Client

Purpose

Guide creation and configuration of the Aptos client and AptosConfig in @aptos-labs/ts-sdk. One client instance is used for all read/write and account/transaction APIs.

ALWAYS

  1. Create one Aptos instance per app (singleton) and reuse it – avoid multiple new Aptos(config) for the same network.
  2. Configure network via AptosConfig – use Network.TESTNET or Network.MAINNET (or custom endpoints).
  3. Use environment variables for network/URLs in production – e.g. process.env.APTOS_NETWORK or import.meta.env.VITE_APP_NETWORK.
  4. Use Network.TESTNET as default for development – devnet resets frequently.

NEVER

  1. Do not create a new Aptos client per request – reuse the singleton.
  2. Do not hardcode fullnode/indexer URLs in source when using public networks – use Network enum.
  3. Do not omit network when using custom endpoints – in v5.2+ use Network.CUSTOM with custom URLs.

Basic setup

import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";

const config = new AptosConfig({ network: Network.TESTNET });
const aptos = new Aptos(config);

Network options

// Predefined networks
const devnet = new AptosConfig({ network: Network.DEVNET });
const testnet = new AptosConfig({ network: Network.TESTNET });
const mainnet = new AptosConfig({ network: Network.MAINNET });

// Custom endpoints (network is REQUIRED in v5.2+)
const custom = new AptosConfig({
  network: Network.CUSTOM,
  fullnode: "https://your-fullnode.example.com/v1",
  indexer: "https://your-indexer.example.com/v1/graphql",
  faucet: "https://your-faucet.example.com"
});

Singleton pattern (recommended)

// lib/aptos.ts or similar
import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";

function getNetwork(): Network {
  const raw = typeof process !== "undefined" ? process.env.APTOS_NETWORK : import.meta.env?.VITE_APP_NETWORK;
  switch (raw) {
    case "mainnet":
      return Network.MAINNET;
    case "devnet":
      return Network.DEVNET;
    default:
      return Network.TESTNET;
  }
}

const config = new AptosConfig({ network: getNetwork() });
export const aptos = new Aptos(config);

Optional endpoints (override per service)

const config = new AptosConfig({
  network: Network.TESTNET,
  fullnode: "https://fullnode.testnet.aptoslabs.com/v1", // override default
  indexer: "https://indexer.testnet.aptoslabs.com/v1/graphql",
  faucet: "https://faucet.testnet.aptoslabs.com",
  pepper: "https://...", // keyless pepper service
  prover: "https://..." // keyless prover
});
const aptos = new Aptos(config);

Client config (HTTP, timeouts, Bun)

// Disable HTTP/2 when using Bun (recommended)
const config = new AptosConfig({
  network: Network.TESTNET,
  clientConfig: { http2: false }
});
const aptos = new Aptos(config);

Using the client

After construction, use the same aptos instance for:

  • Account / balance: aptos.getAccountInfo(), aptos.getBalance(), aptos.getAccountResources(), etc.
  • Transactions: aptos.transaction.build.simple(), aptos.signAndSubmitTransaction(), aptos.waitForTransaction().
  • View: aptos.view().
  • Faucet: aptos.fundAccount() (devnet/testnet).
  • Coin / token / object / ANS / staking: aptos.coin.*, aptos.digitalAsset.*, aptos.fungibleAsset.*, aptos.object.*, aptos.ans.*, aptos.staking.*.

Common mistakes

MistakeCorrect approach
Creating Aptos in every functionOne singleton; pass aptos or import from shared module
Using devnet for persistent devPrefer testnet; devnet resets
Custom URLs without Network.CUSTOMSet network: Network.CUSTOM when providing fullnode/indexer/faucet
Forgetting http2: false on BunSet clientConfig: { http2: false } for Bun

References

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.