


Os NFTs correspondem a ativos únicos na blockchain, cada um identificado por um URI que referencia metadados e elementos visuais associados. Estes URIs podem assumir diferentes formatos: ligações HTTP para conteúdos hospedados, endereços IPFS (baseados em hash), Arweave para alojamento incentivado ou data URIs que integram toda a informação diretamente na própria referência. A utilização de data URIs tornou-se uma prática cada vez mais adotada, permitindo aos criadores guardar conteúdos NFT inteiramente na blockchain e garantir a sua permanência, sem dependência de infraestruturas externas. O formato SVG consolidou-se como padrão para visuais de NFTs on-chain, pela compatibilidade nativa com navegadores e pelas exigências de otimização do armazenamento em smart contracts, tornando os NFTs SVG em Ethereum uma solução sólida para a perenidade dos ativos digitais.
Na blockchain Ethereum, o upload de código implica o pagamento de taxas de gas. Operações que alteram o estado exigem transações e custos monetários, enquanto as operações apenas de leitura são gratuitas. Ao visualizar NFTs SVG on-chain, o smart contract gera as imagens dinamicamente ao acionar a função tokenURI(), que executa código com base no estado atual sem o modificar, evitando custos de gas. Esta renderização sob pedido tornou-se essencial em projetos SVG on-chain. Exemplos como Neolastics ilustram este modelo: IDs únicos gerados no minting alimentam funções generativas que produzem SVGs consistentes, assegurando reprodutibilidade sem abrir mão da criação dinâmica. O desafio técnico reside na otimização do código para os limites das transações, através de programação eficiente em gas — a chamada "gas golf".
Avastars foi pioneira na abordagem SVG on-chain para NFTs. Embora inicialmente utilizasse um servidor HTTP de metadados, o SVG integral e os metadados mantêm-se reprodutíveis na blockchain, através da função getAvastarMetadata() e da função renderAvastar() do contrato AvastarsTeleporter. Esta redundância assegura a preservação do conteúdo, mesmo na eventual indisponibilidade de servidores externos. Avastars gera imagens SVG ao concatenar diferentes traços originalmente inseridos no smart contract como componentes SVG, permitindo a reconstrução completa da obra diretamente a partir dos dados on-chain.
Squiggly adotou uma arquitetura híbrida semelhante à de Avastars, mantendo um servidor HTTP de metadados e implementando a reprodução on-chain através da função getIdtoSVG(). Ao contrário de Avastars, que armazenava traços individualmente, Squiggly efetuou o upload do código SVG completo aquando do deployment do contrato. O processo de renderização utiliza um seed para gerar gradientes e curvas de forma dinâmica, criando visuais únicos para cada token. É relevante destacar que Squiggly introduziu o campo de metadados não standard "image_data", um mecanismo adotado por grandes plataformas de NFT para suportar a renderização por data URI antes da compatibilidade generalizada nos marketplaces.
Neolastics replica a arquitetura de Squiggly, com servidores de metadados off-chain e possibilidade de reprodução da obra na blockchain. A função generateSVGofTokenById() permite recriar imagens diretamente como SVG, garantindo resiliência face a falhas nos servidores de metadados. Tal como Squiggly, os componentes SVG são carregados no deployment do contrato e recombinados conforme parâmetros seed-based. Esta abordagem equilibra a experiência do utilizador via servidores convencionais com as vantagens de segurança da reprodutibilidade total on-chain.
TinyBoxes distingue-se pela incorporação de elementos SVG animados, ultrapassando a mera geração de imagens estáticas. A função tokenArt() gere a renderização personalizada, mantendo a arquitetura off-chain para metadados. De forma única, TinyBoxes inclui metadados de traços como tags HTML no interior das imagens SVG, ao invés de guardar metadados on-chain separados. Os elementos de animação são gerados a partir de seeds aleatórios, com uma complexidade superior a projetos mais simples. Para contornar as limitações de manipulação de strings em Solidity, TinyBoxes implementa SVG.sol, uma camada de abstração que encapsula a complexidade da renderização e a lógica de geração de animações.
Mandalas representa uma viragem arquitetónica ao eliminar totalmente servidores HTTP de metadados, colocando metadados JSON completos e imagens SVG codificadas em base64 diretamente em data URIs. Esta abordagem inovadora exigiu codificação base64 para garantir o tratamento seguro de caracteres especiais nos URIs, embora implique custos de gas mais elevados face ao SVG simples. A codificação assegura compatibilidade com navegadores e permite renderizar a obra integral ao decodificar o data URI. Mandalas utiliza um sistema de renderização exclusivo que pinta pixels codificados em base64 sobre estruturas de mandala, criando obras geométricas geradas proceduralmente.
Os NFTs UniSwap V3 exemplificam capacidades avançadas de animação aliadas ao armazenamento integral na blockchain, recorrendo a codificação base64 completa. A implementação inclui codificação aninhada: o data URI contém metadados JSON codificados em base64, que por sua vez integram uma imagem SVG codificada em base64. Esta solução garantiu suporte generalizado para data URIs nos marketplaces de NFT. A lógica de renderização complexa é delegada a contratos próprios (NFTDescriptor.sol e NFTSVG.sol), superando as limitações de manipulação de strings em Solidity. As obras integram elementos derivados de posições financeiras subjacentes, ilustrando como o SVG on-chain pode visualizar o estado dinâmico da blockchain.
Anchor Certificates implementa uma arquitetura integralmente on-chain, com todos os metadados e SVG armazenados em data URIs com codificação base64. Os componentes SVG são extraídos para funções distintas, ultrapassando as limitações do callstack de Solidity e permitindo a limpeza de variáveis entre etapas computacionais. Esta abordagem modular viabiliza a criação de obras complexas dentro das restrições da rede, assegurando disponibilidade total on-chain.
Blitmap segue uma arquitetura mais clássica, com armazenamento de imagens e metadados fora da blockchain, mas garante reprodutibilidade on-chain através de funções de renderização próprias. A inovação reside na codificação da obra em 268 bytes de dados de pixel, via funções mintOriginal() ou mintVariant, reconstruindo as imagens como coleções de retângulos SVG. Cada byte representa informação de pixel traduzida em elementos rect, comprimindo os dados para armazenamento eficiente e permitindo recriação integral na blockchain.
Nouns conjuga técnicas de vários projetos: armazena todos os metadados e SVG on-chain com codificação base64, utiliza um contrato descriptor dedicado semelhante ao UniSwap V3 e emprega codificação baseada em traços, como Avastars e Blitmap. A principal inovação está no agrupamento de regiões de cor semelhante num único retângulo SVG, em vez de múltiplos retângulos pixelizados, reduzindo substancialmente o tamanho da saída sem sacrificar a qualidade visual. Esta técnica revela a constante evolução na codificação eficiente de arte on-chain.
solSeedlings apresenta uma abordagem híbrida que favorece a reprodutibilidade, mesmo sem pureza técnica absoluta. Apesar de incluir caracteres especiais menos adequados para data URIs, a coleção mantém componentes suficientes na blockchain para garantir a reprodutibilidade da obra. A renderização utiliza aleatoriedade seed-based com implementações customizadas para cada coleção, mostrando a diversidade de soluções no ecossistema SVG on-chain.
Os NFTs SVG on-chain evoluíram através de diferentes modelos arquitetónicos, equilibrando restrições técnicas, eficiência de gas e perenidade. De métodos como a concatenação de traços em Avastars, à implementação inovadora de data URI em Mandalas, passando pela codificação de pixels em Blitmap e agrupamento otimizado de retângulos em Nouns, os projetos mostram inovação constante no armazenamento e visualização de arte diretamente na blockchain. Embora o conceito de "totalmente on-chain" seja ainda debatido, a experimentação coletiva produziu arte digital resiliente e de grande qualidade, aproveitando a infraestrutura imutável da Ethereum. O SVG em Ethereum consolidou-se como referência para criação digital permanente, mas novos formatos e métodos de codificação apontam para uma constante evolução da arte on-chain. Este cenário representa não só um feito técnico, mas também um espaço de potencial artístico, onde as limitações da blockchain estimulam soluções criativas e a otimização de gas se converte em desafio de engenharia e disciplina artística.
Guarde os dados SVG codificados diretamente na blockchain, dentro dos smart contracts, em vez de referenciar recursos externos. A função tokenURI devolve JSON codificado com dados SVG que podem ser renderizados em navegadores. Esta solução garante integridade dos dados e permite NFTs SVG dinâmicos sem dependências externas.
SVG permite criar obras NFT on-chain únicas, codificando elementos visuais diretamente na blockchain. Os ficheiros SVG podem integrar os metadados do NFT, permitindo geração digital programável e escalável através da composição algorítmica dos componentes visuais.
Evite ataques XSS, garantindo que os ficheiros SVG não incluam código JavaScript malicioso que comprometa as carteiras dos utilizadores. Valide todos os inputs SVG, higienize os metadados e utilize bibliotecas de renderização seguras para proteger contra vulnerabilidades de injeção.











