Flow Wallet Providers

    Purpose:

    Some wallet providers, like Blocto, subsidize the FLOW network fees for their users.

    • Are other wallet providers doing something similar?
    • Can we determine what wallet provider an address is using from payer or any other transaction data?
    db_img

    >
    > ‘Flow is a new blockchain built for the next generation of apps, games, and the digital assets that power them. Flow is easy to use and powerful to build with. Every aspect of the platform was designed from the ground up to support exceptional user experience at mainstream scale.’

    db_img
    db_img

    Are other wallet providers doing something similar?⤵️

    Step 1:

    Reading the Flow documentation we find the following information about wallets for the network:

    • Blocto is a custodial web, iOS and Android wallet

    • Ledger offers hardware wallets

    • Dapper Wallet is a custodial web wallet

    • Lilico is a non-custodial web wallet focused on NFTs

    • Finoa offers a institutional-grade custodial wallet

    • Kraken is an exchange providing deposit addresses for FLOW

      - source

    Thus we have found 3 custodial wallets (including Blocto), 2 non-custodial, and 1 exchange.

    Step 2:

    Digging deeper, we find transaction fee information provided on the FLOW forum:

    > ‘Flow was designed for seamless user experience and so, the payer signature on the transaction will be responsible for paying the fees. In many cases, this will be the wallet or dapp submitting the transaction on the user’s behalf. In the case of non-custodial wallets like Ledger, the user will be responsible for paying the fee directly.’

    - source

    Armed with this data, we can rule out Ledger and Lilico, as they are non-custodial wallets. We have also been given the clue to search for transactions where multiple parties are involved.

    Step 3:

    Using the ‘flow.core’ tables found on Flipside’s blockchain data engine, we can follow our clue and view all transactions where the tx payer and tx proposer are different. The results are below. We notice the wallet address 0x55ad22f01ef568a1 (provided by Flipside) in the top 5.

    >
    > \

    Loading...

    Step 4:

    Researching the addresses, it is found that some are associated with contracts, while our provided address is not. With this a filter was added to the query, to exclude addresses associated with contracts.

    Additionally, we are seeking an address that is paying for users transactions, so we need user addresses. A query was created to select all distinct user addresses from swaps, nft sales, and bridge transactions, then to find the payer of these transactions.

    We again find our sample address at the top of the results.

    >
    > \

    Loading...
    Loading...

    Step 5:

    For the final step, we join these two tables and discover the payers that exist in both. This gives us wallet addresses with the same behavior and characteristics as our Blocto wallet at address ‘0x55ad22f01ef568a1’.

    Narrowed down to only 6 results, we continue to find the Blocto wallet. Based on the overall counts we could suspect that ‘0x1b65c33d7a352c61’, ‘0x55ad22f01ef568a1’, ‘0xb58635e73daba467‘, and ‘0x319e67f2ef9d937f’, ‘ have a strong probability of being wallet providers paying for users transactions.

    As we know Blocto is ‘0x55ad22f01ef568a1’ and the other custodial wallet providers are Dapper and Fiona, we could suspect that these providers are paying transactions for their customers from these addresses. I am excluding Kraken, as it is an exchange and not technically a wallet provider.

    >
    > \

    Loading...
    db_img

    Can we determine what wallet provider an address is using from payer or any other transaction data?⤵️

    In my research of the data results from Flipside’s Flow tables, I was unable to find and labeling that would indicate the name of a wallet provider. I may have overlooked a detail, but my search was extensive. Additionally, part of the ideals of blockchain is transparency which is safeguarded by anonymity, so not having the ability to determine a wallet provider respects the ideal.

    For a simple solution to the question posed, one could simply open an account with each wallet, conduct a transaction, and identify the payer using a block explorer with the transaction id….but that wouldn’t have been as much fun!

    db_img

    Summary:

    • While the results are not conclusive, addresses were identified that share the same characteristics and activities as the Blocto address. They are likely wallet providers, and if so, are likely the providers we discovered in the documentation.
    • Unable to offer a solution to finding a wallet provider name using on-chain data, I did propose a simple solution of simply using the providers and recording the results.