Интеграция с Farcaster

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Farcaster
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с Farcaster

Farcaster — децентрализованный social protocol с on-chain identity (Ethereum) и off-chain сообщениями (Hubs). В отличие от Lens, Farcaster приоритизирует скорость и developer experience: нет газа за каждое действие, нет latency блокчейна для сообщений. Быстро растущая экосистема с Warpcast как основным клиентом.

Архитектура Farcaster

FID (Farcaster ID): on-chain идентификатор на Ethereum (Optimism). Регистрация один раз, стоит газ.

Signers: Ed25519 ключи, зарегистрированные для FID. Сообщения подписываются signer key, не Ethereum ключом. Это позволяет приложениям подписывать сообщения без доступа к private key кошелька.

Hubs: federated серверы, хранящие и синхронизирующие сообщения Farcaster. Neynar, Warpcast, Pinata — примеры Hub провайдеров.

Frames: интерактивные элементы прямо в ленте — мини-приложения внутри постов.

Frames — ключевая фича для разработчиков

Frames — это OpenGraph-подобный стандарт для интерактивных постов. Пользователь видит пост с кнопками, нажимает — сервер обрабатывает действие и возвращает новый frame. Можно строить: mint NFT прямо из ленты, голосования, игры, onboarding флоу.

import { Frog } from "frog";
import { Button, FrameContext } from "frog";

const app = new Frog({ basePath: "/api" });

// Простой frame с минтингом NFT
app.frame("/mint-nft", async (c: FrameContext) => {
  const { buttonValue, frameData } = c;
  
  let status = "ready";
  let txHash = "";
  
  if (buttonValue === "mint") {
    // Инициируем минт транзакцию
    try {
      txHash = await mintNFT(frameData?.fid?.toString() ?? "");
      status = "minted";
    } catch {
      status = "error";
    }
  }
  
  return c.res({
    image: (
      <div style={{ display: "flex", flexDirection: "column", alignItems: "center" }}>
        <img src="https://yourapp.com/nft-preview.png" width="400" height="300" />
        {status === "minted" && <p>Minted! TX: {txHash.slice(0, 10)}...</p>}
        {status === "error" && <p>Error minting. Try again.</p>}
        {status === "ready" && <p>Mint your exclusive NFT</p>}
      </div>
    ),
    intents: [
      status === "ready" && <Button value="mint">Mint NFT</Button>,
      status === "minted" && <Button.Link href={`https://etherscan.io/tx/${txHash}`}>View TX</Button.Link>,
    ],
  });
});

Neynar API — упрощённая интеграция

Neynar — managed Farcaster API, снимает необходимость запускать собственный Hub:

import { NeynarAPIClient } from "@neynar/nodejs-sdk";

const neynar = new NeynarAPIClient({ apiKey: process.env.NEYNAR_API_KEY! });

// Публикация каста (поста)
const cast = await neynar.publishCast(
  signerUUID,      // UUID signer, зарегистрированного через Neynar
  "Hello Farcaster! #web3",
  {
    embeds: [{ url: "https://yourapp.com/post/123" }],
    channelId: "dev", // публикация в канале /dev
  }
);

// Получение ленты по FID
const feed = await neynar.fetchFeed("following", {
  fid: 12345,
  limit: 25,
  cursor: nextCursor,
});

// Получение followers
const followers = await neynar.fetchUserFollowers({ fid: 12345 });

// Поиск пользователей
const users = await neynar.searchUser("alice", { viewerFid: myFid });

Sign In With Farcaster (SIWF)

Аутентификация через Farcaster аккаунт — аналог SIWE для Farcaster:

import { createAppClient, viemConnector } from "@farcaster/auth-client";

const appClient = createAppClient({
  ethereum: viemConnector(),
});

// Создаём channel для auth
const { channelToken, url, nonce } = await appClient.createChannel({
  siweUri: "https://yourapp.com/login",
  domain: "yourapp.com",
});

// Пользователь сканирует QR код или переходит по ссылке в Warpcast
// После подтверждения — получаем статус
const status = await appClient.watchStatus({ channelToken });

if (status.data.state === "completed") {
  const { fid, displayName, pfpUrl, username } = status.data;
  // Пользователь аутентифицирован
  await createUserSession(fid, username);
}

React хуки для Farcaster

import { AuthKitProvider, useSignIn } from "@farcaster/auth-kit";

function LoginButton() {
  const { signIn, isLoading, isSuccess, profile } = useSignIn({
    onSuccess: (res) => {
      console.log(`Logged in as ${res.username} (FID: ${res.fid})`);
    },
  });
  
  return (
    <button onClick={signIn} disabled={isLoading}>
      {isLoading ? "Connecting..." : "Sign In with Farcaster"}
    </button>
  );
}

function App() {
  return (
    <AuthKitProvider
      config={{
        rpcUrl: "https://mainnet.optimism.io",
        domain: "yourapp.com",
        siweUri: "https://yourapp.com/login",
      }}
    >
      <LoginButton />
    </AuthKitProvider>
  );
}

Channels и community building

Farcaster Channels — это тематические ленты (аналог subreddits). Публикация в channel = охват целевой аудитории:

// Публикация в channel /gaming
await neynar.publishCast(
  signerUUID,
  "Just deployed our new blockchain game! Check it out 🎮",
  {
    channelId: "gaming",
    embeds: [{ url: "https://game.com" }],
  }
);

// Получение ленты channel
const channelFeed = await neynar.fetchFeedByChannelIds(["gaming", "web3"], {
  limit: 25,
  withRecasts: false,
});

Интеграция Farcaster — 1-2 недели для Sign In + базовые социальные features. Frames — отдельно, 1-2 недели для интерактивного frame с транзакциями. Farcaster более developer-friendly чем Lens для быстрого старта — rich documentation, Neynar API снижает сложность.