Quantum
  • Welcome to Quantum
  • Developer portal
    • Pricing
  • Self-Custody Infrastructure
    • Pincode Management
    • Private Key Management
  • Quickstart guide
  • Authentication
    • API Authentication
  • Faucets
  • Networks & URLs
  • Walletify Api
    • Overview
    • Getting started
    • User Management
    • Signing Methods
    • Testnet Assets
    • Basic Guides
      • Create a user
      • Retrieve a user
      • Update a user
      • Delete a user
      • Create a signing method
      • Update a signing method
      • Delete a signing method
      • Create a wallet
      • Retrieve wallet
      • Archive a wallet
      • Import a wallet
      • Export a wallet
      • Retrieve native balance
      • Retrieve ERC20 tokens
      • Retrieve NFTs
      • Transfer a native token
      • Transfer an ERC20 token
      • Transfer an NFT
      • Transfer a fungible token
      • Signatures
      • Read a contract
      • Execute a contract call
      • Get Transaction status
      • Resubmit a transaction
      • Get wallet events
      • Webhooks
    • Advanced Guides
      • Burn an NFT
      • Filter Spam NFTs
      • Filter NSFW NFTs
      • SWAP Token Pairs
      • Gasless/Meta Transactions
      • Sign RAW Transactions
      • Using Fiat Onramp with Walletify-API
      • Deploy an Ethereum contract
      • Integrate with WalletConnect
      • Set Up NFT Token Gating
      • Chain Specific Fields
      • Integrate with WalletConnect
      • Encrypted PIN Transfer
  • Nft Wizard Api
    • Overview
    • Getting started
    • Basic Guides
      • Get any NFT info
      • Get any NFT contract
      • Get NFTs by any wallet
      • Get wallets by any NFT
      • Create contract
      • Retrieve Contract
      • Delete Contract
      • Check Contract Status
      • Retrieve Contract Metadata
      • Update Contract Metadata
      • Create Token-type (NFT template)
      • Retrieve Token-type (NFT template)
      • Delete Token-type (NFT Template)
      • Check Token-type Status
      • Retrieve Token-type Metadata
      • Update Token-type Metadata
      • Mint an NFT
      • Batch Mint NFTs
      • Update NFT Metadata
      • Retrieve NFT Metadata
      • Add Audio to your NFTs
      • Add Video to your NFTs
      • Store NFT Media
      • Webhooks
    • Advanced Guides
      • Mass Minting
      • Speed Up Minting
      • Dynamic NFTs
      • Configure Royalties
      • Create Company Minter Wallet
      • Retrieve Company Minter Wallets
      • Store NFT Metadata on IPFS
      • View NFT on sandbox/testnet
    • NFT Configuration
      • Attributes
      • Animation & Media
      • Collection Info
      • Max Supply
      • Mint Number
      • Burnable
      • Metadata Storage
  • TMINTER API
    • Overview
    • Getting started
    • Basic Guide
      • Retrieve Any NFT Information
      • Retrieve NFT Contract Information
      • Retrieve NFTs by Wallet Address
      • Retrieve Wallets by NFT
      • Create a New NFT Contract
      • Retrieve a Contract
      • Delete a Contract
      • Check Contract Status
      • Retrieve Contract Metadata
      • Update Contract Metadata
      • Create Token-Type
      • Retrieve Token-Type
      • Delete Token-Type
      • Check Token-Type Status
      • Retrieve Token-Type Metadata
      • Update Token-Type Metadata
      • Mint a Single NFT
      • Batch Mint Multiple NFTs
      • Update NFT Metadata
      • Retrieve NFT Metadata
      • Add Audio to Your NFTs
      • Add Video to Your NFTs
      • Store NFT Media
      • Webhooks for NFT Events
    • Advance Guide
      • Dynamic NFT Creation
      • Token Economics and Supply Control
      • Advanced Minting: Royalty Distribution
      • Cross-Chain NFT Minting
      • NFT Sharding (Fractional Ownership)
      • Batch NFT Minting with Custom Metadata
      • Add Interactivity to NFTs
      • Advanced Media Integration: VR and AR
      • Webhook Triggers for Automated Processes
Powered by GitBook
On this page
  • Context
  • Integrating the Wallet-API with WalletConnect
  • Setup
  1. Walletify Api
  2. Advanced Guides

Integrate with WalletConnect

PreviousDeploy an Ethereum contractNextSet Up NFT Token Gating

Last updated 10 months ago

Context

is a protocol that connects other applications (dApps) to multiple blockchain wallet solutions. It works by generating a URI that can be scanned as a QR code or pasted into a browser or desktop wallet to establish a secure connection.

If you are providing your own wallet solution, through the Venly Wallet-API, It may be useful to also look into integrating WalletConnect to expand the reach and possibilities of your wallet.

🚧

It is important to note that there is a big difference with a WalletConnect integration, based on the Venly wallet solution you are using:

  • : The Wallet-Widget is a frontend integration, where Venly authenticates (and therefore knows) the actual end-users. For these end-users, Venly is in charge of offering a . Nothing has to be done at your end. Every end-user you onboard through the Wallet-Widget, will have the ability to connect its Venly wallet with WalletConnect. Widget End-users are therefore able to use any application (dApp) that supports WalletConnect.

  • The Wallet-API solution is a purely backend-to-backend integration. Venly does not know the actual end-user of the wallets that are created through the Wallet-API. Since WalletConnect is a "client-side" integration (the end user has to scan a QR code and connect its wallet), you have to provide your own integration inside your own (client-side) app. A brief explanation is added in the next section.

Integrating the Wallet-API with WalletConnect

Integrating with WalletConnect

Setup

An integration with WalletConnect is done through a Client-side integration. Any dApp will communicate, through the WalletConnect protocol, with your client-side application. This is done through a set of relayers that facilitate the connection between your app and the dApp.

The way it works is that when a user wants to interact with a dApp, the dApp generates a unique URI that contains a cryptographic key. The user then scans or copies the QR code using your wallet application, which establishes a secure, encrypted connection between your wallet app and the dApp (through the relay servers). The dApp can then send transaction requests to your wallet app, which the user can review and approve within your app.

Web3Wallet-SDK

There are two SDKs that WalletConnect provides:

  • Web3Modal: this is the SDK that a dApp needs to implement if they want to integrate with multiple wallet solutions at the same time.

  • Web3Wallet: this is the SDK that a Wallet-solution (your app) needs to implement when you want to provide WalletConnect access to your end users.

  • Setting up the connection between a dApp and your app using the relay servers

  • Accepting sign transaction requests

  • Accepting message signature requests

To actually sign and perform a blockchain transaction, using the Venly Wallet-API, you will have to follow the following flow:

  1. Your client-side app receives a transaction request from a dApp through WalletConnect

  2. Your client-side app sends this request to your backend. This call is secured with any kind of user-authentication mechanism that you have.

    • You'll need to know the wallet-id, linked to the actual end-user

  3. The response of the Venly-API is returned (and translated) to your client-side app.

In order to expose your wallet solution in WalletConnect, you will have to integrate the in your client-side application. This library will take care of:

Your backend translates the WalletConnect transaction request to the relevant Wallet-API request (e.g. )

You'll need the

Web3Wallet-SDK
POST /api/transactions/execute
PIN code of that wallet
WalletConnect
Wallet-Widget
WalletConnect integration
Wallet-API:
Integrating with WalletConnect