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 分