← Back to home

Nyfa App

Nyfa App generates automated crypto research reports as NFTs on Base network. Get instant analysis of market cap, price trends & news sentiment - all minted as verifiable "Not Financial Advice" tokens. Zero blockchain knowledge needed! 🔍🪙 #Web3 #DeFi

Problem Statement

Here's a detailed breakdown of the Nyfa App project:Core Purpose: Nyfa App is a decentralized application (dApp) that transforms cryptocurrency research into verifiable digital assets. Its main innovation is the concept of "NoFA" (Not Financial Advice) tokens, which are NFTs that capture and verify crypto asset research at a specific point in time.Key Components:Research Generation:Users select a cryptocurrency they want to researchThe system automatically generates a PNG file containing comprehensive analysis:Market capitalization dataPrice trend analysisNews sentiment analysis aggregated from various sourcesThe data is formatted into a standardized template for consistencyAutomated NFT Creation:The generated PNG research report is automatically minted as an NFT on the Base networkUses Coinbase's AgentKit for blockchain interactionsImplements Privy server wallets to handle transactions without requiring users to pay gas feesZero blockchain knowledge or interaction required from usersTechnical Infrastructure:Built on Next.js 15.1.6 for the frontendUses Tailwind CSS for responsive designImplements Privy for authenticationStores data in Supabase databaseDeploys on the Base Network (specifically Base Sepolia for testing)Integrates Wagmi and OnchainKit for Web3 functionalityUses Solidity smart contracts based on OpenZeppelin standardsKey Features:Automated research compilationOne-click NFT mintingWeb3 wallet integration through Coinbase's OnchainKitDatabase integration with SupabaseGasless transactions via Privy Server WalletsReal-time news sentiment analysisCompletely responsive user interfaceValue Proposition:Provides verifiable proof of due diligenceCreates shareable research artifactsMaintains a historical record of analysisSimplifies the crypto research processMakes blockchain interaction invisible to end usersTechnical Integrations:AgentKit by Coinbase for blockchain interactionsPrivy server wallets for handling transactionsCustom ERC721URIStorage smart contracts for NFT mintingMultiple API integrations:CoinGecko for market dataCryptonews for news aggregationQwen for additional data processingPinata for IPFS storageDRPC for blockchain node accessUser Flow:User selects a cryptocurrency to researchSystem automatically gathers and analyzes dataCreates a standardized PNG reportAutomatically mints the report as an NFTProvides user with verifiable proof of researchBlockchain Implementation:Deployed on Base Network (Sepolia testnet)Uses ERC721URIStorage standard for NFTsImplements gasless transactions through server walletsStores metadata on-chain for verificationThe project essentially creates a bridge between traditional crypto research and blockchain verification, making it easy for users to create, verify, and share their cryptocurrency research while maintaining a permanent record on the blockchain. It removes traditional barriers to blockchain interaction while providing valuable research tools and verification capabilities.

Solution

Core Architecture:Frontend: Next.js 15.1.6 with Tailwind CSS for styling Authentication: Privy Database: Supabase Blockchain Infrastructure:Base Network (specifically Base Sepolia testnet) Wagmi OnchainKit AgentKit with Privy server wallet integrationThe main technical integration shown in the document is between AgentKit and Privy server wallets, which enables:Server-side wallet management through Privy Automated blockchain interactions using AgentKit's action providers Custom NFT minting with on-chain metadata storage using ERC721URIStorage Gasless transactions for end users Integration with Base Sepolia testnetThe document shows one key code example of the integration: javascriptCopyasync function getAgentKitFromPrivy(privyWalletId: string) { const privyWallet = await privy.walletApi.getWallet({ id: privyWalletId });const account = await createViemAccount({ walletId: privyWallet.id, address: privyWallet.address, privy, });const client = createWalletClient({ account, chain: baseSepolia, transport: http(https://lb.drpc.org/ogrpc?network=base-sepolia&dkey=${process.env.DRPC_API_KEY}), });const walletProvider = new ViemWalletProvider(client); return await AgentKit.from({ walletProvider, actionProviders: [wallet, cdp, erc721, erc721uristorage], }); } And the custom ERC721URIStorage action provider: javascriptCopyconst erc721uristorage = customActionProvider<EvmWalletProvider>({ name: "erc721_uristorage", description: "Mint ERC721URIStorage NFTs", schema: mintParamsSchema, invoke: async (walletProvider, args) => { const { to, uri, contractAddress } = args;const abi = parseAbi([ "function mint(address to, string memory uri) public returns (uint256)", ]); const data = encodeFunctionData({ abi, functionName: "mint", args: [to, uri], }); return await walletProvider.sendTransaction({ to: contractAddress, data, value: BigInt(0), });}, });

Hackathon

Agentic Ethereum

2025

Prizes

  • 🏆

    AgentKit Pool Prize

    Coinbase Developer Platform

Contributors