Socket
Socket
Sign inDemoInstall

connext

Package Overview
Dependencies
9
Maintainers
5
Versions
160
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    connext

Browser SDK for Connext


Version published
Weekly downloads
13
increased by1200%
Maintainers
5
Created
Weekly downloads
 

Readme

Source

Connext Browser SDK

The Connext Browser SDK is the simplest way to add micropayments to any web app.

Connext is the protocol for p2p micropayments, built using state channels on the Ethereum blockchain. This SDK creates a Connext client inside of an iframe in your browser page, and then uses that client along with some minimal UI components to dispatch transfers to a recipient.

The SDK supports the following features:

  • 🎩 Email-based login via Magic.
  • 💳 Debit card on/offboarding via Moonpay.
  • ⛽ End-to-end Ethereum gas (transaction fee) abstraction.
  • 💵 Transfers in USD by default, with optional customizeability to other currencies.
  • 🦊 Login using any popular Ethereum wallet such as Metamask. (coming soon!)

Table of Contents

Installation

You can install the SDK using npm:

npm i --save connext

Quick Start

After installing, import the SDK into your web app, instantiate it and open the login UI.

import ConnextSDK from "connext";

const connext = new ConnextSDK();
await connext.login();

Note that by default the sdk will spin up in sandbox mode on the Rinkeby Ethereum testnet. You will be able to create and send transactions, but they will not use real money. To send real-world value, you can instantiate the sdk in production mode:

const connext = new ConnextSDK("production");

After going through the login flow, your SDK is now ready to go! Open the deposit UI to put funds into Connext:

await connext.deposit();

You can query balance or the user's SDK identifier with:

const id = connext.publicIdentifier; // id = "indra123abc..."
const balance = await connext.balance(); // balance = "1.234567"

And send micropayments using a recipient identifier and amount:

const recipientIdentifier = "indra987zxy...";
const amount = "0.00001";
await connext.transfer(recipientIdentifier, amount);

Lastly, to open the withdraw UI:

await connext.withdraw();

Advanced Configuration

By default the browser SDK uses Dai, a USD-stable Ethereum token and connects to our bootstrap Connext node on testnet or mainnet.

You can use the SDK with your own Connext node and/or token too -- just pass in the following when instantiating:

const connext = new ConnextSDK({
      assetId: "0xabc123..." // Token address (0x0 for Eth)
      nodeUrl: "https://node.example.com"
      ethProviderUrl: "https://infura.com/abc123
   })

API Reference

MethodExampleDescriptionParamsResponse
instantiationconst connext = new ConnextSDK('production');Instantiates SDK with provided config (defaulting to 'sandbox' mode)Either of: String: 'production' or: ConfigObject: { assetId: token address or 0x0 for Eth ethProviderUrl: Ethereum node RPC url nodeUrl: Connext node url }
loginawait connext.login();Opens the login UI
publicIdentifierconst id = connext.publicIdentifier;Gets the user's unique public identifierString e.g. indra123abc...
depositawait connext.deposit();Opens the deposit UI
withdrawawait connext.withdraw();Opens the withdraw UI
balanceawait connext.balance();Gets the user's balanceString e.g. 0.12456
transferawait connext.transfer(id, amount);Sends amount to the specified public identifier- String: public identifier of recipient - String: amount to send
getTransactionHistoryawait connext.getTransactionHistory();Gets a history of previous transactions//TODO

Development

To work on the Connext Browser SDK itself:

$ git clone git@github.com:connext/browser-connext.git
$ make build-and-watch-sdk

Now, you should be able to open the demo and test like so:

$ make serve-demo-app

FAQs

Last updated on 25 Aug 2020

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