walletlink.social

social.walletlink由 walletlink.social 发布官方发布者v1.4.0更新于 Nov 2, 2026

Resolve wallet addresses to X and Farcaster accounts, and back again.

已验证Streamable HTTP可网页运行网页搜索与抓取金融

概览

AI 生成的概览

把以太坊钱包地址解析为关联的 X 与 Farcaster 账号,也能按账号反查钱包,数据来自按次计费的身份索引。

可以做什么
  • 把一个或多个钱包地址解析为 X 账号、Farcaster 账号、ENS 名称、Lens 资料和 GitHub 账号
  • 按 X 账号或 Farcaster 用户名反查其关联的钱包
  • 把地址列表提交为后台任务,并查询进度与结果
  • 在花费前评估列表:索引覆盖率、未见过的地址数量与计费区间
  • 查看各身份类型的索引覆盖率,以及剩余匹配额度和请求配额
适用场景
需要弄清钱包地址背后是谁,用于联系、空投或活动策划时适用;也可用于查找某个 X 或 Farcaster 账号名下关联的钱包。可先用免费的覆盖率与预估工具判断列表是否值得解析。
运行要求
远程 streamable HTTP 端点,无需安装。认证方式二选一:支持 MCP OAuth 的客户端走 OAuth 2.1 连接,或在 Authorization 请求头中携带从已登录账号创建的 Bearer API 密钥。列出工具无需凭据;计费查询会消耗匹配额度。
安装前请注意
查询按次计费:地址解析出 X 或 Farcaster 账号会消耗匹配额度,一次反查最多可花掉 100 个额度,建议先查余额。免费额度有限,付费套餐需要花钱。API 密钥是机密,通过 Authorization 请求头发送。提交的地址会发送给第三方服务,匹配结果可能错误或过时,应视为线索而非确认事实。

安装

在 SourceWeft 中

  1. 打开 控制台中的 walletlink.social,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/social.walletlink%2Fwallet-identity/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "walletlink-social": {
      "type": "http",
      "url": "https://walletlink.social/api/mcp"
    }
  }
}

README

[walletlink.social]

walletlink.social

Turn wallet addresses into the people behind them, and reach them where they already are

[Next.js 16] [TypeScript] [Neon Postgres] [Farcaster] [Vercel]

App · MCP server · llms.txt · Docs · API · @walletlinkETH


Connect

A remote MCP server with eight tools, drawing the same credits as the REST API. There is nothing to install:

https://walletlink.social/api/mcp
  • Claude, or any client that supports MCP OAuth: add the URL as a connector. The first tool call asks you to sign in, and there is no key to copy.
  • Claude Code: claude mcp add --transport http walletlink https://walletlink.social/api/mcp --header "Authorization: Bearer wts_live_YOUR_KEY"
  • Cursor: create a key from the account menu at walletlink.social and choose Add to Cursor.
  • Any other client: the same URL, with a key in an Authorization: Bearer header. Keys are free for any signed-in account.

Listing the tools needs no credential. The MCP page has the config block and what a connection can reach, and the docs have a config for each client.


How it works

Wallet list in (CSV · contract address · paste)  ├─ Resolve against an index of 4.8M+ wallet identities  ├─ Farcaster: complete protocol coverage, refreshed daily  ├─ X handles: attested first, labeled always, never inferred  ├─ Rank by holdings × follower reach  └─ Export CSV, or an X list ready to import

It also runs backwards: give it an X handle or a Farcaster username and it returns the wallets attached to that person.


Coverage, stated honestly

The number most tools quote is the one that flatters them. Two numbers matter here, and conflating them will make you plan a campaign you cannot run.

QuestionAnswer
Wallets with an X or Farcaster account16-46% by chain
What tools that match wallets to social accounts typically publishlow single digits

The chain decides this more than the collection does: Base sits at the top of that range because Base is where Farcaster lives, Ethereum near the bottom. The measured per-chain table lives in the coverage docs. Use your chain’s figure, not an average.

Having an account and reaching it are different claims. Of 482,968 X handles resolved, 70.1% are live, 19.7% suspended and 10.2% are names nobody holds. Matches carry that answer wherever the handle has been resolved.

NetworkNature of the match
FarcasterComplete. Every account and its addresses, refreshed daily. Matching is deterministic, so a miss is real information rather than missing information.
XAttested first, labeled always. Over 99.7% of X matches are links the wallet owner published themselves: a Farcaster verification, an onchain ENS record, an attested-social sign-in, or a manually verified record. Anything else is correlated and labeled so in its evidence class, so a match always tells you how it was established. Nothing is inferred from display names, bios or timing.

Coverage would be higher if we guessed. Contacting the wrong person is worse than contacting fewer people.


Features

Three ways inCSV upload, contract import (holders fetched for you), or pasted addresses
Eight chainsEthereum, Base, Robinhood Chain, Arbitrum, Polygon, Optimism, BNB Chain, HyperEVM, NFTs and tokens on all eight
Priority scoringholdings × log₁₀(Farcaster + X followers + 1), weighting reach and stake together
Agent detection13,622+ known AI agent wallets, flagged only where the owner attested nothing that says otherwise
Reverse lookupX handle or Farcaster username back to wallets
Public APIIncluded with every pack, drawing the same credits; self-serve keys
MCP serverEight tools at /api/mcp, OAuth or the same key, same balance; listed in the MCP registry
Onchain rail$1 Agent pack for USDC on Base at /api/x402/buy, no account; key recovery by wallet signature
ExportsFull CSV sorted by priority, or a plain handle list for an X list import

Pricing

Credit packs, bought once and metered in matches. A match is a wallet resolved to an X handle or a Farcaster account; a wallet that resolves to nothing costs nothing. Credits last 12 months from purchase. There are no subscriptions.

PackPriceMatchesFits
Free$0100 per rolling 30 daysTrying it on a real list
Trial$29250One list, once
Campaign$991,500A launch or an airdrop
Scale$2996,000Several lists, or one large one
Index$89925,000Agencies and repeat work

Every pack includes the same features; packs differ only in how many matches they hold. lib/packs.ts is the source of truth: the pricing modal, the checkout, the comparison pages and the schema.org offers all read from it.


API, MCP and the agent rail

Three doors into the same index, drawing the same match balance. The full reference, including credit costs, rate limits and error codes, is at docs.walletlink.social; the README does not restate it.

REST. Keys are self-serve from the account menu for any signed-in account, including one on the free allowance. A call draws credits only for wallets that resolve, so the key and the balance are separate questions.

bash
curl https://walletlink.social/api/v1/wallet/0xd8da...96045 \  -H "Authorization: Bearer wts_live_YOUR_KEY"

MCP. https://walletlink.social/api/mcp, eight tools over the same endpoints, with a bearer key or an OAuth 2.1 connection. Listed in the official MCP registry as social.walletlink/wallet-identity. The design rationale (why the access token is an api_keys row, why the server bills nothing of its own) lives in the header of app/api/mcp/route.ts.

The skill file. https://walletlink.social/skill.md, for an agent that installs a capability from a URL rather than a config block: the tools, what each costs, how to authenticate, how to read a result. Generated from the same constants and canonical sentences as everything else, so it cannot quote a price the product does not charge.

Onchain rail. POST /api/x402/buy sells a $1 Agent pack for USDC on Base with no account, no card and no email: pay, and the response carries a fresh API key. /api/x402/recover reissues a key to the wallet that paid, on a signed challenge.

Apify. Wallet to Twitter & Farcaster Lookup wraps the REST API as a marketplace Actor, for people who buy tooling by browsing rather than by reading docs. Free to run, and it takes the caller’s own key, so it spends the same free allowance and the same packs. Source in integrations/apify-actor/.


Architecture

CSV / contract / paste        ↓  lib/csv-parser.ts ──── detects wallet + holdings columns        ↓  /api/jobs ──────────── creates a job; lib/job-processor.ts runs it in chunks, the client polls        ↓  ┌─ social_graph ─────── fresh rows and persisted negatives short-circuit  ├─ wallet_cache ─────── 7-day TTL, negatives included  └─ resolution pipeline  identity sources, then optional ENS text records        ↓  social_graph ─────────── positives and negatives persisted        ↓  ResultsTable ─────────── virtualized, sortable, exportable

Negatives are persisted deliberately. “Checked, nothing there” is an answer worth keeping, and it is what stops the pipeline paying repeatedly to rediscover the same absence.


Tech stack

LayerTech
FrameworkNext.js 16, App Router
DatabaseNeon PostgreSQL, Drizzle ORM
StylingTailwind CSS v4
UIRadix primitives
Background jobsVercel Cron (/api/jobs/worker)
PaymentsStripe
DocsMintlify at docs.walletlink.social
HostingVercel

Project structure

app/  api/v1/           public API (wallet, batch, reverse, stats, usage)  api/developer/    API key management  api/cron/         scheduled ingest and refresh  vs/               competitor comparison pagescomponents/         UI, including ApiKeysModal and DocsChatlib/                resolution pipeline, chains, plans, rate limitingdocs-site/          published Mintlify docs  ← customer-facingdocs/               internal runbooks        ← never published

docs-site/ and docs/ are deliberately separate. docs/ holds operational runbooks and is not the Mintlify content root.


Public on purpose

This repo is public deliberately. The product’s core claim is that every match carries the class of evidence behind it and none of it is inferred, and public code is what makes that claim checkable. What stays out is equally deliberate: docs/ is internal and never published, and operational secrets live in a private ops repo.


Getting started

bash
npm installcp .env.example .env.local   # fill in what you neednpm run dev

Open localhost:3000. The app runs without a database; caching, history and the API need one. .env.example documents every variable: DATABASE_URL enables anything stateful, the Stripe keys enable payments, and identity-source credentials are listed beside their entries.


Commands

bash
npm run dev            # dev servernpm run build          # production build (typechecks as part of the build)npm run typecheck      # tsc --noEmit, the faster standalone checknpm run preflight      # every CI gate that needs no database, no Chrome and no secretsnpm run lint           # ESLintnpm run format         # Prettier (CI enforces formatting)
npm run db:push        # refuses; schema changes are hand-written SQL, see CLAUDE.mdnpm run db:studio      # Drizzle Studio

npm run check:<guard> runs one gate alone (palette, design, contrast, og, invariants, figures, height); package.json names them all.


Contributing

Changes go through a branch and a PR, never straight to main. The PR template asks for an explicit docs decision and CI enforces it: a PR touching the public API surface fails unless docs-site/ moves with it, or carries the no-docs-needed label.

See CLAUDE.md for conventions, including house style (sentence case headings, curly apostrophes, “onchain” as one word).


Security

Report a vulnerability privately, never in a public issue. SECURITY.md has the channels, the scope, the testing rules and what to expect; the preferred channel is a private report on GitHub. The same contacts are published for machines at /.well-known/security.txt.


Changelog

See CHANGELOG.md.


License

AGPL-3.0. See LICENSE.

Author

made with 🌠 by @starl3xx

来源:README.md,提交 2b9e6ab

工具

8

版本历史

3
  1. v1.4.0最新Sep 21, 2026
  2. v1.3.0Sep 17, 2026
  3. v1.2.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分