FIP: Basenames #234
sanjayprabhu
announced in
FIP Stage 4: Finalized
Replies: 1 comment 4 replies
-
Will nodes refuse to start if a base RPC endpoint is not provided? |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Title: Basenames
Type: Implementation FIP
Authors: @sanjayprabhu, @aditiharini , @varunsrin
Abstract
Proposal to allow users to set their Basenames as their username on Farcaster
Problem
Currently users only have the option of using Farcaster names or L1 ENS names, with other chains like Base continuing to gain adoption, we should allow users to bring their identity from there and use it on Farcaster.
Specification
This proposal builds on FIP-4: ENS Usernames.
From the client perspective, there is only one change. The
UserNameType
enum will be extended to addBASENAME
Clients can register and set Basenames exactly the same way they currently do for ENS names (see doc). First submit a
UserNameProof
message with type set toUSERNAME_TYPE_BASENAME
. Thename
MUST end with.base.eth
, andowner
MUST be a custody address or a verified eth address for the fid. Finally, thename
must resolve to theowner
address.If the above conditions are satisfied, the message will be accepted (and merge event emitted). The username proof will be listed along with the fname or any existing ENS name on the
GetUserNameProofsByFid
RPC endpoint.At this point, the client can set the username of the fid to the basename by submitting a
UserDataAdd
message with typeUSER_DATA_TYPE_USERNAME
.Implementation
On Snapchain, the validating nodes will require a new config variable for querying Base RPCs. When they receive a UsernameProof with type set to
BASENAME
, the proposer will perform the same checks it does for ENS names, except using the Base RPC. Non-validating nodes do not require Base RPCs.Revocation
Snapchain does not currently automatically revoke ENS or Basenames if they expire or are updated to point to a different address. In the future, the validators will periodically validate that external name proofs are valid, and revoke outdated proofs and corresponding
UserDataAdd
for the username.Rationale
Adding a new type for Basename is the simplest way to support an additional namespace. We considered moving name validation to the fname server, which would let snapchain validators not require Base RPCs, but that's a bigger change. And something that can be done later. Since there are only a handful of validators, and full nodes don't require a new RPC, we opted to stick to the simpler design.
Release
This change requires a protocol upgrade. The nodes will be updated to support the new API the week of June 2nd. But Basename username proofs will not be accepted by nodes until the next protocol version goes live. The next protocol version is currently scheduled for June 16th.
Beta Was this translation helpful? Give feedback.
All reactions