Архітектурні креслення та інженерні розбори
Тоді як документація окремих пакетів містить детальний довідник функцій та API, цей розділ присвячений високорівневій Web3-архітектурі, перевіреним у продакшені патернам та практичним рецептам інтеграції.
Web3-інженерія зазнає краху, коли реалії розподілених реєстрів стикаються з наївними фронтенд-припущеннями: перевантаження мемпулу, динамічні стрибки газу, втрачені nonce, транзакції заміни (speed-up/cancel), фоновий тротлінг вкладок браузера та розмонтування React-компонентів. Описані тут рішення усувають ці системні проблеми за допомогою локально-орієнтованих, безголових (headless) і некастодіальних архітектурних патернів.
Базові правила системного дизайну, суворі межі ізоляції пакетів, міжрівневі контракти та обмеження для автономних агентів у всій екосистемі наведені у файлі
workflows/TUWA_AGENTS.md. Це єдине джерело архітектурної істини як для інженерів, так і для ШІ-агентів.Глибокі інженерні розбори
Комплексні інженерні дослідження, спрямовані на усунення системних вразливостей у сучасних dApps:
🔐 Мультичейн-автентифікація з SIWX (CAIP-122 за межами EVM)
Чому EIP-4361 обмежує сучасні мультичейн-застосунки, як CAIP-122 об’єднує автентифікацію EVM та Solana в єдиний криптографічний контур і як реалізувати безстанові сесії із захистом від повторного відтворення (anti-replay).
- Фокус: Протокол CAIP-122, міжмережева синхронізація сесій, перевірка підписів EIP-191/1271 та ed25519.
- Ключове рішення: Універсальна мультичейн-автентифікація на базі @tuwaio/siwx.
⚡ Чому керування станом Web3-транзакцій зламане (і чому useState — це антипатерн)
Детальне дослідження того, чому моделювання блокчейн-записів через React useState призводить до втрати стану при розмонтуванні компонентів, «осиротілих» транзакцій пришвидшення та розсинхронізації сесій. Демонструє відокремлення виконання від дерева UI за допомогою безголових скінченних автоматів.
- Фокус: Механіка мемпулу, заміна транзакцій за nonce, синхронізація між вкладками.
- Ключове рішення: Відокремлений життєвий цикл транзакцій на базі @tuwaio/pulsar-core.
🛡️ Деконструкція ERC-4337: некастодіальна абстракція акаунтів без пропрієтарних WaaS
Чому Account Abstraction не потребує закритої WaaS-платформи, як працює альтернативний мемпул і двофазний життєвий цикл userOpHash → txHash, та як будувати оптимізовані за газом некастодіальні смарт-акаунти із Solady, Orbit EVM, Pulsar і Quasar.
- Фокус: Канонічний EntryPoint v0.7, контрфактичні акаунти Solady, бандлери/пеймастери Pimlico, двофазне відстеження UserOp.
- Ключове рішення: Суверенні смарт-акаунти зі спонсоруванням газу на базі @tuwaio/orbit-evm, @tuwaio/pulsar-core та Quasar.
Покрокові посібники
Практичні інструкції з налаштування, що поєднують декілька пакетів TUWA:
🧭 Відстеження транзакцій у React за допомогою Pulsar
Додайте Pulsar до React-застосунку для гаманця EVM або Solana: стор транзакцій у localStorage, адаптер мережі, відновлення трекінгу після перезавантаження сторінки та кнопка відправлення контракту чи програми (включно з варіантом смарт-акаунта ERC-4337).
- Пакети: @tuwaio/pulsar-core, @tuwaio/pulsar-evm або @tuwaio/pulsar-solana, @tuwaio/pulsar-react, Nova Connect.
🧱 Створення Full-Stack React застосунку з TUWA SDK
Застосунок Next.js на @tuwaio/sdk для EVM або Solana: підключення гаманців із модальними вікнами Nova Connect, вхід SIWX із серверними сесіями, стор транзакцій Pulsar із модальними вікнами та тостами Nova Transactions і Server Action із перевіркою авторизованого гаманця.
- Пакети: @tuwaio/sdk, @tuwaio/evm-sdk або @tuwaio/solana-sdk.
☁️ Синхронізація транзакцій із Quasar
Продовження full-stack застосунку: Server Actions, що викликають Quasar після перевірки сесії SIWX, стор Pulsar, який синхронізує кожну нову транзакцію, та спільна історія всіх пристроїв у модальних вікнах Nova.
- Пакети: @tuwaio/quasar-sdk, @tuwaio/sdk.
🔑 Передача сесії SIWX у зовнішню автентифікацію через JWT та JWKS
Короткоживучий JWT для гаманця, авторизованого через SIWX, та публічні ключі JWKS для його перевірки, щоб кастомна автентифікація Coinbase CDP, інші провайдери та ваші власні сервіси довіряли одному входу.
- Пакети: @tuwaio/sdk (/siwx/server, /siwx/server-next), @coinbase/cdp-hooks.
🗄️ Використання входу SIWX із Supabase Row Level Security
Supabase довіряє токену SIWX як сторонньому провайдеру автентифікації, політики Row Level Security за адресою гаманця надають кожному гаманцю доступ лише до його власних рядків, а клієнт supabase-js передає токен із браузера та Server Actions.
- Пакети: @tuwaio/sdk (/siwx, /siwx/server, /siwx/server-next), @supabase/supabase-js.
🚀 Стартові шаблони
Готові застосунки Next.js та Vite із Cosmos Playground — підключення гаманців, відстеження транзакцій, вхід SIWX та синхронізація з Quasar вже з’єднані разом — а також CLI для швидкого створення проєкту.
Довідники API пакетів
Шукаєте детальні довідники API, сигнатури хуків, визначення типів або інструкції зі встановлення окремих пакетів?
Усі спеціалізовані простори документації пакетів (@tuwaio/siwx, @tuwaio/orbit, @tuwaio/satellite, @tuwaio/pulsar, @tuwaio/nova-uikit, @tuwaio/sdk та @tuwaio/quasar-sdk) зібрані на Головному екрані. Перейдіть на головний портал, щоб дослідити інтерактивну карту рівнів та відкрити документацію потрібного пакета.
Quasar — застосунки та ключі, квоти, вебхуки, self-hosting Community Edition та довідник API — описаний у розділі Quasar цього хабу.
Архітектурні принципи
Кожне креслення у цьому репозиторії дотримується трьох непорушних інженерних принципів:
- Некастодіальна та суверенна архітектура: Фронтенди залишаються некастодіальними і не потребують закритих пропрієтарних WaaS-платформ. Клієнтські застосунки зберігають стійкий локальний стан і можуть підключати Quasar для міжпристроєвої індексації, доставки вебхуків та серверної оркестрації — як керовану хмару або як відкриту self-hosted Community Edition (Apache-2.0) — ніколи не беручи під контроль ключі користувачів.
- Безголове (Headless) розділення відповідальності: Базова бізнес-логіка живе у фреймворк-незалежних сторах (satellite, pulsar) і низькорівневих протокольних адаптерах (orbit). Відображення живе у змінних UI-компонентах (nova). Зміни стилізації ніколи не загрожують роботі базових Web3-машин станів.
- Сувора типізація та нуль зайвого коду: Нульова толерантність до типів any, застарілих бандлів @solana/web3.js v1 чи монолітних пакетів ethers.js. Лише сучасні, tree-shakeable високопродуктивні примітиви (viem, @solana/kit).