Author

Topic: Ajuda para criação de um token com lastro em outra moeda (Read 70 times)

legendary
Activity: 2506
Merit: 1113
There's no need to be upset
Passando só pra lembrar que DAI é uma stablecoin de dólar que é lastreada em Ethereum.
A forma principal de emitir DAI (e possivelmente a única) é abrindo CDPs na Maker, a pessoa deposita ETH e emite uma dívida em DAI, aí é só ficar de olho do preço da ETH pra não ser liquidado
legendary
Activity: 2758
Merit: 6830
Não é você que decide o preço na Etherscan. Eles pegam os valores diretamente on-chain:

- Quantidade em circulação: varíavel totalSupply do contrato (do padrão ERC20).
- Preço: tirado das exchanges descentralizadas da rede (Uniswap, Sushiswap, Pancake-BSC, etc...).



Qual seria o sentido em depositar ETH em algum lugar, para usar como lastro nessa outra moeda? Por que não só não usar a ETH normalmente?

Você está basicamente re-criando o WETH (Wrapped Ethereum), que é um token ERC20 que tem duas funções basicas: mint, ao depositar ETH; e burn, ao recuperar ETH; sendo que 1 wETH = 1 ETH.

Exemplo de um contrato totalmente funcional (WETH):

Code:
pragma solidity ^0.4.18;

contract Lastro {
    string public name     = "ETH-Lastro";
    string public symbol   = "ETHL";
    uint8  public decimals = 18;

    event  Approval(address indexed src, address indexed guy, uint wad);
    event  Transfer(address indexed src, address indexed dst, uint wad);
    event  Deposit(address indexed dst, uint wad);
    event  Withdrawal(address indexed src, uint wad);

    mapping (address => uint)                       public  balanceOf;
    mapping (address => mapping (address => uint))  public  allowance;

    function() public payable {
        deposit();
    }
    function deposit() public payable {
        balanceOf[msg.sender] += msg.value;
        Deposit(msg.sender, msg.value);
    }
    function withdraw(uint wad) public {
        require(balanceOf[msg.sender] >= wad);
        balanceOf[msg.sender] -= wad;
        msg.sender.transfer(wad);
        Withdrawal(msg.sender, wad);
    }

    function totalSupply() public view returns (uint) {
        return this.balance;
    }

    function approve(address guy, uint wad) public returns (bool) {
        allowance[msg.sender][guy] = wad;
        Approval(msg.sender, guy, wad);
        return true;
    }

    function transfer(address dst, uint wad) public returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad)
        public
        returns (bool)
    {
        require(balanceOf[src] >= wad);

        if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
            require(allowance[src][msg.sender] >= wad);
            allowance[src][msg.sender] -= wad;
        }

        balanceOf[src] -= wad;
        balanceOf[dst] += wad;

        Transfer(src, dst, wad);

        return true;
    }
}
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
Gostaria de entender como funciona esse mecanismo. Onde devo depositar os Ethereum para que a moeda tenha valor real com lastro no ethereum?

Não faz sentido você ter uma token lastreada em Ethereum que fique na propria rede Ethereum (token ERC20). isso só faria sentido se fosse em outra chain, por exemplo na chain da binance para voce usar com pancakeswap algo assim.

Uma token lastreada em um ativo (seja ethereum, ouro, usd, etc) é sempre na base da confiança. Voce basicamente assina uma mensagem provando que voce tem X ethereum na blockchain ethereum em um endereço que você controla, e deixa publicamente mostrado que você tem a mesma quantidade de tokens.

O negócio é que a qualquer hora você pode mexer né.

A binance tem um Ethereum Pegged Token (https://bscscan.com/token/0x2170ed0880ac9a755fd29b2688956bd959f933f8). Da pra ver que eles tem em torno de 1.305.000 ETH.

Nesse caso, a binance, uma corretora gigantesca que possui milhões de eth sob custódia, garante o peg 1-1 do ETH. Difícil voce concorrer com isso.

fosse de acordo com a quantidade de ethereum custodiadas/depositadas.

Impossível.

Esse valor aí que ele perguntou é justamente os 1,305 milhões que estão no contrato do Binance Pegged ETH token que eu postei acima.
newbie
Activity: 2
Merit: 0
Muito obrigado pela resposta amigo.
Isso quer dizer então se depositar na liquidez usando a pancakeswap terei essa informação publicada na etherscan. Correto?
legendary
Activity: 2688
Merit: 2297
O EtherScan precisa puxar as informações de preço (do token) de alguma exchange.. não sei quais eles usam, provavelmente do coinmarketcap.com..

Então o preço do token é multiplicado pela quantidade total de tokens, gerando o fully diluted market cap..

fosse de acordo com a quantidade de ethereum custodiadas/depositadas.

Impossível.
newbie
Activity: 2
Merit: 0
Pessoal.
Estou estudando a criação de tokens, cheguei a criar alguns para teste. Gostaria que no explorador de blocos (etherscan.io) o valor do  "FULLY DILUTED MARKET CAP" fosse de acordo com a quantidade de ethereum custodiadas/depositadas.

Gostaria de entender como funciona esse mecanismo. Onde devo depositar os Ethereum para que a moeda tenha valor real com lastro no ethereum?

Fiz esse print para exemplificar meu questionamento.
https://secretabike.com.br/wp-content/uploads/2021/09/PRINTER.jpg

Obrigado a todos que poderão contribuir com essa questão.
Jump to: