filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
376 stars 308 forks source link

FoxWallet FEVM NFT & Filecoin Naming Service Integration #1707

Closed Nuts444 closed 7 months ago

Nuts444 commented 8 months ago

Open Grant Proposal: FoxWallet FEVM NFT & Filecoin Naming Service Integration

Project Name: FoxWallet

Proposal Category: Integrations

Individual or Entity Name: FOXWALLET FOUNDATION LTD.

Proposer: https://github.com/Nuts444

Project Repo(s): https://github.com/foxwallet

Filecoin ecosystem affiliations: Filfox, developed by the FoxWallet team, is a Filecoin blockchain explorer and data service platform, providing one-stop data services based on Filecoin, including various mining rankings, blockchain data queries, and visualization charts.

Technical Sponsor: Jenks Guo (Filecoin Foundation)

Do you agree to open source all work you do on behalf of this RFP under the MIT/Apache-2 dual-license?: Partially. FoxWallet GitHub account will be open to those Filecoin Foundation team members evaluating the grant application.

Project Summary

FoxWallet is a safe and easy-to-use decentralized wallet, dedicated to creating an entrance and connection to the Web3 world. FoxWallet strives to provide a reliable and industry-leading storage solution with encryption. From a design perspective, FoxWallet follows Bitcoin standards such as BIP-32, SLIP-0044, and BIP-44. By accommodating multiple chains and various sets of mnemonics, and ensuring compatibility with other wallets in terms of mnemonics and addresses, FoxWallet aims to empower users to conveniently manage multiple accounts with a single set of seed phrases while keeping every address independent of each other. As a decentralized wallet, the mnemonics and private keys of users are stored locally with the help of distributed individual nodes, instead of being uploaded to a centralized server. FoxWallet essentially wants to empower users to be in control of their own private keys and seed phrases, further lowering the risk of theft and censorship. FoxWallet supports over 55 various EVM and non-EVM chains, including Filecoin EMV and Filecoin and networks and provides smooth experience while interacting with them. FoxWallet offers a wide range of Web3 tools and features like staking, purchasing crypto with fiat currency, swapping assets, inscribing and interacting with dapps across multiple ecosystems. The wallet also provides a simplified DID registration service for a better user experience. Users can store, receive, send and swap their crypto assets, including Ethereum and Bitcoin standard tokens on FoxWallet. Further, FoxWallet provides users an excellent opportunity to securely store and showcase their NFTs across various chains and networks, opening up a world of possibilities for NFT enthusiasts.

Impact

FoxWallet Filecoin NFT display and transfer support would allow users to easily view the status of NFTs associated with their addresses and perform on-chain operations with them. Further, FoxWallet has already supported Filecoin Name Service (FNS), enabling users to not only view the domain names registered to their addresses but also use these domain names to transfer assets to other addresses, reducing the inconvenience caused by lengthy addresses. This functionality significantly enhances the user experience on the Filecoin blockchain and promotes the development of the Filecoin ecosystem.

Outcomes

Deliverables:

  1. Display the user's NFT holdings (including NFT tokenAddress, tokenId, name, image, description, attributes, count; support for 2. both ERC721 & 1155)
  2. Transfer NFT to others (support for both ERC721 & 1155)
  3. Set NFT image as FoxWallet's DID avatar Note: FNS is implemented based on the ERC721 standard, thus it will be well-supported too

Development Roadmap/Technical Implementation

NFT Backend API

  1. Traverse every block of Filecoin, filtering out transactions that generate a Transfer event, obtaining contract address, sender address, receiver address, and tokenId.
  2. Determine if a contract's type is either ERC721 or ERC1155 by using ERC-165.
  3. Update the database with the NFT Holding lists under sender and receiver addresses.
  4. Check if the database stores the metadata information of that NFT. If not, call the contract's uri or tokenURI method to obtain the metadata JSON, writing the obtained name, image, description, attributes, etc., into the database.
  5. Provide an API for fetching all the NFT information held by a certain address, returning information as follows:
    {
    tokenAddress: string;
    tokenId: string;
    name: string;
    description: string;
    attributes: [{
        trait_type: string;
        value: string;
    }];
    image: string;
    standard: "ERC721" | "ERC1155";
    }[]

FoxWallet App

  1. When a user switches the network to Filecoin EVM on FoxWallet, a request is made to the backend API to obtain all the NFT information held by that address.
  2. Categorize the NFT list by tokenAddress, known as NFTCollections.
  3. Display the name, cover image, and quantity of the NFTCollection held by that address.
  4. Clicking on a specific NFTCollection leads to a list page, showing the name and image of each NFT under that NFTCollection.
  5. Clicking on a specific NFT opens the NFT detail page, displaying the NFT's image, tokenAddress, tokenId, name, token, standard, and also supports setting that NFT as the DID avatar for FoxWallet. Clicking on the send button on the page allows transferring the NFT to someone else. Some screenshots for Ethereum NFTs on FoxWallet image image image image image More information can be found via a following link: https://gist.github.com/icodeface/026039111e030ceba8e0e5e7acbd6374#some-screenshots-for-ethereum-nfts-on-foxwallet

Total Budget Requested

| FoxWallet FEVM NFT Integration | Filecoin NFT storage, display and transfer on FoxWallet Mobile App | Display the user's NFT holdings (including NFT tokenAddress, tokenId, name, image, description, attributes, count; support for both ERC721 & 1155);Transfer NFT to others (support for both ERC721 & 1155); Set NFT image as FoxWallet's DID avatar | April 15th, 2024 | Funding: $100,000 US (one hundred thousand US dollars) |

Team

Team Members

Team Member LinkedIn Profiles

Team Website

https://foxwallet.com/

Relevant Experience

FoxWallet team has large experience in blockchain technologies development starting with Qtum core development and furthering with developing Filfox, which is the most popular Filecoin explorer, as well as FoxWallet which started its journey with integrating Filecoin about 2 years ago. FoxWallet App has a large Filecoin network user base across the globe, as well as has implemented all the Filecoin network updates timely.

Team code repositories

https://github.com/icodeface,https://github.com/LouisWT,https://github.com/GeassV,https://github.com/foxwallet

Additional Information

How we found out about Open Grant: Filecoin Foundation team
Email: nataliey@foxwallet.com What FoxWallet team has built so far can been seen following the links below: Audit Report: https://www.certik.com/projects/fox-wallet Documentation: https://hc.foxwallet.com/docs/ Twitter: https://twitter.com/FoxWallet Telegram: https://t.me/FoxWallet_EN Youtube: https://www.youtube.com/channel/UCt9O4HUkuNutXvFoN6NZh-w Discord: https://discord.com/invite/JVjVbe3Zth Medium: https://medium.com/@FoxWallet Github: https://github.com/foxwallet Extension: https://github.com/foxwallet/foxwallet-extension

ErinOCon commented 7 months ago

Hi @Nuts444, thank you for your proposal and for interest in our grants program. Unfortunately, we will not be moving forward with a grant at this time. Wishing you the best as you continue building!

If you have any questions, please contact our team at grants@fil.org.