Graze

Plataforma de leilão de NFTs que tokenizam ativos agropecuários, com pagamentos em stablecoin e proteção criptográfica de dados sensíveis.

Websitegithub
  • 0 Raised
  • 380 Views
  • 0 Judges

Categories

  • Chainlink
  • Zama
  • Buidl Guidl

Gallery

Description

URLs / Links

https://github.com/nicolas-takimo/graze/

https://docs.google.com/presentation/d/1xfEe8loyreT8d8HMx_WN5qA2JBQ5BDyB3Lbw6uRXBn4/edit?usp=sharing

https://graze-nextjs.vercel.app/

Description / Descrição

O Graze é uma plataforma Web3 de leilões descentralizados com privacidade criptográfica, criada para dar liquidez e transparência a ativos agropecuários como gado, safras e terras.

Por meio de smart contracts em Solidity, o sistema permite que produtores tokenizem seus ativos em NFTs lastreados em valor real, e os leiloem diretamente para investidores, com pagamento em stablecoin e liquidação automática on-chain.

A privacidade dos lances é garantida por criptografia homomórfica (Zama FHE), permitindo que cada usuário visualize seus próprios logs de transações sem expor dados sensíveis na blockchain.

O projeto já possui um MVP funcional, com contratos integrados (AssetNFT, AuctionManagerFHE, StableToken e VaultManager) e front-end desenvolvido sobre o Scaffold-ETH.

Nos próximos passos, o Graze buscará validar o sistema em pilotos com cooperativas rurais, testando o desempenho e a experiência do leilão privado em ambiente real.

Exemplos de Leilão Encerrado

Sponsors

Integração BuildGuild (Scaffold-ETH)

O Graze foi desenvolvido sobre o ecossistema Scaffold-ETH 2, mantido pela BuildGuild, que fornece a base modular para criação de dApps Ethereum com React, Wagmi e Viem. Essa infraestrutura foi essencial para conectar o front-end ao conjunto de contratos inteligentes do Graze, permitindo prototipagem rápida e segura.

Como foi utilizado

  1. Autenticação e gerenciamento de rede

    • Arquivos:

      • index.tsx

      • WrongNetworkDropdown.tsx

      • NetworkOptions.tsx

      • AddressInfoDropdown.tsx

      • AddressQRCodeModal.tsx

    • O sistema usa os hooks do Scaffold (useAccount, useTargetNetwork, useNetworkColor, useSwitchChain) para gerenciar conexões, exibir saldo e trocar redes.

    • O componente RainbowKitCustomConnectButton encapsula toda a lógica de login via carteira (RainbowKit + Wagmi), permitindo alternância automática entre testnets.

  2. Integração visual e usabilidade Web3

    • Arquivo: BlockieAvatar.tsx

    • Adiciona um avatar baseado no hash do endereço do usuário, usando o padrão do Scaffold-ETH (blo library).

    • Melhora UX ao representar identidades de carteiras em componentes de listagem de participantes e proprietários de NFTs agro.

  3. Gerenciamento de faucet local e transações

    • Arquivos:

      • Faucet.tsx

      • FaucetButton.tsx

    • Usa os hooks useTransactor, useWatchBalance e useTargetNetwork do Scaffold-ETH para criar um sistema de faucet interno, permitindo testes de liquidez com ETH local durante o desenvolvimento.

    • O Faucet é acionado via modal (Faucet.tsx) ou botão direto (FaucetButton.tsx), integrando com o createWalletClient da biblioteca Viem.

  4. Gerenciamento seguro de chaves efêmeras (Burner Wallets)

    • Arquivo: RevealBurnerPKModal.tsx

    • Reaproveita a integração do RainbowKit Burner Wallet do Scaffold-ETH, permitindo visualizar ou copiar a chave privada de uma carteira temporária local — essencial para testar contratos no ambiente Hardhat.

  5. UX e fallback de rede

    • Arquivo: WrongNetworkDropdown.tsx

    • Exibe aviso quando o usuário conecta uma rede incorreta e oferece troca direta de rede, implementada via useSwitchChain() do Wagmi, conforme padrão do Scaffold-ETH.

Integração Chainlink

A Chainlink foi utilizada no Graze para fornecer data feeds dinâmicos de preços on-chain, garantindo que os leilões e a stablecoin AUSDC operassem com referências de valor atualizadas e verificáveis. Essa integração foi essencial para sustentar o modelo de colateralização de 150% do AUSDC e assegurar que os ativos tokenizados fossem precificados de acordo com o mercado em tempo real.

Produto utilizado

Chainlink Data Feeds (Price Oracles) — integração direta com os oráculos descentralizados da Chainlink para obter preços atualizados de stablecoins e ativos de referência, garantindo estabilidade e integridade econômica no protocolo.

Como foi utilizado

  • Os data feeds dinâmicos da Chainlink foram integrados ao contrato StableToken.sol para alimentar o cálculo de colateralização e liquidação do AUSDC.

  • O contrato acessa periodicamente os valores de preço por meio da interface AggregatorV3Interface, garantindo a atualização automática e segura das taxas de conversão entre stablecoin e ativos tokenizados.

  • O mesmo feed é utilizado no AuctionManagerFHE.sol para validar lances e proteger o sistema contra discrepâncias de preço durante o leilão.

  • A integração segue o padrão Chainlink oficial, permitindo futura extensão para feeds específicos de commodities agrícolas (ex.: soja, milho, boi gordo).

Arquivos relacionados

  • /contracts/StableToken.sol → utiliza AggregatorV3Interface da Chainlink para obter preços atualizados e validar colateralização do AUSDC.

  • /contracts/AuctionManagerFHE.sol → usa os feeds de preço para verificar o valor justo dos lances e prevenir manipulação de valor.

  • /contracts/MockBridgeBase.sol → implementa uma ponte auxiliar para compatibilidade entre a Chainlink e a Base Network.

Integração Zama

A Zama foi utilizada no Graze para implementar a camada de privacidade criptográfica dos leilões, permitindo que os lances sejam processados de forma confidencial e verificável por meio de criptografia homomórfica (FHE).

Essa integração garante que cada participante possa visualizar apenas seus próprios lances e logs, sem expor dados sensíveis na blockchain pública.

Produto utilizado

Zama Concrete / FHE SDK — utilizado como base conceitual e experimental para integrar Fully Homomorphic Encryption ao fluxo de leilão on-chain, preservando a privacidade das ofertas.

Como foi utilizado

  • A lógica de lances privados foi implementada no contrato AuctionManagerFHE.sol, que simula a criptografia e decifragem homomórfica de valores de lance.

  • A estrutura off-chain prevista no Zama SDK será responsável por realizar o processamento real dos dados cifrados, antes da submissão à blockchain.

  • O contrato VaultManager.sol complementa a camada de segurança, armazenando hashes criptográficos e metadados de lances de forma protegida.

  • O modelo de logs privados foi validado — cada usuário pode consultar seus próprios registros sem revelar valores ou identidade pública.

Arquivos relacionados

  • /contracts/AuctionManagerFHE.sol → implementa a lógica de lances privados e fluxo criptográfico inspirado no FHE.

  • /contracts/VaultManager.sol → gerencia o armazenamento seguro e hashes de verificação de lances cifrados.


Challenges / Desafios

Integrar a criptografia homomórfica da Zama (FHE) aos contratos Solidity foi o maior desafio — especialmente para permitir que cada usuário veja seus próprios logs de lances privados sem expor dados na blockchain.

What you learned / O que aprendi

Aprendemos a combinar tokenização, leilões on-chain e privacidade criptográfica em um sistema funcional. Entendemos melhor como aplicar tecnologias Web3 para resolver problemas reais de liquidez no agro.

What you are proud of / Do que me orgulho

De termos criado um MVP funcional que executa leilões privados, liquidações automáticas e proteção de dados.

Future plans / Planos futuros

Aprimorar o mecanismo de leilão privado, otimizar desempenho e testar o sistema em pilotos reais com cooperativas e produtores rurais.