Інтеграція з TokenTax

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з TokenTax
Простий
~2-3 дні
Часті запитання

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

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1122
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    859

Інтеграція з TokenTax

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

Підтримувані формати

TokenTax приймає дані в кількох форматах:

// TokenTax Generic CSV
interface TokenTaxRow {
  type: "Trade" | "Income" | "Mining" | "Gift" | "Expense" | "Transfer";
  buyAmount: string;
  buyCurrency: string;
  sellAmount: string;
  sellCurrency: string;
  feeAmount: string;
  feeCurrency: string;
  exchange: string;
  group: string;  // для групування пов'язаних транзакцій
  comment: string;
  date: string;   // "YYYY-MM-DD HH:mm:ss"
}

function exportToTokenTaxCSV(transactions: InternalTransaction[]): string {
  const headers = [
    "Type", "BuyAmount", "BuyCurrency", "SellAmount", "SellCurrency",
    "FeeAmount", "FeeCurrency", "Exchange", "Group", "Comment", "Date"
  ];
  
  const rows = transactions.map(tx => [
    mapToTokenTaxType(tx.taxCategory),
    tx.amountIn?.toString() ?? "",
    tx.assetIn ?? "",
    tx.amountOut?.toString() ?? "",
    tx.assetOut ?? "",
    tx.feeAmount?.toString() ?? "",
    tx.feeCurrency ?? "",
    tx.source ?? "",
    tx.groupId ?? "",          // групуємо LP операції разом
    tx.notes ?? "",
    format(tx.timestamp, "yyyy-MM-dd HH:mm:ss"),
  ].join(","));
  
  return [headers.join(","), ...rows].join("\n");
}

function mapToTokenTaxType(category: TaxCategory): string {
  const typeMap: Record<TaxCategory, string> = {
    [TaxCategory.SWAP]: "Trade",
    [TaxCategory.BUY]: "Trade",
    [TaxCategory.SELL]: "Trade",
    [TaxCategory.STAKING_REWARD]: "Income",
    [TaxCategory.AIRDROP]: "Income",
    [TaxCategory.MINING_REWARD]: "Mining",
    [TaxCategory.TRANSFER]: "Transfer",
    [TaxCategory.GAS_FEE]: "Expense",
  };
  return typeMap[category] || "Trade";
}

Групування DeFi

TokenTax може обробляти складні DeFi операції, якщо їх правильно групувати:

// Для LP депозиту — групуємо пов'язані транзакції
function exportLPOperationAsGroup(
  lpDeposit: LiquidityDepositEvent,
  groupId: string
): TokenTaxRow[] {
  // Два токена віддані → LP токен отриманий
  return [
    {
      type: "Trade",
      buyAmount: lpDeposit.lpTokenAmount.toString(),
      buyCurrency: `${lpDeposit.token0}-${lpDeposit.token1}-LP`,
      sellAmount: lpDeposit.token0Amount.toString(),
      sellCurrency: lpDeposit.token0,
      feeAmount: "",
      feeCurrency: "",
      exchange: "Uniswap",
      group: groupId,
      comment: "LP deposit token0",
      date: format(lpDeposit.timestamp, "yyyy-MM-dd HH:mm:ss"),
    },
    // другий токен в окремому рядку тієї ж групи
    {
      type: "Trade",
      buyAmount: "",
      buyCurrency: "",
      sellAmount: lpDeposit.token1Amount.toString(),
      sellCurrency: lpDeposit.token1,
      feeAmount: lpDeposit.gasUSD?.toString() ?? "",
      feeCurrency: "USD",
      exchange: "Uniswap",
      group: groupId,
      comment: "LP deposit token1",
      date: format(lpDeposit.timestamp, "yyyy-MM-dd HH:mm:ss"),
    },
  ];
}

Інтеграція з TokenTax через CSV експорт з підтримкою групування DeFi — 2-4 робочих дні.