Skip to main content Link Search Menu Expand Document (external link)

Fuels-ts SDK logo

Quickstart

We recommend to start on Quickstart to speed-up and build your first DApp using Fuel.

The Fuel Ecosystem

Learn more about the Fuel Ecosystem.

Install

YARN

yarn add fuels

NPM

npm install fuels --save

Import

import { Wallet } from "fuels";

// Random Wallet
console.log(Wallet.generate());

// Using privateKey Wallet
console.log(new Wallet("0x0000...0000"));

Calling Contracts

import { Wallet, Contract, BigNumberish, BN } from "fuels";
import abi from "./abi.json";

const wallet = new Wallet("0x..."); // private key with coins
const contractId = "0x...";
const contract = new Contract(contractId, abi, wallet);

// All contract methods are available under functions
// with the correct types
const { transactionId, value } = await contract.functions
  .foo<[BigNumberish], BN>("bar")
  .call();

console.log(transactionId, value);

READ MORE

Generate Contract Types from ABI

Dependencies

yarn add -D typechain typechain-target-fuels

Generate Types

yarn exec typechain --target=fuels --out-dir=types abi.json

Using Generated Types

import { Wallet } from "fuels";
import { MyContract__factory } from "./types";

const contractId = "0x...";
const wallet = new Wallet("0x...");
const contract = MyContract__factory.connect(contractId, wallet);

// All contract methods are available under functions
// with the correct types
const { transactionId, value } = await contract.functions.my_fn(1n).call();
console.log(transactionId, value);

Deploying Contracts

import { Provider, Contract } from "fuels";
// Byte code generated using: forc build
import bytecode from "./bytecode.bin";

const factory = new ContractFactory(bytecode, [], wallet);
const contract = await factory.deployContract(factory);

console.log(contract.id);

License

The primary license for this repo is Apache 2.0, see LICENSE.