Це тестова версія.

MainnetТестові жетони
TON Blockchain

Escrow Smart Contract

Клієнт і виконавець вносять гроші в смарт-контракт. Оплата йде виконавцю, коли роботу зроблено й обидві сторони згодні.

Як це працює

П'ять кроків до контракту

Створіть Smart Contract за допомогою простого візарда.

  1. Крок 1Роль у контрактіВиберіть свою роль у контракті. У контракті лише дві ролі — клієнт і виконавець. Третього арбітражу немає.
    9:41LTE

    Роль у контракті

    Роль у контракті

    Клієнт — замовник послуги чи товару. Вносить 100% передоплати. Плюс за бажанням поворотний депозит до 30%.

    Виконавець — постачальник послуги чи товару. Вносить поворотний депозит (за замовчуванням 30%) від суми контракту.

  2. Крок 2Вибір валютиВиберіть валюту контракту. GRAM — нативна валюта TON — для швидких і невеликих угод, бо валюта досить волатильна. USDT — стабільніша валюта для великих і довгих угод.
    9:41LTE

    Вибір валюти

    Валюта контракту

    GRAM — швидше створення. Можна одразу створити контракт і внести кошти однією транзакцією.

    USDT — створення у два етапи. Спершу створення контракту (на вашому гаманці має бути нативна валюта GRAM або гаманець має підтримувати безгазові транзакції; GRAM бажаніший), потім внесення валюти USDT.USDT менш волатильний, ніж GRAM.

  3. Крок 3Сума контрактуВведіть суму контракту у вибраній валюті. Цю суму буде перераховано виконавцю після виконання робіт.
    9:41LTE

    Сума контракту

    GRAM

    Сума контракту — вартість роботи. Вносить клієнт.

    30%

    Від 10% до 90%. За замовчуванням 30%.

    0,4%

    0,4% від суми, але не більше ніж 15 GRAM.

  4. Крок 4Адреси гаманцівВставте адреси гаманців. Надалі через ці гаманці здійснюватимуться внесення й виведення валюти.
    9:41LTE

    Адреси гаманців

  5. Крок 5Перевірка контрактуПеревірте введені дані контракту перед деплоєм.
    9:41LTE

    Перевірка контракту

    Умови контракту
    Валюта
    GRAM
    Сума контракту
    1 000 GRAM
    Депозит виконавця
    300 GRAM · 30%
    Комісія сервісу
    4 GRAM · 0,4%

Після створення

Картка контракту

Ви — клієнт, валюта USDT. Шість знімків тієї самої картки, що й у реальному кабінеті. Усі можливі дії на цьому кроці.

  1. Очікує поповнень
    1 000 USDT
    Контракт від 21.09.2026 - EQDe…0001
    Клієнт (ви)
    0 / 1 000
    Виконавець
    0 / 300

    *Плюс 30% (max) поворотного депозиту

    USDT

    Щойно створили

    Баланси нульові. Можна внести суму угоди, одразу суму з надбавкою до 30% або видалити контракт, поки ніхто нічого не вніс.

  2. Очікує поповнень
    1 000 USDT
    Контракт від 21.09.2026 - EQDe…0001
    Клієнт (ви)
    1 000 / 1 000
    Виконавець
    0 / 300

    *Плюс 30% (max) поворотного депозиту

    USDT

    Поповнили суму й чекаємо

    Сума угоди вже на контракті, депозиту виконавця ще немає. Поки статус не «Активний», свої гроші можна вивести. Надбавку до 30% ще можна довнести.

  3. Активний
    1 000 USDT
    Контракт від 21.09.2026 - EQDe…0001
    Клієнт (ви)
    1 000 / 1 000
    Виконавець
    300 / 300
    USDT

    Виконавець має погодитися. Сума округлиться до цілого відсотка від суми угоди.

    *Плюс 30% (max) поворотного депозиту

    USDT

    Виконавець поповнив

    Обидві обумовлені суми на місці — контракт активний. Суми заморожено, зняти USDT не можна. Можна прийняти роботу, запропонувати іншу частку або довнести надбавку (дод. депозит від клієнта).

  4. Активний
    1 000 USDT
    Контракт від 21.09.2026 - EQDe…0001
    Клієнт (ви)
    1 200 / 1 000 + 200 · 20%
    Виконавець
    300 / 300
    USDT

    Виконавець має погодитися. Сума округлиться до цілого відсотка від суми угоди.

    *Плюс 30% (max) поворотного депозиту

    USDT

    Додали депозит 20%

    Понад суму угоди лежить +200 USDT. До стелі 30% ще 100 USDT. Виведення досі закрите: активний контракт утримує суму контракту плюс надбавку.

  5. Запропоновано виплату 800 USDT
    1 000 USDT
    Контракт від 21.09.2026 - EQDe…0001
    Клієнт (ви)
    1 200 / 1 000 + 200 · 20%
    Виконавець
    300 / 300
    USDT

    Зараз запропоновано 800 USDT · 80%. Можна замінити.

    *Плюс 30% (max) поворотного депозиту

    USDT

    Запропонували 80% виконавцю.

    Виконавцю піде 800 USDT, якщо він погодиться. Кнопка «Прийняти роботу» зникла. Вона з'явиться знову, лише якщо виставити 100%. Пропозицію можна замінити, надбавку — довносити.

  6. Завершений 800 USDT
    1 000 USDT
    Контракт від 21.09.2026 - EQDe…0001
    Клієнт (ви)
    400
    Виконавець
    1 096

    Виконавець погодився

    Контракт завершено: 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