Skip to content

更改 Farcaster 用户名

用户可以更改其链下 ENS 名称或 Fname,而不会影响账户历史记录。此操作最多每 28 天可执行一次。

WARNING

  • 若违反使用政策,Fname 可能会被撤销。
  • 频繁更改 Fname 可能导致应用降低您的信誉评级。

前提条件

  • 在 OP Mainnet 上拥有该账户的 ETH 钱包(无需持有 ETH)。

更改用户名

要转移 Fname(例如 Hubble),请向 /transfers 发起 POST 请求,请求体如下:

yaml
{
  "name": "hubble", // 待转移的名称
  "from": 123,  // 转出方 FID
  "to": 321, // 转入方 FID
  "fid": 123, // 发起请求的 FID(必须与 from 匹配)
  "owner": "0x...", // 发起请求 FID 的托管地址
  "timestamp": 1641234567,  // 当前时间戳(秒)
  "signature": "0x..."  // 由 FID 托管地址签名的 EIP-712 签名
}

生成 EIP-712 签名的代码示例:

js
import { makeUserNameProofClaim, EIP712Signer } from '@farcaster/hub-nodejs';

const accountKey: EIP712Signer = undefined; // 托管地址的账户密钥(使用 hub-nodejs 中适用于 ethers 或 viem 的子类)

const claim = makeUserNameProofClaim({
  name: 'hubble',
  owner: '0x...',
  timestamp: Math.floor(Date.now() / 1000),
});
const signature = (
  await accountKey.signUserNameProofClaim(claim)
)._unsafeUnwrap();

通过 curl 的请求示例:

bash
curl -X POST https://fnames.farcaster.xyz/transfers \
  -H "Content-Type: application/json" \
  -d \
'{"name": "hubble", "owner": "0x...", "signature": "0x...", "from": 123, "to": 321, "timestamp": 1641234567, fid: 123}'

更多关于 Fname 注册表 API 的细节,请参阅此处