Розробка системи обліку DeFi-операцій для податків

Операції в DeFi розкидані по гаманцях, мережах і протоколах, і до звітного періоду дані доводиться збирати вручну. Ми розробляємо системи податкового обліку DeFi під ключ: єдиний контур збору, розмітки та звірки операцій. Скорочуємо час на підготовку звітності в рази й передаємо готові регламенти.
Часті запитання

Податковий облік DeFi: де втрачаються дані операцій

Податковий облік DeFi ламається не на розрахунку податку, а на зборі первинних даних. Одна операція залишає слід одразу в кількох місцях: транзакція в гаманці, подія в пулі ліквідності, запис на біржі, переказ через міст. Жодне джерело не бачить картини цілком.

Облік DeFi-операцій починається з розрізнених джерел даних: адреси гаманців, ключі яких змінювалися, гарячі та апаратні сховища, рахунки на біржах із усіченим журналом.

Кожен дає свій формат і своє уявлення про час: біржа фіксує момент виконання, мережа — включення блоку, оглядач — лише ті події, які встиг проіндексувати.

Обрив історії операцій погіршує картину. Біржі вивантажують обмежений горизонт, публічні оглядачі не індексують внутрішні перекази та спалювання токенів пулу, а міст створює два незв’язані записи з обох сторін.

Вартість входу в позицію втрачається, і винагороди в токенах пулу потрапляють до реєстру як дохід без бази витрат.

Далі — ручна звірка: зіставлення вивантажень за часом і сумами, підтягування курсу на момент кожної операції, позначення переказів між власними гаманцями як неоподатковуваних.

Розбіжності накопичуються в неправильну базу, відновлення втраченої ділянки займає дні й не дає доказового ланцюжка походження коштів. Нижче розбираємо, як це закривається.

Що дає єдиний контур обробки операцій

Єдиний контур даних починається з однієї схеми зберігання: кожна операція — з блокчейну, з біржового рахунку або кастодіального гаманця — потрапляє до спільного реєстру з однаковим набором полів.

Нормалізація активів, часу та ідентифікаторів транзакцій виконується на вході, тому повторне вивантаження не створює дублів, а перекази між власними адресами виключаються автоматично.

Поки джерела живуть окремо, кожна звірка перетворюється на ручне зіставлення таблиць, і період закривається тижнями.

Автоматичне рознесення тримається на правилах, а не на ручному розборі: парні надходження й витрати в межах однієї транзакції, перекази через мости, нарахування за стейкінг і надання ліквідності, комісії мережі окремою статтею витрат.

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

Звідси — усунений клас помилок: розбіжності між джерелами через різний час фіксації та різний облік комісії. Звірка за ідентифікатором транзакції викриває такі пари одразу, і фахівець працює з коротким списком винятків, а не з повним обсягом вивантаження.

Повнота реєстру підтверджується контрольними сумами за кожною адресою: звіряються вхідні та вихідні потоки, а операції без пари потрапляють до звіту винятків, а не губляться в тиші.

Завдяки цьому строк закриття періоду стискається з тижнів до кількох днів, і кожне число у звіті простежується до вихідної операції.

Способи збору даних за DeFi-операціями

Спосіб збору визначає, наскільки повно й доказово закриється податковий облік DeFi. Дані надходять із трьох місць: інтерфейсів сервісів, публічних оглядачів блоків і власного вузла, синхронізованого з мережею.

Від обраної комбінації залежить і точність котирувань на момент операції, і те, чи зможете ви пред’явити перевіряючому первинне підтвердження кожного запису.

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

Вузлова синхронізація дає повний лог подій без посередника, однак потребує інфраструктури й перерахунку стану на потрібну дату — інакше баланси на початок періоду не зійдуться.

Варіант Коли підходить Обмеження
Ручний збір Поодинокі операції, розбір минулих періодів Трудомістко, легко пропустити подію, немає єдиного ключа для звірки
Вузлова синхронізація Великий потік операцій, кілька мереж, потрібна автономність Потрібен вузол і перерахунок історії, у разі обриву синхронізації з’являються прогалини
Гібридна схема з ручною верифікацією Облік для звітності та перевірок Частина операцій розмічається вручну, потрібен регламент звірки розбіжностей

На практиці верифікація операцій спирається на первинні ознаки: хеш транзакції, номер події в блоці, адреси учасників. Якщо джерело не віддає поле або розходиться в котируванні, запис потрапляє до черги ручного розбору — період не закривається, доки розбіжність не усунуто.

Етапи впровадження: від аудиту джерел до передачі

Порядок робіт вибудуваний так, щоб помилки в моделі податкового обліку DeFi-операцій з’являлися до звітності, а не після. Кожен етап завершується перевірюваним артефактом, тому результат не залежить від того, хто веде проєкт.

  1. Аудит джерел. Збираємо всі місця, де виникають операції: адреси гаманців, біржові вивантаження, мости, пули ліквідності, стейкінг і винагороди. Фіксуємо формати вивантажень і те, яких даних у них бракує — пропуски найчастіше й ламають облік.
  2. Схема нормалізації. Зводимо різнорідні записи до єдиної моделі події: тип операції, активи на вході та виході, гаманець, час, джерело. Окремо описуємо правила, за якими операція визнається оподатковуваною, а переказ між власними гаманцями — ні.
  3. Налаштування збору та розрахунку. Підключаємо індексацію історії, пов’язуємо перекази між гаманцями й обміни в пулах, підтягуємо курси на момент операції. Логіка розрахунку бази та строки зберігання живуть у конфігурації, а не в ручних таблицях.
  4. Прогін на контрольній вибірці. Беремо період із заздалегідь відомим результатом, розібраний вручну, і звіряємо з розрахунком системи. За операціями з повними даними розбіжність зводимо до нуля, за рештою ведемо список припущень.
  5. Регламент закриття періоду. Описуємо, хто і коли вивантажує дані, як розбираються розбіжності та де зберігається історія коригувань. Регламент потрібен, щоб наступний період закривався без перезбирання моделі.
  6. Передача рішення. Віддаємо налаштовану систему, схему нормалізації, документацію та розбір контрольної вибірки, навчаємо команду. Період після передачі закривається власними силами; ми залишаємося на зв’язку щодо нових типів операцій.

Комплект документації, конфігурацій і регламентів

Після впровадження в замовника залишається не набір разових звітів, а робочий контур податкового обліку DeFi, який бухгалтерія та внутрішня підтримка ведуть без нас.

Комплект документації описує його цілком — від джерел даних до правил, за якими операція потрапляє до конкретного рядка обліку.

  • Конфігурації обліку — файли в читабельному форматі: список адрес гаманців і мереж, пороги, за яких операція потребує ручної класифікації, зіставлення контрактів зі статтями обліку. Правки вносяться без перезбирання системи.
  • Схема джерел даних — які вузли та індексатори використовуються, які залишені резервними, як переграються пропущені блоки й що відбувається в разі розбіжності даних із двох джерел.
  • Правила рознесення операцій — своп розкладається на вибуття одного активу та придбання іншого, переказ між власними гаманцями не створює події, нараховані винагороди визнаються доходом на момент отримання, частка в пулі обліковується окремо від комісій.
  • Довідник активів — тикер, адреса контракту, кількість знаків після коми, ознака стейблкоїна, допустимі джерела ціни на дату операції.
  • Регламент звірки — порядок зіставлення підсумків із балансами гаманців і виписками майданчиків, періодичність, дії в разі розбіжності та строки розбору.
  • Опис обмежень — які мережі та протоколи підтримано, де класифікація ручна, а де оцінка наближена і на якій підставі.
  • Інструкції для бухгалтерії — вивантаження в потрібному форматі, склад полів, відповідність статтям обліку.
  • Журнал версій правил — яка редакція правил і з якої дати застосовується: перерахунок минулих періодів залишається відтворюваним.

Усе передається із супроводом: покажемо, де змінювати конфігурацію, і розберемо спірні операції на реальних даних. Опишіть задачу — повернемося з оцінкою та планом робіт.

Кейс: звірка операцій до та після автоматизації

Клієнт — невелика команда, яка веде активні операції в DeFi: свопи, надання ліквідності, стейкінг і перекази між мережами. Облік тримався на ручних вивантаженнях із публічних блок-оглядачів і таблицях: зіставлення входів і виходів за кожним гаманцем робилося вручну.

Типовий збій — розбіжність собівартості після виведення з пулу: суми сходяться, а база витрат з’їжджає, і звіт не б’ється з фактом.

Що змінили: збір операцій із публічних джерел (Etherscan та аналоги), єдину модель за гаманцями й мережами, автоматичний розрахунок бази витрат за методом FIFO і окремий модуль контролю розбіжностей із журналом правок.

Метрика До Після
Підготовка періоду 16–20 робочих годин 2–3 години
Розбіжності після здачі 9–14 позицій 0–2, закриваються в циклі
Операції, розібрані автоматично вибірково 93%
Звірка гаманця вручну, частково за кожним, до закриття

Контроль розбіжностей став частиною процесу, а не розбором після здачі. Ручне зіставлення замінив розбір поодиноких винятків — їх залишається менше десятої частини від попереднього обсягу, а кожна правка тепер видна в журналі з причиною та джерелом даних.

Чим відрізняється ручний збір від вузлової синхронізації?

Ручний збір — це ланцюжок вивантажень: експлорер за адресою, файли з біржі, дані з гаманця, зведення в одну таблицю.

Він працює, поки адрес і мереж мало, але повнота історії впирається в те, що бачить джерело: неуспішні виклики, внутрішні перекази, зміни позицій у пулах ліквідності та виплати зборів до звичного вивантаження не потрапляють. Кожна пропущена подія — це незакрита податкова база.

Вузлова синхронізація будується інакше: піднімаємо архівний вузол і проходимо блоки від першої операції адреси, декодуючи логи контрактів у нормалізовані події.

Подія прив’язана до хешу транзакції та індексу логу — дублі виключені, а вартість активу береться на момент включення блоку, а не на дату вивантаження, що знімає викривлення під час перерахунку заднім числом. Повнота історії визначається діапазоном оброблених блоків, а не можливостями зовнішнього сервісу.

Друга відмінність — стійкість до збоїв: зовнішні джерела змінюють схеми відповідей, вводять ліміти й періодично недоступні, і ручний реєстр у такі моменти просто неповний — незрозуміло, де саме.

Вузол — контрольоване джерело: обробка зберігає позначку висоти, продовжується з того самого місця, а розбіжності виявляються звіркою, а не довірою до чужого вивантаження.

Якщо реєстр уже розгорнуто вручну, викидати його не потрібно. Він стає базою для звірки: синхронізація наздоганяє історію, зіставляє операції та показує дельту — де ручний збір пропустив подію або продублював її. Далі реєстр ведеться машинно, а ручна праця залишається лише на розборі спірних випадків.

Технічні сумніви та обмеження рішення

Будь-яка система обліку DeFi-операцій спирається на межі, які краще проговорити до старту. Нижче — застереження, які найчастіше виринають в інженерів і керівників напряму: де рішення впирається в обмеження і як ми їх закриваємо.

Що робити, якщо історія операцій неповна?

Публічні вузли зберігають не весь період, а частина подій могла відбутися до того, як контракт потрапив у відстеження.

У таких випадках довантажуємо архів і позначаємо відновлений період як розрахунковий, а не підтверджений — розбіжність видно у звіті одразу, а не виринає під час перевірки.

Як додається нова мережа або протокол?

Окремим конектором: правила розбору подій контракту, мапінг на план рахунків і набір тестів на історичних даних. Поки тести не сходяться з еталонним вивантаженням, мережа не йде в розрахунок — розширення не ламає вже здану звітність.

Наскільки можна довіряти джерелу даних?

Читаємо з кількох незалежних вузлів і звіряємо результат: розбіжність за операцією отримує флаг якості й не проводиться мовчки. Вартість у пулах і агрегаторах беремо на момент операції, а не за поточним курсом — інакше суми у звіті розходяться з фактичними.

Хто відповідає за дані після здачі?

Наша зона — коректність вивантаження та відтворюваність розрахунку: будь-яку цифру можна розплутати до вихідної транзакції.

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

Обговоримо задачу та повернемося з оцінкою й планом

Щоб повернутися з оцінкою строків, а не із загальними формулюваннями, нам потрібно побачити вашу поточну схему обліку: звідки надходять дані за операціями, де вони зводяться, які звіти вже формуються і що в них викликає питання.

Опишіть задачу у вільній формі — мережі та майданчики, типи операцій і їхній обсяг, хто всередині команди відповідає за податковий облік DeFi, у якому вигляді результат іде у звітність.

Цього достатньо, щоб зібрати склад робіт і план впровадження за етапами, без довгих опитувальників на старті.

  • розбір поточних джерел і форматів вивантажень за операціями;
  • карту покриття: які операції вже враховані, а які губляться між майданчиками;
  • склад робіт із розбивкою за етапами та зонами відповідальності;
  • оцінку строків за кожним етапом і порядок запуску;
  • план впровадження з точкою звірки — що вважаємо результатом етапу;
  • перелік доступів і даних, які знадобляться з вашого боку;
  • варіант поетапного запуску, щоб не зупиняти поточний облік.

Наступний крок — розмова по суті: розберемо опис, поставимо точкові питання щодо даних і повернемося з оцінкою строків, складом робіт і планом впровадження.

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142