
casty
Démarrage rapide
Section intitulée « Démarrage rapide »git clone https://github.com/castyfun/casty.git && cd casty./scripts/0-provision.sh # (0) compute: a server with a 2 TB volume, or --host user@ip for your own./scripts/1-node.sh # (1) a Snapchain read node: installed, synced, with a tunnel to it./scripts/2-client.sh # (2) a client: casty, an app key for your account, your feed from your nodeTrois commandes : (0) le calcul, (1) un nœud de lecture, (2) un client. ./scripts/deploy.sh lance les trois d’un coup, et Tout le parcours explique chaque étape et le protocole derrière.
casty installe un nœud de lecture Snapchain, une copie complète de Farcaster, sur un hôte que vous contrôlez, et vous donne un client qui ne parle à rien d’autre : une commande de terminal et une page pour le navigateur et le téléphone. Votre fil, vos mentions et vos fils de discussion sont lus depuis votre nœud ; vos casts, réponses, likes, recasts et follows partent à travers lui. Aucune API hébergée ne se trouve entre vous et le réseau, donc il n’y a ni clé d’API à obtenir ni limite de débit à respecter.
Commencer avec une seule commande
Section intitulée « Commencer avec une seule commande »Un nouveau nœud à vous
Section intitulée « Un nouveau nœud à vous »Un serveur avec un volume de 2 To et un pare-feu chez Hetzner ou AWS, Snapchain dessus, le client sur votre machine, et la page sur l’hôte derrière HTTPS. Le nœud se synchronise pendant quelques heures.
git clone https://github.com/castyfun/casty.git && cd casty./scripts/deploy.sh --fid <your fid> --domain node.example.orgVous avez déjà une machine Linux avec 2 To libres ? Ajoutez -- --host user@ip.
casty sur un nœud qui tourne déjà
Section intitulée « casty sur un nœud qui tourne déjà »Pas de serveur : casty se connecte à n’importe quel nœud Snapchain, l’un des vôtres sur une autre machine ou un nœud public, et le retient. Prêt en une minute.
git clone https://github.com/castyfun/casty.git && cd casty./scripts/2-client.sh --node https://snap.farcaster.xyz:3381 --fid <your fid>Puis ./bin/casty web et, dans « you », « add a key with your wallet ».
Laisser un agent le faire
Section intitulée « Laisser un agent le faire »Collez un seul prompt dans Claude Code, Codex, Cursor ou un autre agent de programmation. Il lit llms.txt, vous demande laquelle des deux voies vous voulez, et ne vous demande jamais votre phrase de récupération.
Set up casty for me: https://github.com/castyfun/casty.Read https://castyfun.github.io/casty/llms-full.txt first....Comment l’ensemble s’articule
Section intitulée « Comment l’ensemble s’articule »Les lectures viennent de votre nœud, donc le fil est aussi rapide que la machine sur laquelle il tourne. Les écritures sont signées sur votre machine avec une clé d’application que seul casty détient, et votre nœud les relaie aux validateurs. La clé est ajoutée avec un seul message signé, approuvé par votre portefeuille dans le navigateur : pas de transaction, pas de gas, pas de RPC Ethereum.
Ce que vous obtenez
Section intitulée « Ce que vous obtenez »- Trois scripts et une commande.
0-provision.shloue le serveur ou vérifie le vôtre,1-node.shinstalle Snapchain et attend sa synchronisation,2-client.shinstallecastyet ajoute une clé.deploy.shles exécute dans l’ordre et reprend là où une exécution s’est arrêtée. - Un client en terminal.
casty feed,casty cast,casty like 2: du texte brut pour vous,--jsonpour les scripts, des numéros qui passent d’une commande à la suivante. - Une page pour le navigateur et le téléphone. Le fil, les fils de discussion, les mentions, les profils et une zone de rédaction, en clair et en sombre, avec des raccourcis clavier sur un ordinateur portable et l’ajout à l’écran d’accueil sur un téléphone.
- Votre nœud, de partout.
casty servemet la page sur l’hôte du nœud derrière HTTPS, avec un index du fil qui répond immédiatement et des notifications push pour les mentions et les réponses. - Des clés que vous voyez. Chaque clé d’application de votre compte, ce qu’elle peut signer, quand elle expire, et la révocation depuis le terminal ou avec la clé elle-même.
- Testé sans nœud. Un nœud Snapchain factice vérifie chaque signature, si bien que le client, les scripts et la page passent leurs vérifications hors ligne en CI.
Dans le terminal
Section intitulée « Dans le terminal »$ casty feed --limit 31 @casty-test · 0s · via casty Reading the feed from my own node. No API key, no rate limit.
2 @user-2000000002 · 22d · via app-alpha @casty-test thanks for the pointer, it worked. https://example.com/2000000002/3
3 @user-2000000011 · 22d · via app-beta Reading the Snapchain docs on a train. A good way to spend an hour.
$ casty like 2liked 2000000002:0x973d398ad75e1f25fa780085f3c22d30b01d2504Dans le navigateur et sur le téléphone
Section intitulée « Dans le navigateur et sur le téléphone »



Ce qu’il vous faut
Section intitulée « Ce qu’il vous faut »- Un compte de test Farcaster : un fid avec au moins une storage unit, et un portefeuille qui détient l’adresse à laquelle il est enregistré, ou la phrase de récupération de cette adresse. casty utilise la phrase une seule fois, pour signer la demande de clé, et ne l’écrit jamais sur le disque.
- Un hôte. Soit des identifiants pour Hetzner Cloud (
HCLOUD_TOKENet la CLIhcloud) ou AWS (la CLI AWS v2 et un profil ou une clé d’accès), soit un accès SSH à une machine que vous avez déjà et qui peut faire tourner Docker. Voir Un nœud à la maison pour ce dernier cas. - Une paire de clés SSH, par défaut
~/.ssh/id_ed25519et~/.ssh/id_ed25519.pub. - Sur votre machine :
ssh,curletjq. Node.js 22.12 ou plus récent uniquement pour compiler le client vous-même (2-client.sh --from-source). macOS et Linux fonctionnent ; sous Windows, lancez les scripts dans WSL2.
L’hôte du nœud a besoin de ce que demande Snapchain : 16 Go de RAM, 4 vCPU, 2 To de disque libre et une IP publique (getting started). Sur un hôte loué, l’étape 0 choisit le serveur et le volume, et l’étape 1 vérifie l’hôte avant d’installer quoi que ce soit.
Combien de temps cela prend
Section intitulée « Combien de temps cela prend »L’étape 1 est la plus longue : à son premier démarrage, le nœud télécharge un instantané de plusieurs
centaines de Go, puis rattrape les blocs produits depuis cet instantané. Comptez des heures.
1-node.sh attend et affiche le retard du nœud après chaque vérification. Ctrl-C ne met fin qu’à
l’attente ; le nœud continue de se synchroniser, et ./scripts/1-node.sh status --wait reprend
l’attente.
Ce que cela coûte
Section intitulée « Ce que cela coûte »casty ne connaît pas les prix de votre fournisseur. Une vraie exécution de 0-provision.sh liste le
serveur, le volume et le pare-feu qu’elle s’apprête à créer, indique qu’ils sont facturés jusqu’à ce
que vous les supprimiez, et ne continue qu’une fois que vous avez retapé le nom du serveur.
./scripts/0-provision.sh --destroy supprime les trois.
Essayer sans nœud
Section intitulée « Essayer sans nœud »Le dépôt fournit un nœud Snapchain factice qui sert la même API HTTP à partir de fixtures et vérifie les signatures de chaque message qui lui est soumis. Avec lui, tout le client fonctionne hors ligne :
pnpm install --frozen-lockfilepnpm demopnpm demo démarre le nœud factice sur un port libre, ajoute une clé d’application avec la phrase de
test BIP-39 test test test test test test test test test test test junk, lit le fil avec et sans les
casts d’une application, publie un cast, en like un, et supprime sa configuration temporaire à la fin.
Les fids des fixtures commencent à 2000000001 et n’appartiennent à personne.
pnpm demo:web fait la même préparation, puis sert casty web, la page pour le navigateur et
le téléphone, sur un port libre jusqu’à ce que vous appuyiez sur Ctrl-C.
Une seule commande
Section intitulée « Une seule commande »Usage: deploy.sh [--domain <name> | --tailscale] [--read-only] [--fid <fid>] [--from-source] [--env <file>] [--yes] [--dry-run] [-- <0-provision.sh options>]
Runs, in order: 0-provision.sh (unless --env's file already describes a host; with --domain, again on that host to open 80 and 443), 1-node.sh (the node, the wait for its sync, the tunnel), 2-client.sh (the client, an app key, the feed) and, with a front named, 1-node.sh serve. Every step is safe to run again: the same command picks up where a run stopped.
--domain <name> serve the page on the host as https://<name> (Caddy; opens 80 and 443) --tailscale serve it as the host's name on your tailnet instead --read-only a page that reads only: no app key or passphrase leaves this machine --fid <fid> no seed phrase: 2-client.sh --fid; add the key in ./bin/casty web with your wallet, then run the same command again for the page on the host --from-source build the client here with Node and pnpm instead of downloading it --env <file> node.env to write or read (default: node.env) --yes do not ask before creating anything --dry-run print what provisioning and the node would run; the client is skipped -- <options> passed to 0-provision.sh, e.g. -- --provider aws --region eu-west-1
Exit codes: 0 ok, 2 bad arguments, otherwise the code of the step that stopped.Pour aller plus loin
Section intitulée « Pour aller plus loin »Commencez par 0. Provisionner un hôte. Si vous voulez savoir ce que les scripts mettent en place avant de les exécuter, lisez Nœuds de lecture et validateurs et Adresse de custody et clés d’application. Sécurité liste chaque secret concerné et comment révoquer chacun d’eux.