Готовий Web3 Boilerplate: FastAPI + Web3 Crypto Auth (MetaMask) + PostgreSQL + Docker
Сучасне, високопродуктивне REST API ядро, спроєктоване за принципами Clean Architecture з інтеграцією автентифікації через криптографічний підпис гаманців Web3 (EVM / MetaMask / WalletConnect). Проєкт повністю контейнеризований за допомогою Docker та оптимізований для миттєвого локального розгортання або продакшен-деплою.
Даний шаблон розроблений як універсальний, безпечний та архітектурно вилизаний фундамент (User Management System) для розробки P2P-платформ, арбітражних сервісів, крипто-маркетплейсів, Web3 SaaS-рішень та децентралізованих додатків (dApps). Він повністю виключає необхідність писати базову логіку авторизації та профілів з нуля.
Архітектурні особливості та технологічний стек
1.Безпарольна Web3 автентифікація: Замість класичної вразливої зв'язки email/пароль реалізовано криптографічну верифікацію публічного ключа користувача на основі підпису повідомлення (формат EIP-191). Перевірка виконується нативно на бекенді за допомогою бібліотек eth-account та eth-keys, що гарантує максимальну безпеку сесій.
2. Clean Architecture та Pydantic v2: Чітке розділення відповідальності шарів. Моделі SQLAlchemy повністю ізольовані, робота з СУБД побудована на незалежних роутерах, а вхідна та вихідна валідація даних покладена на схеми Pydantic v2 (без ручного збирання JSON-словників у контролерах).
3. Наскрізний стандарт UUID v7: Усі дочірні та пов'язані сутності системи (профілі, конфігурації користувачів) використовують сучасні, упорядковані за часом ідентифікатори UUID v7. Це унеможливлює перебір інкрементних ID зловмисниками, приховує реальні обсяги даних системи та прискорює індексацію в PostgreSQL.
4. Атомарність та Lazy Initialization даних: Профілі та системні конфігурації жорстко пов'язані з користувачем через каскадні зв'язки (ondelete="CASCADE"). Створення порожнього анонімного профілю та дефолтних налаштувань інтерфейсу відбувається атомарно в рамках однієї транзакції у момент першого коннекту гаманця, що виключає стан гонки даних (Race Condition).
5. Повна автоматизація Docker та CI/CD: Інфраструктура повністю ізольована від хост-системи. Налаштований скрипт деплою автоматично контролює доступність PostgreSQL, а директива create_all надійно ініціалізує структуру бази даних. Реалізовано автоматичний ізольований скрипт сиду бази даних, який при старті контейнера перевіряє та принудительно створює або оновлює права суперадміна для визначеного адміністративного Web3-гаманця.
6. Оптимізація для генераторів типів: Специфікація Swagger. REST-маршрути повністю готові до безконфліктної автоматичної генерації суворих фронтенд-типів (TypeScript) через утиліти Orval або OpenAPI-codegen.
Доступна REST специфікація ендпоінтів
Автентифікація:
POST /api/v1/auth/connect: Перевірка крипто-підпису повідомлення та видача безстрокового JWT Bearer токена сесії. Автоматично реєструє новий гаманець, якщо його немає в базі.
Управління Web3 акаунтом (Доступ за JWT):
GET /api/v1/users/me: Отримання повної інформації про поточний гаманець (статус, рейтинг, слоти, ліміти угод).
PUT /api/v1/users/me: Оновлення публічних метаданих аккаунта (display_name).
Управління профілями (Доступ за JWT):
GET /api/v1/profiles/me: Отримання анонімного профілю (біографія, соціальні лінки, extra_data).
PUT /api/v1/profiles/me: Редагування даних профілю.
Системні конфігурації (Доступ за JWT):
GET /api/v1/configs/me: Отримання індивідуальних налаштувань (тема інтерфейсу, мова, часовий пояс, параметри приватності та json-уведомления).
PUT /api/v1/configs/me: Зміна системних конфігурацій інтерфейсу гаманця.
Моніторинг:GET /health: Healthcheck системи для балансувальників навантаження продакшену.
Швидкий старт для локальної розробки
Розгортання ізольованої екосистеми однією командою з автоматичним підтягуванням змін (Hot-Reload):
docker compose up --build
Сучасне, високопродуктивне REST API ядро, спроєктоване за принципами Clean Architecture з інтеграцією автентифікації через криптографічний підпис гаманців Web3 (EVM / MetaMask / WalletConnect). Проєкт повністю контейнеризований за допомогою Docker та оптимізований для миттєвого локального розгортання або продакшен-деплою.
Даний шаблон розроблений як універсальний, безпечний та архітектурно вилизаний фундамент (User Management System) для розробки P2P-платформ, арбітражних сервісів, крипто-маркетплейсів, Web3 SaaS-рішень та децентралізованих додатків (dApps). Він повністю виключає необхідність писати базову логіку авторизації та профілів з нуля.
Архітектурні особливості та технологічний стек
1.Безпарольна Web3 автентифікація: Замість класичної вразливої зв'язки email/пароль реалізовано криптографічну верифікацію публічного ключа користувача на основі підпису повідомлення (формат EIP-191). Перевірка виконується нативно на бекенді за допомогою бібліотек eth-account та eth-keys, що гарантує максимальну безпеку сесій.
2. Clean Architecture та Pydantic v2: Чітке розділення відповідальності шарів. Моделі SQLAlchemy повністю ізольовані, робота з СУБД побудована на незалежних роутерах, а вхідна та вихідна валідація даних покладена на схеми Pydantic v2 (без ручного збирання JSON-словників у контролерах).
3. Наскрізний стандарт UUID v7: Усі дочірні та пов'язані сутності системи (профілі, конфігурації користувачів) використовують сучасні, упорядковані за часом ідентифікатори UUID v7. Це унеможливлює перебір інкрементних ID зловмисниками, приховує реальні обсяги даних системи та прискорює індексацію в PostgreSQL.
4. Атомарність та Lazy Initialization даних: Профілі та системні конфігурації жорстко пов'язані з користувачем через каскадні зв'язки (ondelete="CASCADE"). Створення порожнього анонімного профілю та дефолтних налаштувань інтерфейсу відбувається атомарно в рамках однієї транзакції у момент першого коннекту гаманця, що виключає стан гонки даних (Race Condition).
5. Повна автоматизація Docker та CI/CD: Інфраструктура повністю ізольована від хост-системи. Налаштований скрипт деплою автоматично контролює доступність PostgreSQL, а директива create_all надійно ініціалізує структуру бази даних. Реалізовано автоматичний ізольований скрипт сиду бази даних, який при старті контейнера перевіряє та принудительно створює або оновлює права суперадміна для визначеного адміністративного Web3-гаманця.
6. Оптимізація для генераторів типів: Специфікація Swagger. REST-маршрути повністю готові до безконфліктної автоматичної генерації суворих фронтенд-типів (TypeScript) через утиліти Orval або OpenAPI-codegen.
Доступна REST специфікація ендпоінтів
Автентифікація:
POST /api/v1/auth/connect: Перевірка крипто-підпису повідомлення та видача безстрокового JWT Bearer токена сесії. Автоматично реєструє новий гаманець, якщо його немає в базі.
Управління Web3 акаунтом (Доступ за JWT):
GET /api/v1/users/me: Отримання повної інформації про поточний гаманець (статус, рейтинг, слоти, ліміти угод).
PUT /api/v1/users/me: Оновлення публічних метаданих аккаунта (display_name).
Управління профілями (Доступ за JWT):
GET /api/v1/profiles/me: Отримання анонімного профілю (біографія, соціальні лінки, extra_data).
PUT /api/v1/profiles/me: Редагування даних профілю.
Системні конфігурації (Доступ за JWT):
GET /api/v1/configs/me: Отримання індивідуальних налаштувань (тема інтерфейсу, мова, часовий пояс, параметри приватності та json-уведомления).
PUT /api/v1/configs/me: Зміна системних конфігурацій інтерфейсу гаманця.
Моніторинг:GET /health: Healthcheck системи для балансувальників навантаження продакшену.
Швидкий старт для локальної розробки
Розгортання ізольованої екосистеми однією командою з автоматичним підтягуванням змін (Hot-Reload):
docker compose up --build