Разработка децентрализованной социальной сети под ключ

Мы проектируем и разрабатываем децентрализованные социальные сети — от интеграции с Lens Protocol до полностью кастомных протоколов. В основе каждого проекта лежит **on-chain social graph**, обеспечивающий портируемость identity и владение данными. Ошибка на этапе выбора архитектуры может привести к

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Мы проектируем и разрабатываем децентрализованные социальные сети — от интеграции с Lens Protocol до полностью кастомных протоколов. В основе каждого проекта лежит on-chain social graph, обеспечивающий портируемость identity и владение данными. Ошибка на этапе выбора архитектуры может привести к перерасходу бюджета на 30-50%, поэтому мы начинаем с глубокого анализа требований. Например, для одного из проектов мы выбрали Lens Protocol, что позволило запустить MVP за 7 недель вместо 4 месяцев кастомной разработки.

Как выбрать архитектуру для децентрализованной социальной сети?

Выбор протокола диктуется балансом между производительностью и децентрализацией.

  • Lens Protocol (Polygon) — всё on‑chain: публикации, лайки, подписки. Каждое действие — транзакция. Gas платится либо пользователем, либо спонсируется через ERC‑4337. Идеально для максимальной interoperability и portable identity. Минус — задержки и газ на L2. Пропускная способность: Lens Protocol обрабатывает до 1000 действий в секунду на Polygon, что в 5 раз больше, чем у типичного кастомного протокола на Ethereum L1.
  • Farcaster — identity на Ethereum, контент на Hubs (федеративные серверы). Быстро, без газа за операции, но Hubs теоретически могут фильтровать сообщения.
  • Кастомный протокол — полный контроль, но больше времени на аудит и разработку. Масштабирование требует собственных rollup-решений.

Наш опыт: для стартапов с типовой функциональностью (лента, подписки, collect) оптимален Lens Protocol — быстрый запуск за 6–10 недель при готовой инфраструктуре. Если нужна полная независимость от сторонних протоколов или специфическая модерация — строим собственные контракты. Использование готового протокола позволяет сэкономить от 30 до 50 процентов бюджета на разработку смарт-контрактов. Как отмечено в спецификации Lens Protocol, gas sponsoring доступен через ERC-4337, что критично для UX.

Как реализовать интеграцию с Lens Protocol?

import { LensClient, development, production } from "@lens-protocol/client"; const lensClient = new LensClient({ environment: production, }); // Получение профиля const profile = await lensClient.profile.fetch({ forHandle: "lens/stani", }); // Публикация поста async function createPost( profileId: string, content: string, imageUrl?: string ): Promise<string> { const metadata = { $schema: "https://json-schemas.lens.dev/publications/text-only/3.0.0/schema.json", lens: { id: uuidv4(), content, locale: "en", mainContentFocus: "TEXT_ONLY", tags: [], }, }; const metadataURI = await uploadToIPFS(metadata); const result = await lensClient.publication.postOnchain({ contentURI: metadataURI, }); return result.id; } 

Collect механика (монетизация):

const postWithCollect = await lensClient.publication.postOnchain({ contentURI: metadataURI, openActionModules: [ { collectOpenAction: { simpleCollectOpenAction: { amount: { currency: "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270", // WMATIC value: "1", }, recipient: creatorAddress, referralFee: 5, // 5% рефералу followerOnly: true, }, }, }, ], }); 

Lens поддерживает sponsoring через ERC‑4337 — пользователи не платят MATIC. Это мы настраиваем на этапе интеграции.

Создание собственного протокола: смарт-контракты

Если нужна полная независимость, проектируем собственные контракты. Ниже — примеры ключевых компонентов с gas optimization приоритетом.

Identity

contract SocialIdentity is ERC721 { struct Profile { string handle; string metadataURI; uint256 followerCount; uint256 followingCount; uint256 publicationCount; } mapping(string => uint256) public handleToTokenId; mapping(uint256 => Profile) public profiles; function createProfile(string calldata handle, string calldata metadataURI) external returns (uint256 tokenId) { require(handleToTokenId[handle] == 0, "Handle taken"); require(bytes(handle).length >= 3 && bytes(handle).length <= 31, "Invalid handle length"); tokenId = ++_tokenCounter; _mint(msg.sender, tokenId); profiles[tokenId] = Profile({ handle: handle, metadataURI: metadataURI, followerCount: 0, followingCount: 0, publicationCount: 0, }); handleToTokenId[handle] = tokenId; emit ProfileCreated(tokenId, handle, msg.sender); } } 

Publications

contract Publications { enum PublicationType { POST, COMMENT, REPOST } struct Publication { uint256 profileId; string contentURI; PublicationType pubType; uint256 parentId; uint256 timestamp; uint256 collectCount; uint256 commentCount; uint256 mirrorCount; } mapping(uint256 => Publication) public publications; function post(uint256 profileId, string calldata contentURI) external returns (uint256 pubId) { require(socialIdentity.ownerOf(profileId) == msg.sender, "Not profile owner"); pubId = ++_publicationCounter; publications[pubId] = Publication({ profileId: profileId, contentURI: contentURI, pubType: PublicationType.POST, parentId: 0, timestamp: block.timestamp, collectCount: 0, commentCount: 0, mirrorCount: 0, }); socialIdentity.incrementPublicationCount(profileId); emit Posted(pubId, profileId, contentURI); } } 

Social graph (Follows) реализуется отдельным контрактом с NFT для каждого follow, что обеспечивает уникальность отношений.

Контент и хранение

Публикации хранятся как JSON metadata на IPFS — каждый пост имеет свой CID. Для изменяемых данных (профиль, настройки) используем Ceramic/ComposeDB — децентрализованную базу данных поверх IPFS. Индексацию событий выполняет TheGraph, что даёт быстрые запросы к ленте.

Сравнение архитектур

Параметр Lens Protocol Farcaster Кастомный протокол
Децентрализация Высокая Средняя (Hubs) Полная
Газ для пользователя Да (может быть спонсирован) Нет Да
Пропускная способность ~1000 tx/s Высокая (off-chain) Зависит от L2
Сложность разработки Средняя Низкая Высокая
Время запуска 6–10 нед. 4–8 нед. 4–6 мес.

Какие этапы включает разработка?

  1. Анализ требований и выбор архитектуры (1–2 недели).
  2. Проектирование смарт-контрактов или выбор готового протокола.
  3. Разработка контрактов (identity, publications, social graph) при кастомном подходе.
  4. Интеграция фронтенда с блокчейном через wagmi + viem.
  5. Настройка индексора (TheGraph) и хранения (IPFS, Ceramic).
  6. Тестирование (unit, integration, security audit).
  7. Деплой в mainnet и поддержка.

Почему важен аудит кастомных контрактов?

Собственный протокол — это на 100% кастомный код. Ошибка в контракте identity может заблокировать все аккаунты, а уязвимость в social graph — привести к потере подписчиков. Мы проводим аудит с использованием Slither, Mythril и фаззинг-тестирования Echidna. Без аудита запуск в mainnet недопустим.

Модерация и монетизация

Модерация строится на принципе «label, not delete»: контент не удаляется из протокола, но помечается флагами (подход Bluesky Labeler). Приложения самостоятельно решают, какой контент показывать. Для сообществ можно внедрить DAO-голосование за удаление из индексов.

Монетизация для создателей включает:

  • Collect fees — читатели платят за копию поста (каждая транзакция стоит ~0.001 MATIC на Polygon).
  • Subscription NFT — ежемесячный пропуск к премиум-контенту.
  • Tipping — микроплатежи через L2.
  • Token gating — доступ только для держателей указанного NFT.
  • Рекламная выручка — протокол распределяет доход между авторами пропорционально просмотрам.

Что входит в работу?

  • Смарт-контракты (Identity, Publications, SocialGraph) с полной документацией.
  • Фронтенд на Next.js + wagmi + viem.
  • Индексер и API для ленты и поиска.
  • Хранение на IPFS и Ceramic.
  • Юнит- и интеграционное тестирование, отчёт аудита.
  • Инструкции по деплою и дальнейшей поддержке.
  • Обучение команды заказчика работе с протоколом.
  • Месяц пост-деплойной поддержки.

Сроки и стоимость

Сроки варьируются в зависимости от сложности: базовая интеграция Lens Protocol занимает 6–10 недель, кастомный протокол — 4–6 месяцев плюс обязательный security audit. Точную стоимость оцениваем после брифа. Мы реализовали десятки Web3-проектов, гарантируем аудит и сопровождаем после запуска. Закажите предварительную консультацию по архитектуре — это бесплатно и займёт 30 минут. Свяжитесь с нами, чтобы обсудить детали вашего проекта.