The best way to access Request Network is using the Request Network SDK with a Request Node. In this way, the Request Node operator pays the protocol fee for creating requests and reduces the number of transactions signed by the end user resulting in a better user experience.
The Request Network SDK is split into multiple packages so that Builders can pick and choose the features they need.

SDK Packages

These are the packages that we think would be most commonly used by Builders to build applications.
Create, update, and retrieve requests.
Sign requests using web3 wallets like Metamask
Sign requests using Ethereum private keys
Standards for data stored on Request, like invoice format
Decrypt encrypted requests using Ethereum private keys
Pay a request using a web3 wallet
Web server that allows easy access to the Request system
Tools for managing currency definitions
For a list of internal SDK packages, see Internal SDK Packages.

Component Packages

These packages offer pre-built components for quickly integrating certain Request Network features.
Component for requesting access to encrypted requests created via Request Finance

Import the packages

The Request Client library can be imported as ES6 or CommonJS modules.
import { RequestNetwork } from '@requestnetwork/request-client.js';
import { Web3SignatureProvider } from '@requestnetwork/web3-signature';
import { payRequest } from '@requestnetwork/payment-processor';
const { RequestNetwork } = require('@requestnetwork/request-client.js');
const { Web3SignatureProvider } = require('@requestnetwork/web3-signature');
const { payRequest } = require("@requestnetwork/payment-processor");

Internal SDK Packages

These packages are published publicly but contain functions that are considered internal to the SDK Packages. It is less likely that a Builder would need to use these packages.
Extensions to the protocol
Indexing and batching of transactions
Storage of Request data on Ethereum and IPFS, with custom indexing
Serialize and deserialize object in the Request Network protocol
Payment detection, to compute the balance.
The Request business logic: properties and actions of requests
Sources and artifacts of the smart contracts
Storage of Request data on Ethereum and IPFS, indexed by TheGraph
Creates transactions to be sent to Data Access, managing encryption
Typescript types shared across @requestnetwork packages
Collection of tools shared between the @requestnetwork packages