B3 Profiles API

免费社交档案 API

查看档案 API 参考

概览

B3 档案服务作为一个数据 API,用于解析 EVM 生态系统中的去中心化用户身份。它从多个来源和协议聚合档案数据,为开发者提供单一的 API 端点,以访问全面的用户信息和社交上下文。

主要特性

多源聚合

结合来自 Basement、ENS、Thirdweb Social 以及其他 Web3 身份提供者的数据

社交身份集成

从 ENS、Lens 协议和 Farcaster 网络获取社交档案

智能缓存

使用 Cloudflare KV 存储进行高效数据缓存,支持可配置的 TTL

用户偏好设置

允许用户通过加密签名设置首选档案来源

支持的数据源

  • ENS (Ethereum Name Service)
  • Lens 协议
  • Farcaster
  • B3.ID
  • Basement 档案

API 端点

查看 API 参考了解更多详情。

档案查找

检索任何钱包地址或用户名的聚合档案信息。
GET https://profiles.b3.fun/?address=0x1234567890abcdef1234567890abcdef12345678
GET https://profiles.b3.fun/?name=vitalik.eth
GET https://profiles.b3.fun/?name=sean.b3.fun

设置档案偏好

允许用户通过加密签名指定他们首选的档案来源。
POST /preference

自定义显示名称

使用户能够设置自定义显示名称,覆盖所有其他来源。
POST /display-name

响应格式

该服务返回一个统一的档案对象,结合了所有来源的数据:
{
  "name": "vitalik.eth",
  "address": "0x1234567890abcdef1234567890abcdef12345678",
  "avatar": "https://example.com/avatar.jpg",
  "bio": "Ethereum 共同创始人",
  "displayName": "Vitalik Buterin",
  "profiles": [
    {
      "type": "ensdata",
      "address": "0x123...",
      "name": "vitalik.eth",
      "avatar": "https://...",
      "bio": null,
      "displayName": null
    },
    {
      "type": "thirdweb-farcaster",
      "address": "0x123...",
      "name": "vitalik",
      "avatar": "https://...",
      "bio": "Ethereum 共同创始人",
      "displayName": "Vitalik Buterin"
    }
  ]
}

使用案例

增强的钱包认证

在钱包连接时提供关于用户的丰富上下文,展示他们在各平台的社交身份和 Web3 声誉。

社交游戏集成

在游戏中显示全面的玩家档案,包括 ENS 名称、社交句柄和跨平台身份。

DeFi 用户体验

通过展示来自 Lens、Farcaster 和 ENS 的交易者身份而不仅仅是钱包地址,增强交易界面。

社区管理

通过聚合来自多个 Web3 社交平台的用户身份,构建更好的社区工具。

示例用法

基本档案查找

// 通过地址获取档案
const response = await fetch('https://profiles.b3.fun/?address=0x123...');
const profile = await response.json();

console.log(profile.displayName); // "Vitalik Buterin"
console.log(profile.profiles.length); // 找到的来源数量

ENS 名称解析

// 通过 ENS 名称获取档案
const response = await fetch('https://profiles.b3.fun/?name=vitalik.eth');
const profile = await response.json();

console.log(profile.address); // 解析的钱包地址
console.log(profile.avatar); // ENS 头像 URL

设置用户偏好

// 通过签名设置首选档案来源
const message = `SetProfilePreference:${address}:thirdweb-farcaster:${timestamp}`;
const signature = await wallet.signMessage(message);

await fetch('https://profiles.b3.fun/preference', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    key: address,
    preferredType: 'thirdweb-farcaster',
    signature,
    signer: address,
    timestamp
  })
});

性能与缓存

  • 缓存持续时间:档案数据 1 小时
  • 最新数据:使用 ?fresh=true 绕过缓存
  • 全球 CDN:由 Cloudflare 边缘网络提供支持
  • KV 存储:高效的键值存储,用于偏好设置

速率限制

该服务继承了 Cloudflare 内置的 DDoS 保护和速率限制。对于高容量应用,考虑实现客户端缓存或联系 B3 团队获取企业访问权限。

构建链上变得简单

查看 API 参考了解更多详情。