Mas você poderia muito bem criar a sua própria implementação com suas próprias particularidades não limitadas ao swap entre NFT e tokens i.e 600 tokens (0.6 ton) de um total de 1000 (1 ton) podem ser trocados por 0.6 ton para evitar que seja necessário adquirir todos os exatos 1000 tokens do batch.
O problema é que 100 tokens do batch #1 são diferentes dos 100 tokens do batch #2 porque eles são de lotes diferentes, com validades diferentes.
Eu entendi isso. O que eu quis dizer é que você poderia permitir aquela redenção parcial que eu comentei.
1000 tokens > 1 ton #1 (ativo real)
600 tokens > 0.6 tons #1 (ativo real)
Sobrando 400 tokens que podem ser trocados por 0.4 tons #1.
Mas e em exchanges centralizadas, já viu algum caso? Temos algumas interessadas, mas ai estamos pensando que se escolhermos pelo ERC 1155, talvez a listagem nas CEXs não seja tão fácil e perderíamos esse público.
Não sei dizer com certeza, pois não consigo prever como as exchanges implementam o seu sistema de saque e deposito dos tokens. Vocês teriam que perguntar isso para algum responsável que trabalhe lá dentro.
Na prática, um ERC 1155 só difere de um ERC 20 no sentido que cada contrato pode conter diversos tokens ao invés de apenas um, portanto há a necessidade de especificar qual token você está transferindo. Não me parece dificil de implementar, mas vai variar dependendo da atual implementação do sistema deles e da mão de obra que cada exchange pode disponibilizar.
Mas a variável do timestamp de validade ela é possível nos tokens que representam o NFT ou só no NFT? Pelo que eu saiba, essa função e a função de burn n é tradicionalmente usadas nos tokens fungíveis ou to confundindo as coisas?
Ambas. O NFT e seus tokens sempre vão conter um identificador único que pode ser verificado através do mapping de "validades" que eu exemplifiquei. Nada disso inviabiliza o token.
O único problema que eu vejo ai é na forma como a exchange vai lidar com essas validades. Por padrão, o token pode expirar e ainda vai existir no sistema deles mas não vai executar os saques (transfers) com sucesso. Eles poderiam talvez verificar a data limite no nível do contrato para "arquivar" o token, mas isso exige uma engenharia customizada e mais mão de obra.
Acho que isso talvez quebra todo o meu modelo, né? Pq se o documento só pode ser enviado pra quem tem o NFT inteiro, quando eu permito fracionar, eu tenho um risco bem relevante daquele token nunca mais ser recuperado, desincentivando as pessoas a comprarem.
Como funciona tradicionalmente com os NFTs fracionados? Por exemplo, o que acontece se metade dos detentores de frações de uma arte sumirem e coisas precisarem acontecer com a obra física?
Sim, esse é o maior problema. Se o cara pega uma única unidade de medida da fração do token, já pode "brickar" o documento inteiro.
Com o fractional.art que eu mencionei acima, os hodlers do token podem votar em um preço de reserva (exige >50% de votos). Se alguém quiser adquirir o NFT por esse preço de reserva, um leilão é invocado. Quem vencer o leilão fica com o NFT e os donos das frações podem trocar seus tokens pela parte equivalente da venda. Se o token não tem preço de reserva (<50% votaram em um preço), não há como o token ficar inteiro caso não hajam todas as partes do token.