Socket
Socket
Sign inDemoInstall

@solana/web3.js

Package Overview
Dependencies
101
Maintainers
1
Versions
1450
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @solana/web3.js

Solana Javascript API


Version published
Weekly downloads
293K
decreased by-22.13%
Maintainers
1
Created
Weekly downloads
 

Package description

What is @solana/web3.js?

@solana/web3.js is a JavaScript library for interacting with the Solana blockchain. It provides a set of tools and utilities for developers to build applications on Solana, including functionalities for managing accounts, sending transactions, interacting with smart contracts, and querying blockchain data.

What are @solana/web3.js's main functionalities?

Create and Manage Accounts

This feature allows you to create and manage Solana accounts. The code sample demonstrates how to generate a new keypair, which includes a public key and a secret key.

const solanaWeb3 = require('@solana/web3.js');

// Generate a new keypair
const keypair = solanaWeb3.Keypair.generate();
console.log('Public Key:', keypair.publicKey.toBase58());
console.log('Secret Key:', keypair.secretKey);

Send Transactions

This feature allows you to send transactions on the Solana blockchain. The code sample demonstrates how to create a connection to the Solana devnet, airdrop SOL to an account, create a transaction to transfer SOL, and send the transaction.

const solanaWeb3 = require('@solana/web3.js');

(async () => {
  const connection = new solanaWeb3.Connection(solanaWeb3.clusterApiUrl('devnet'), 'confirmed');
  const from = solanaWeb3.Keypair.generate();
  const to = solanaWeb3.Keypair.generate();

  // Airdrop SOL to the from account
  await connection.requestAirdrop(from.publicKey, solanaWeb3.LAMPORTS_PER_SOL);

  // Create a transaction
  const transaction = new solanaWeb3.Transaction().add(
    solanaWeb3.SystemProgram.transfer({
      fromPubkey: from.publicKey,
      toPubkey: to.publicKey,
      lamports: solanaWeb3.LAMPORTS_PER_SOL / 100,
    })
  );

  // Sign and send the transaction
  const signature = await solanaWeb3.sendAndConfirmTransaction(connection, transaction, [from]);
  console.log('Transaction signature:', signature);
})();

Interact with Smart Contracts

This feature allows you to interact with smart contracts deployed on the Solana blockchain. The code sample demonstrates how to create a transaction that calls a smart contract and send the transaction.

const solanaWeb3 = require('@solana/web3.js');

(async () => {
  const connection = new solanaWeb3.Connection(solanaWeb3.clusterApiUrl('devnet'), 'confirmed');
  const programId = new solanaWeb3.PublicKey('YourProgramIdHere');
  const account = solanaWeb3.Keypair.generate();

  // Create a transaction to call a smart contract
  const transaction = new solanaWeb3.Transaction().add(
    new solanaWeb3.TransactionInstruction({
      keys: [{ pubkey: account.publicKey, isSigner: true, isWritable: true }],
      programId,
      data: Buffer.alloc(0), // Add your instruction data here
    })
  );

  // Sign and send the transaction
  const signature = await solanaWeb3.sendAndConfirmTransaction(connection, transaction, [account]);
  console.log('Transaction signature:', signature);
})();

Query Blockchain Data

This feature allows you to query data from the Solana blockchain. The code sample demonstrates how to get account information and the recent blockhash from the blockchain.

const solanaWeb3 = require('@solana/web3.js');

(async () => {
  const connection = new solanaWeb3.Connection(solanaWeb3.clusterApiUrl('devnet'), 'confirmed');
  const publicKey = new solanaWeb3.PublicKey('YourPublicKeyHere');

  // Get account info
  const accountInfo = await connection.getAccountInfo(publicKey);
  console.log('Account Info:', accountInfo);

  // Get recent blockhash
  const recentBlockhash = await connection.getRecentBlockhash();
  console.log('Recent Blockhash:', recentBlockhash);
})();

Other packages similar to @solana/web3.js

Readme

Source

Build status codecov esdoc
npm npm-downloads david david
semantic-release code-style-prettier

Solana JavaScript API

This is the Solana Javascript API built on the Solana JSON RPC API

Latest API Documentation

Installation

Yarn

$ yarn add @solana/web3.js

npm

$ npm install --save @solana/web3.js

Browser bundle

<script src="https://github.com/solana-labs/solana-web3.js/releases/download/v0.0.6/solanaWeb3.min.js"></script>

BPF program development

clang-7.0 must be installed to build BPF programs, such as examples/bpf-c-noop/. See bpf-sdk/README.md for installation details.

Rust must be installed to build Rust BPF programs, see: https://www.rust-lang.org/install.html such as examples/bpf-rust-noop/. See https://www.rust-lang.org/install.html for installation details.

Usage

Javascript

const solanaWeb3 = require('@solana/web3.js');
console.log(solanaWeb3);

ES6

import solanaWeb3 from '@solana/web3.js';
console.log(solanaWeb3);

Browser bundle

// `solanaWeb3` is provided in the global namespace by the `solanaWeb3.min.js` script bundle.
console.log(solanaWeb3);

Local Network

The solana-localnet program is provided to easily start a test Solana cluster locally on your machine. Docker must be installed. The JSON RPC endpoint of the local cluster is http://localhost:8899.

To start, first fetch the latest Docker image by running:

$ npx solana-localnet update

Then run the following command to start the cluster

$ npx solana-localnet up

While the cluster is running logs are available with:

$ npx solana-localnet logs -f

Stop the cluster with:

$ npx solana-localnet down

Flow

A Flow library definition is provided at module.flow.js. Add the following line under the [libs] section of your project's .flowconfig to activate it:

[libs]
node_modules/@solana/web3.js/module.flow.js

Examples

See the examples/ directory for small snippets.

Standalone examples:

Releases

Releases are available on Github and npmjs.com

Each Github release features a tarball containing API documentation and a minified version of the module suitable for direct use in a browser environment (<script> tag)

Keywords

FAQs

Last updated on 12 Jun 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc