TON Blockchain

Escrow Smart Contract

Cliente e prestador depositam o dinheiro em um smart contract. O prestador recebe quando o trabalho está feito e os dois lados concordam.

Como funciona

Cinco passos até o contrato

Crie um smart contract com um assistente simples.

  1. Passo 1Papel no contratoEscolha seu papel no contrato. Há apenas dois papéis: cliente e prestador. Não existe arbitragem de terceiros.
    9:41LTE

    Papel no contrato

    Papel no contrato

    O cliente é quem contrata o serviço ou o produto. Paga 100% antecipadamente, mais um depósito reembolsável opcional de até 30%.

    O prestador é quem fornece o serviço ou o produto. Faz um depósito reembolsável (por padrão, 30% do valor do contrato).

  2. Passo 2Escolha da moedaEscolha a moeda do contrato. GRAM, a moeda nativa da TON, serve para negócios rápidos e pequenos, já que é bastante volátil. USDT é uma moeda mais estável para negócios grandes e longos.
    9:41LTE

    Escolha da moeda

    Moeda do contrato

    GRAM: criação mais rápida. Você pode criar o contrato e depositar o valor em uma única transação.

    USDT: criação em duas etapas. Primeiro o contrato é criado (sua carteira precisa ter a moeda nativa GRAM ou suportar transações sem gás; GRAM é preferível) e depois você deposita USDT.O USDT é menos volátil que o GRAM.

  3. Passo 3Valor do contratoDigite o valor do contrato na moeda escolhida. Esse valor será transferido ao prestador depois que o trabalho for feito.
    9:41LTE

    Valor do contrato

    GRAM

    O valor do contrato é o preço do trabalho. Quem deposita é o cliente.

    30%

    De 10% a 90%. Padrão: 30%.

    0,4%

    0,4% do valor, mas no máximo 15 GRAM.

  4. Passo 4Endereços das carteirasCole os endereços das carteiras. Depois, essas carteiras serão usadas para depositar e sacar valores.
    9:41LTE

    Endereços das carteiras

  5. Passo 5Revisão do contratoConfira os dados do contrato antes do deploy.
    9:41LTE

    Revisão do contrato

    Condições do contrato
    Moeda
    GRAM
    Valor do contrato
    1 000 GRAM
    Depósito do prestador
    300 GRAM · 30%
    Taxa do serviço
    4 GRAM · 0,4%

Depois da criação

Cartão do contrato

Você é o cliente, a moeda é USDT. Seis capturas do mesmo cartão do painel real, com todas as ações possíveis em cada etapa.

  1. Aguardando depósitos
    1 000 USDT
    Contrato de 21.09.2026 - EQDe…0001
    Cliente (você)
    0 / 1 000
    Prestador
    0 / 300

    *Mais um depósito reembolsável de até 30%

    USDT

    Recém-criado

    Os saldos estão zerados. Você pode depositar o valor do contrato, depositá-lo já com um adicional de até 30% ou excluir o contrato enquanto ninguém tiver depositado nada.

  2. Aguardando depósitos
    1 000 USDT
    Contrato de 21.09.2026 - EQDe…0001
    Cliente (você)
    1 000 / 1 000
    Prestador
    0 / 300

    *Mais um depósito reembolsável de até 30%

    USDT

    Recarregado, aguardando

    O valor do contrato já está no contrato, mas o depósito do prestador ainda não. Enquanto o status não for “Ativo”, você pode sacar seu dinheiro. Ainda é possível adicionar o depósito adicional de até 30%.

  3. Ativo
    1 000 USDT
    Contrato de 21.09.2026 - EQDe…0001
    Cliente (você)
    1 000 / 1 000
    Prestador
    300 / 300
    USDT

    O prestador precisa concordar. O valor será arredondado para um percentual inteiro do valor do contrato.

    *Mais um depósito reembolsável de até 30%

    USDT

    O prestador recarregou

    Os dois valores combinados estão lá: o contrato está ativo. Os valores estão congelados e não é possível sacar USDT. Você pode aceitar o trabalho, propor outra parte ou adicionar o depósito adicional (garantia extra do cliente).

  4. Ativo
    1 000 USDT
    Contrato de 21.09.2026 - EQDe…0001
    Cliente (você)
    1 200 / 1 000 + 200 · 20%
    Prestador
    300 / 300
    USDT

    O prestador precisa concordar. O valor será arredondado para um percentual inteiro do valor do contrato.

    *Mais um depósito reembolsável de até 30%

    USDT

    Depósito de 20% adicionado

    Há +200 USDT acima do valor do contrato. Faltam 100 USDT para o teto de 30%. O saque continua bloqueado: um contrato ativo retém o valor do contrato mais o depósito adicional.

  5. Pagamento proposto 800 USDT
    1 000 USDT
    Contrato de 21.09.2026 - EQDe…0001
    Cliente (você)
    1 200 / 1 000 + 200 · 20%
    Prestador
    300 / 300
    USDT

    No momento estão propostos 800 USDT · 80%. Você pode substituir.

    *Mais um depósito reembolsável de até 30%

    USDT

    80% propostos ao prestador.

    O prestador receberá 800 USDT se concordar. O botão “Aceitar o trabalho” sumiu; ele só volta se você definir 100%. A proposta pode ser substituída, e o depósito adicional, complementado.

  6. Concluído 800 USDT
    1 000 USDT
    Contrato de 21.09.2026 - EQDe…0001
    Cliente (você)
    400
    Prestador
    1 096

    O prestador concordou

    Contrato concluído: 800 USDT foram para o prestador, 4 USDT são os royalties do serviço. Restam 400 USDT para você, que podem ser sacados.

Q&A

Perguntas frequentes

Onde está o terceiro?

Não existe. O prestador arrisca o depósito, então é vantajoso para ele terminar o trabalho.

Por padrão, o depósito do prestador é de 30% do valor do negócio. Pode parecer que ele leva vantagem: ele arrisca 30%, e você, 100%. Mas o que importa não é o percentual, e sim o dinheiro. Esses 30% são dinheiro dele, e perdê-los pode doer tanto para ele quanto perder os seus 100% doeria para você. Ninguém abre mão do próprio dinheiro à toa.

Outro risco: o cliente recebe o trabalho e pode não pagar. Há duas opções. A primeira: quando o trabalho estiver quase pronto, propor acertar as contas antes. A segunda: pedir que o cliente deposite um adicional de até 30% sobre o valor (depósito). Depois que o contrato é concluído, o cliente recebe o depósito de volta, então ele tem motivo para fechar o negócio.

Por que eu deveria confiar em vocês?

Não é preciso confiar. O smart contract é público. O endereço do seu contrato é um hash dos dados iniciais e do código. Se o código fosse trocado, o endereço seria outro.

Você pode abri-lo e conferir (por exemplo, no Tonviewer). A única coisa é que é preciso entender o código — esse é o principal problema. Mas, em compensação, é uma prova 100%. Você também pode entregar o código a um modelo de IA. Abaixo está o código do contrato com a explicação mais simples possível.

ContractUSDT

Esta é a lista de importações: constantes e funções auxiliares.

Breve descrição do contrato.

Lista de ações disponíveis com o contrato.

Função auxiliar: indica se o contrato está ativo ou não. Quando todos depositam seus valores, o contrato fica ativo e já não dá para sacar simplesmente.

Função do troco. Cada mensagem leva um pouco de GRAM para processar a transação. O que sobra, ela devolve.

Calcula o endereço da carteira de jettons. Ele depende do endereço do contrato.

Se uma transferência falhar, o dinheiro volta e o contrato corrige os registros de quanto cada um tem.

Se o corpo da mensagem estiver vazio, não fazemos nada.

Em seguida, a declaração das variáveis.

Recarga de USDT: aceita transferências e registra quanto USDT cada um tem.

Altera o percentual do pagamento. Se o trabalho foi feito só pela metade, você pode propor 50%. Se o prestador concordar, o contrato é cumprido. Se não, continuem negociando.

Se o prestador concordar, o contrato paga a ele a parte dele mais o depósito, e o restante volta para você. Com 0%, o negócio inteiro é cancelado e todos recebem o dinheiro de volta. Nesse caso, a taxa de 0,4% não é cobrada.

O maior bloco: gerencia as devoluções de valores.

Modo de erro. Se uma carteira for perdida ou o dinheiro tiver entrado sem registro, uma parte pode passar o controle para a outra. A rigor, o dinheiro entrar sem registro é impossível, a não ser de propósito. Mas a opção fica, por via das dúvidas. Já esquecer ou perder uma carteira é bem possível.

ErrRefund: saque de emergência de jettons que chegaram sem notificação e não foram registrados. Ou quando a carteira foi perdida (mais precisamente, a senha dela).

Burn: destrói o contrato para que uma casca vazia não fique solta na rede. Quem pode queimá-lo é quem o criou (o cliente ou o prestador) ou o administrador, e só quando os saldos do cliente e do prestador estão zerados.

Código-fonte verificado dos três contratos. O hash do código coincide com o que está na rede. Cada link abre o código no TON Verifier.

ContractMinterContractUSDTContractTON