

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.
Crie um smart contract com um assistente simples.
- 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
- 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
- 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
O valor do contrato é o preço do trabalho. Quem deposita é o cliente.
De 10% a 90%. Padrão: 30%.
0,4% do valor, mas no máximo 15 GRAM.
- 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
- Passo 5Revisão do contratoConfira os dados do contrato antes do deploy.9:41LTE
Revisão do contrato
Papel no contrato
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.
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.
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%.
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).
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.
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.
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