Request Network Docs
WebsiteGithubStatusDiscord
  • Request Network Docs
  • Request Network API
    • Create and Pay Requests
    • Crosschain Payments
    • EasyInvoice: API Demo App
    • API Portal: Manage API Keys and Webhooks
      • Manage API Keys and Webhooks programmatically
    • Full API Reference
  • General
    • Lifecycle of a Request
    • Request Scan
    • Supported Chains
      • Smart Contract Addresses
    • Request Network Token List
  • Advanced
    • Request Network SDK
      • Get Started
        • Quickstart - Browser
        • Quickstart - Node.js
        • Installation
        • SDK Injector
        • Request Node Gateways
      • SDK Demo Apps
        • Request Invoicing
          • Pay from Safe Multisig
        • Request Checkout
        • Components
          • Create Invoice Form
          • Invoice Dashboard
          • Payment Widget
          • Add Stakeholder
      • SDK Guides
        • Request Client
          • Configure the Request Client
          • Updating a Request
          • Payment Reference
          • Compute a Request ID without creating the request
          • Use your own signature mechanism
          • Support a new currency
          • In-Memory Requests
        • Encryption and Decryption
          • Encrypt with a wallet signature using Lit Protocol
          • Encrypt with an Ethereum private key
          • Share an encrypted request
        • Payment
          • Detect a payment
          • Native Payment
          • Conversion Payment
          • Declarative Payment
          • Configuring Payment Fees
          • Single Request Forwarder
          • Batch Payment
          • Swap-to-Pay Payment
          • Swap-to-Conversion Payment
          • Transferable Receivable Payment
          • Meta Payments
          • Escrow Payment
          • Streaming Payment
          • Pay through a proxy-contract with a multisig
          • Hinkal Private Payments
        • Mobile using Expo
      • SDK Reference
        • request-client.js
          • RequestNetwork
            • createRequest()
            • computeRequestId()
            • fromRequestId()
            • fromIdentity()
            • fromTopic()
          • Request
            • waitForConfirmation()
            • getData()
            • refresh()
            • cancel()
            • accept()
            • increaseExpectedAmountRequest()
            • reduceExpectedAmountRequest()
          • IIdentity
          • IRequestDataWithEvents
          • PaymentReferenceCalculator
        • payment-processor
          • payRequest()
        • web3-signature
          • Web3SignatureProvider
        • epk-signature
          • EthereumPrivateKeySignatureProvider
        • epk-decryption
          • EthereumPrivateKeyDecryptionProvider
    • Protocol Overview
      • SDK and Request Node Overview
      • Payment Networks
      • Private Requests using Encryption
      • Smart Contracts Overview
    • Internal SDK Architecture
      • Request Logic
      • Advanced Logic
      • Transaction
      • Data-access
      • Storage
      • Data flow
      • Request IPFS network
  • FAQ
  • Glossary
  • Contributing
Powered by GitBook
On this page
  • SDK Packages
  • Component Packages
  • Import the packages
  • Internal SDK Packages

Was this helpful?

Edit on GitHub
Export as PDF
  1. Advanced
  2. Request Network SDK
  3. Get Started

Installation

PreviousQuickstart - Node.jsNextSDK Injector

Last updated 10 months ago

Was this helpful?

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.

Package
Description

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 .

Component Packages

These packages offer pre-built components for quickly integrating certain Request Network features.

Package
Description

A form for creating invoices in Request Network

A dashboard for viewing and paying invoices in Request Network

A dialog box for granting third-party access to an encrypted invoice 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

Package
Description

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

These packages are published publicly but contain functions that are considered internal to the . It is less likely that a Builder would need to use these packages.

Internal SDK Packages
SDK Packages
@requestnetwork/request-client.js
@requestnetwork/web3-signature
@requestnetwork/epk-signature
@requestnetwork/data-format
@requestnetwork/epk-decryption
@requestnetwork/payment-processor
@requestnetwork/request-node
@requestnetwork/currency
@requestnetwork/create-invoice-form
@requestnetwork/invoice-dashboard
@requestnetwork/add-stakeholder
@requestnetwork/advanced-logic
@requestnetwork/data-access
@requestnetwork/ethereum-storage
@requestnetwork/multi-format
@requestnetwork/payment-detection
@requestnetwork/request-logic
@requestnetwork/smart-contracts
@requestnetwork/thegraph-data-access
@requestnetwork/transaction-manager
@requestnetwork/types
@requestnetwork/utils