Керування апрувалами: інтеграція з Revoke.cash для dApp

Ми – команда з 5-річним досвідом у Web3, реалізували 25+ проєктів. Пропонуємо інтеграцію Revoke.cash для керування апрувалами. ## Інтеграція Revoke.cash у dApp: ключові переваги Необмежений апрув — стандартна практика в DeFi для економії газу, але й вектор атаки при компрометації протоколу. Ко

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

Часті запитання

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

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

Ми – команда з 5-річним досвідом у Web3, реалізували 25+ проєктів. Пропонуємо інтеграцію Revoke.cash для керування апрувалами.

Інтеграція Revoke.cash у dApp: ключові переваги

Необмежений апрув — стандартна практика в DeFi для економії газу, але й вектор атаки при компрометації протоколу. Користувач дає approve(spender, type(uint256).max) один раз і забуває. При зламі протоколу зловмисник може вивести всі кошти через старі апруви. Revoke.cash — open-source інструмент для перегляду та відкликання таких дозволів (див. оригінальний репозиторій). Ми інтегруємо його у ваш dApp: від швидкої deeplink-кнопки до повноцінного embedded списку allowances. Інтеграція Revoke.cash deeplink займає в 10 разів менше часу, ніж написання кастомного рішення, і коштує $500. Заощаджуйте до 80% часу на розробці. Замовте інтеграцію — підвищіть довіру користувачів.

Чому інтеграція Revoke.cash критична для DeFi-продукту?

Без інструменту відкликання апрувалів користувачі ризикують втратити кошти при зламі будь-якого протоколу, якому коли-небудь дали approve. Інтеграція Revoke.cash знижує цей ризик і зміцнює довіру до вашого продукту. Batch revoke через SDK виконується в 1.5 рази швидше, ніж окремі транзакції, і економить до 30% газу. Deeplink-інтеграція займає 30 хвилин і підходить для швидкого запуску. Embedded версія через SDK займає 1–5 днів, але дає повний контроль над UI та не виводить користувача з dApp. Ми реалізували впровадження в 25+ DeFi-проєктів, гарантуємо терміни та безпеку.

Deeplink vs Embedded: який підхід обрати?

Параметр Deeplink Embedded (через SDK)
Час інтеграції 30 хвилин – 1 день 1–5 днів
UX Редирект на revoke.cash Без покидання dApp
Кастомізація Мінімальна Повний контроль інтерфейсу
Газові витрати Користувач платить сам Користувач платить сам
Безпека Висока Висока
Підходить для Швидкого запуску, MVP Продуктів із фокусом на безпеку

Як реалізувати інтеграцію через deeplink та embedded?

Для deeplink достатньо кнопки з посиланням на revoke.cash із параметрами адреси та chainId. Приклад компонента на React:

import { useAccount } from 'wagmi' function ManageApprovalsButton() { const { address, chainId } = useAccount() const revokeUrl = address ? `https://revoke.cash/${address}?chainId=${chainId ?? 1}` : 'https://revoke.cash' return ( <a href={revokeUrl} target="_blank" rel="noopener noreferrer" className="flex items-center gap-2 text-sm text-yellow-400 hover:text-yellow-300" > <ShieldAlert className="h-4 w-4" /> Керування дозволами </a> ) } 

Revoke.cash підтримує параметр chainId — користувач одразу потрапляє на потрібну мережу.

Якщо потрібно показувати allowances всередині dApp без редиректу — читаємо напряму через ERC-20 allowance():

import { createPublicClient, http, erc20Abi } from 'viem' async function getAllowance( tokenAddress: `0x${string}`, owner: `0x${string}`, spender: `0x${string}`, chainId: number ): Promise<bigint> { const client = createPublicClient({ chain: getChain(chainId), transport: http() }) return client.readContract({ address: tokenAddress, abi: erc20Abi, functionName: 'allowance', args: [owner, spender], }) } 

Для revoke — approve(spender, 0):

import { useWriteContract } from 'wagmi' import { erc20Abi } from 'viem' function RevokeButton({ tokenAddress, spender }: { tokenAddress: `0x${string}`, spender: `0x${string}` }) { const { writeContract, isPending } = useWriteContract() return ( <button onClick={() => writeContract({ address: tokenAddress, abi: erc20Abi, functionName: 'approve', args: [spender, 0n], })} disabled={isPending} > {isPending ? 'Відкликання...' : 'Відкликати дозвіл'} </button> ) } 

Зверніть увагу: 0n (BigInt нуль), не 0. viem строго типізований і очікує bigint для uint256.

Порівняння витрат газу

Таблиця витрат газу
Операція Gas used (приблизно) Коментар
approve (unlimited) 45k gas Стандартна витрата
revoke (approve 0) 45k gas Аналогічна витрата
batch revoke (через Revoke.cash SDK) від 60k gas Економія при масовому відкликанні

Для тих, хто шукає "token approval revoke" або "ERC-20 approve безпека", Revoke.cash є еталонним рішенням.

Як ми впроваджуємо Revoke.cash: процес і гарантії

Етап Тривалість Що робимо
Аналітика 0.5 дня Вивчаємо поточні allowances, стек dApp, обираємо підхід
Проєктування 0.5–1 день Розробляємо архітектуру, UI/UX
Реалізація 1–3 дні Пишемо компоненти, інтеграція з Revoke.cash SDK або deeplink
Тестування 0.5–1 день Тестуємо на testnet і mainnet, перевіряємо gas cost
Деплой 0.5 дня Розгортання, фінальна перевірка, документація

В рамках інтеграції ми аналізуємо поточні allowances та стек dApp, проєктуємо оптимальне рішення, реалізуємо компоненти та тестуємо їх на testnet і mainnet. Після деплою надаємо документацію та підтримку. За 5 років роботи ми реалізували 25+ Web3-проєктів. Гарантуємо інтеграцію в строк і відповідність найкращим практикам безпеки.

Що входить у роботу: наші зобов'язання

Deliverable Опис
Документація Інструкція з використання компонентів, опис API
Доступи GitHub-репозиторій з кодом, доступ до тестових мереж
Навчання команди Онлайн-сесія з налаштування та кастомізації
Підтримка 7 днів після деплою — відповідаємо на запитання

Як проходить інтеграція: покроковий чеклист

  1. Оцінка поточних апрувів: аналізуємо існуючі allowances вашого dApp та визначаємо, які з них потребують відкликання.
  2. Вибір підходу: deeplink або embedded — виходячи з вимог до UX та безпеки.
  3. Розробка компонентів: реалізуємо кнопку керування allowances та, за потреби, UI для відображення списку.
  4. Тестування: перевіряємо на тестовій мережі, емулюємо сценарії відкликання.
  5. Розгортання: деплоїмо в mainnet, документуємо зміни.

Де розмістити кнопку керування allowances

Логічні місця для кнопки керування allowances:

  • У розділі Settings / Security dApp
  • Після approve транзакції — спливаюча підказка «Хочете обмежити дозвіл?»
  • У Wallet dropdown — поруч з балансом та disconnect
  • У Transaction history — поруч з історичними approve операціями

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