Readiness Assessment: Are users ready to transact on your Dapp?

Assist.js detects your end-user’s Web3 environment in real-time and presents the results via a developer-friendly API.

REQUEST A DEMO

Getting Started

 

1. Initialize Assist.js in your Dapp

After creating your unique API Key, include a single JS file with your configuration settings. And just initialize Assist.js on the first page of your Dapp.

Dapps with complex architectures can call our API through a singleton. The file linked below demonstrates this pattern.

Download blocknative_config.js

2. Get the State of Every End-User

Once initialized, Assist.js will return each user’s state on page load.

Why use Assist.js? ¯\_()_/¯

Keeping track of all of the possible user states is complex and error-prone. Things change on the fly. Instead, free yourself – and your team – from this never-ending headache and hours of follow-on support work. Let us handle all of the nuances and edge cases for you.

Dig Deeper

Dig Deeper and Understand User States

When end-users load your Dapp, we detect and report their current Web3 state. You can use this API to trigger specific actions in your Dapp. This API also powers our Onboarding Assistance capabilities.



  • Is the user in a desktop environment?
    Is the user in a desktop environment?
    mobileDevice: Boolean

    Some Dapps don’t support mobile browsers. If the mobileDevice = TRUE you can choose where to direct the user.

  • Is the user on a supported web browser?
    Is the user on a supported web browser?
    validBrowser: Boolean

    Not all browsers support Dapp transactions. We keep a list of currently supported browsers so you don’t have to.

  • Who are they using to connect to the network?
    Who are they using to connect to the network?
    currentProvider: String

    We detect MetaMask, Trust, Toshi, Cipher, Mist, Parity, Infura (including socket version) and localhost if you’re testing locally via Ganache.

  • Does the user have MetaMask Installed?
    Does the user have MetaMask Installed?
    web3Wallet: Boolean

    Since a browser wallet is required to transact with most Dapps, we can make sure your end-user has installed MetaMask.

  • What is the user's current account balance?
    What is the user's current account balance?
    accountBalance: String

    You can use this value to preemptively detect when transactions will fail due to insufficient balance.

  • Is the user Logged In to MetaMask?
    Is the user Logged In to MetaMask?
    walletLoggedIn: Boolean

    Your end-user may have installed MetaMask, but to interact with your Dapp they need to log in. We’ll make sure they’re ready to transact.

  • Has the user authorized MetaMask?
    Has the user Authorized MetaMask?
    accessToAccounts: Boolean

    Not only does your user need to be logged in, in newer versions of Web3 they must grant access to their wallet. We check for this.

  • Is the user connected to the right network?
    Is the user connected to the right network?
    correctNetwork: Boolean

    Wallets can connect to different networks. We let you know which network the Wallet is currently connected to and make sure your users are directed to the right one.

  • What network is the user currently on?
    What network is the user currently on?
    userCurrentNetworkId: Number

    Wallets can connect to different networks. As a developer, you can choose your Dapp’s preferred network, and we’ll make sure users are directed to the right one.

  • Does the user have enough funds to interact with your Dapp?
    Does the user have enough funds to interact with your Dapp?
    minimumBalance: String

    We let you optionally set a minimum ETH balance that is required for end-users to use your Dapp.

  • What is the user's current account address?
    What is the user's current account address?
    accountAddress: String

    We keep track of account changes made by the user in MetaMask and look up the active wallet address.