

Escrow Smart Contract
Клієнт і виконавець вносять гроші в смарт-контракт. Оплата йде виконавцю, коли роботу зроблено й обидві сторони згодні.
Як це працює
П'ять кроків до контракту
Створіть Smart Contract за допомогою простого візарда.
Створіть Smart Contract за допомогою простого візарда.
- Крок 1Роль у контрактіВиберіть свою роль у контракті. У контракті лише дві ролі — клієнт і виконавець. Третього арбітражу немає.9:41LTE
Роль у контракті
- Крок 2Вибір валютиВиберіть валюту контракту. GRAM — нативна валюта TON — для швидких і невеликих угод, бо валюта досить волатильна. USDT — стабільніша валюта для великих і довгих угод.9:41LTE
Вибір валюти
- Крок 3Сума контрактуВведіть суму контракту у вибраній валюті. Цю суму буде перераховано виконавцю після виконання робіт.9:41LTE
Сума контракту
Сума контракту — вартість роботи. Вносить клієнт.
Від 10% до 90%. За замовчуванням 30%.
0,4% від суми, але не більше ніж 15 GRAM.
- Крок 4Адреси гаманцівВставте адреси гаманців. Надалі через ці гаманці здійснюватимуться внесення й виведення валюти.9:41LTE
Адреси гаманців
- Крок 5Перевірка контрактуПеревірте введені дані контракту перед деплоєм.9:41LTE
Перевірка контракту
Роль у контракті
Після створення
Картка контракту
Ви — клієнт, валюта USDT. Шість знімків тієї самої картки, що й у реальному кабінеті. Усі можливі дії на цьому кроці.
Щойно створили
Баланси нульові. Можна внести суму угоди, одразу суму з надбавкою до 30% або видалити контракт, поки ніхто нічого не вніс.
Поповнили суму й чекаємо
Сума угоди вже на контракті, депозиту виконавця ще немає. Поки статус не «Активний», свої гроші можна вивести. Надбавку до 30% ще можна довнести.
Виконавець поповнив
Обидві обумовлені суми на місці — контракт активний. Суми заморожено, зняти USDT не можна. Можна прийняти роботу, запропонувати іншу частку або довнести надбавку (дод. депозит від клієнта).
Додали депозит 20%
Понад суму угоди лежить +200 USDT. До стелі 30% ще 100 USDT. Виведення досі закрите: активний контракт утримує суму контракту плюс надбавку.
Запропонували 80% виконавцю.
Виконавцю піде 800 USDT, якщо він погодиться. Кнопка «Прийняти роботу» зникла. Вона з'явиться знову, лише якщо виставити 100%. Пропозицію можна замінити, надбавку — довносити.
Виконавець погодився
Контракт завершено: 800 USDT пішли виконавцю, 4 USDT — роялті сервісу. Вам залишилося 400 USDT, їх можна вивести.
Q&A
Часті запитання
Де третя сторона?
Її немає. Виконавець ризикує депозитом. Йому вигідно довести роботу до кінця.
За замовчуванням депозит виконавця — 30% від суми угоди. Може здатися, що в нього перевага: він ризикує 30%, а ви 100%. Але важливі не відсотки, а гроші. Його 30% — це його власні гроші, і втратити їх йому може бути так само боляче, як вам свої 100%. Просто так своїми грошима ніхто не жертвує.
Інший ризик: клієнт отримав роботу й може не віддати гроші. Тоді два варіанти. Перший — коли робота майже готова, запропонувати розрахуватися заздалегідь. Другий — попросити внести надбавку до 30% понад суму (депозит). Після завершення контракту клієнт отримає свій депозит назад, тому йому є сенс закрити угоду (контракт).
Чому я маю вам вірити?
Вірити не потрібно. Смарт-контракт публічний. Адреса вашого контракту — хеш початкових даних і коду. Підмінили код — адреса буде іншою.
Його можна відкрити й подивитися (наприклад, у Tonviewer). Єдине, потрібно розуміти код — у цьому основна проблема. Зате це 100% доказ. Можна віддати код ШІ-моделі. Нижче — код контракту з максимально простим поясненням.
ContractUSDT
Це список імпортів: константи й допоміжні функції.
Коротка характеристика контракту.
Список доступних дій з контрактом.
Допоміжна функція: активний контракт чи ні. Коли всі внесли свої суми, контракт стає активним — просто так уже не вивести.
Функція для решти. До повідомлення додають трохи GRAM на обробку транзакції. Зайве вона повертає.
Обчислює адресу жетон-гаманця. Вона залежить від адреси контракту.
Якщо переказ не вдався — гроші повертаються, контракт виправляє записи: у кого скільки.
Якщо тіло повідомлення порожнє — нічого не робимо.
Далі оголошення змінних.
Поповнення USDT: приймає перекази й записує, скільки в кого USDT.
Змінює відсоток виплати. Роботу зроблено лише наполовину — можна запропонувати 50%. Виконавець погодився — контракт виконано. Ні — домовляйтеся далі.
Якщо виконавець погоджується, контракт відраховує йому частку плюс депозит, залишок — вам. 0% — уся угода скасовується, усі отримують свої гроші назад. Комісія 0,4% контракту не сплачується.
Найбільший блок — керує поверненнями коштів.
Режим помилки. Якщо гаманець втрачено або гроші пройшли повз облік, сторона може передати контроль іншій стороні. Ситуація «повз облік», строго кажучи, неможлива, хіба що зробити це навмисно. Але нехай буде. А забути чи втратити гаманець — цілком можливо.
ErrRefund — аварійне виведення жетонів, які прийшли без повідомлення й не потрапили в облік. Або коли гаманець втрачено (точніше кажучи, втрачено пароль від нього).
Burn — знищити контракт, щоб порожня оболонка не теліпалася в мережі. Спалити може той, хто його створив (клієнт або виконавець), або адмін — і лише коли баланси клієнта й виконавця нульові.
Верифіковані вихідні коди трьох контрактів. Хеш коду збігається з тим, що в мережі. Посилання відкриває код на TON Verifier.
ContractMinterContractUSDTContractTON