@biconomy/mexa

    2.0.20 • Public • Published

    Enable meta transactions or gasless transactions in your DApp by integrating Mexa SDK in your DApp

    Biconomy SDK (Mexa)

    Introduction

    Biconomy SDK (Mexa), enables meta transactions or gasless transactions in your DApp (Decentralized Application) out of the box without any change in your smart contracts and just a few lines of code in your DApp to integrate mexa.

    By using Mexa, dapp users are able to use the dapp and send transactions free of cost while developer pays the gas fee on their behalf as a part of user acquisition cost.

    Let’s Get Started

    1. Go to Mexa Dashboard to register your DApp and methods on which to enable meta transactions and copy your DApp ID and API Key.
    2. Install Biconomy SDK (Mexa)
    npm install @biconomy/mexa

    Import and initialize mexa and web3

    import { Biconomy } from "@biconomy/mexa";
    const biconomy = new Biconomy(<web3 provider>,{apiKey: <API Key>});
    web3 = new Web3(biconomy);

    Note: <web3 provider> could be window.ethereum for Metamask or portis.provider for Portis and so on.

    Initialize your dapp after mexa initialization

    biconomy.onEvent(biconomy.READY, () => {
     // Initialize your dapp here
    }).onEvent(biconomy.ERROR, (error, message) => {
     // Handle error while initializing mexa
    });
    

    Congratulations!! You have now enabled meta transactions in your DApp. Interact with web3 the way you have been doing it.

    Now whenever there is a write transaction action initiated from user (registered in mexa dashboard also), mexa will ask for user’s signature and handle the transaction rather than sending signed transaction directly to blockchain from user’s wallet.

    Configuration

    Biconomy constructor takes 2 parameters

    const biconomy = new Biconomy(<existing web3 provider>, options);

    <existing web3 provider>

    object required

    Any web3 provider that supports personal_sign, eth_accounts, eth_sendTransaction, eth_call RPC methods and web3 subscriptions.

    For example, it can be window.ethereum for Metamask or portis.provider for Portis and so on.

    options

    object required

    A json object having configuration values for initializing mexa sdk.

    Key Name Value Required? Description
    dappId

    type: string

    DApp ID can be found on mexa dashboard.

    true Unique id assigned to each DApp on mexa dashboard.
    apiKey

    type: string

    API Key can be found on mexa dashboard.

    true Unique id assigned to each DApp that used to authenticate requests coming from mexa sdk.
    strictMode

    type: boolean

    default value: false

    Value could be true or false.

    false

    If strict mode is on, and method/api called by user is not registered on mexa dashboard then no transaction will be initiated.

    If strict mode is off, and method called by user is not registered on mexa dashboard then existing provider will be used to send user transaction but in this case, the user will have to pay the transaction fee.

    #### Example:

    For metamask biconomy initialization code would look like:

    let options = {
     apiKey: <API KEY>,
     strictMode: true
    };
    const biconomy = new Biconomy(window.ethereum, options);

    Install

    npm i @biconomy/mexa

    DownloadsWeekly Downloads

    1,275

    Version

    2.0.20

    License

    ISC

    Unpacked Size

    6.35 MB

    Total Files

    12

    Last publish

    Collaborators

    • livingrock7
    • sachin.tomar