npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@parcl-oss/v3-api-client

v0.0.0

Published

<div align="center"> <img height="180" src="https://avatars.githubusercontent.com/u/84755822?s=200&v=4"/> <h1 style="margin-top:-15px;">v3-api-client-ts</h1> </div>

Readme

Quick Start

Typescript client library for interacting with parcl-v3 via an api. Provides easy ways to trade and manage margin accounts.

Api and client library are in alpha. Code may change.

Getting Started

To use the typescript library, add the library to your dependencies in your package.json:

npm install @parcl-oss/v3-api-client

Usage

import { ParclV3ApiClient } from "@parcl-oss/v3-api-client";

const v3ApiClient = new ParclV3ApiClient();

Examples

For the full code and other examples please see examples repo.

Simplified trade:

import {
  setupWalletAndV3ApiClientAndRpcClient,
  deserializeTransactionSetBlockhashAndSignMessage,
  sendAndConfirmTransaction,
} from "../utils";

(async function main() {
  // See utils for more info on setup
  const { wallet, v3ApiClient, rpcClient } =
    setupWalletAndV3ApiClientAndRpcClient();

  // Setup trade inputs
  const marginAccountId = 0; // Margin account with id 0
  const marketId = 23; // SOL market
  const sizeDelta = -20; // 0.00002 SOL short
  const slippageToleranceBps = 200; // 2%

  // Fetch trade transaction and latest blockhash.
  const [response, { blockhash: latestBlockhash }] = await Promise.all([
    v3ApiClient.transactions.getModifyPositionTransaction({
      modifyPositionPayload: {
        owner: wallet.publicKey.toBase58(),
        marginAccountId: marginAccountId.toString(),
        marketId: marketId,
        sizeDelta: sizeDelta.toString(),
        slippageToleranceBps,
      },
    }),
    rpcClient.getLatestBlockhash(),
  ]);

  // Deserialize trade transaction into a versioned transaction. Set blockhash and sign transaction.
  const tx = deserializeTransactionSetBlockhashAndSignMessage(
    response.transaction,
    wallet,
    latestBlockhash
  );

  // Send trade transaction
  console.log("Sending modify_position transaction...");
  const signature = await sendAndConfirmTransaction(tx, rpcClient);
  console.log("Signature: ", signature);
})();

Additional Resources