Launch
← Home

Register an address

Two proofs, and neither is enough on its own: that you hold the X account, and that you hold the Solana address. The registry binds them — and it binds nothing it has not seen proved.

STEP 1

Prove the X account is yours

Sign in with X. One call is made — GET /2/users/me — to read your user id and username, and the access token is used for that call and then discarded. Oncepay never reads, posts or stores anything else.

Sign in with X

scopes requested: users.read · tweet.read — no write scope, no direct messages. tweet.read is not used for anything; X requires it before it will name a user at all.

STEP 2

Prove the address is yours

Waiting on step 1. Your wallet signs a message naming your X id, your address and a single-use nonce this server issued — so a signature cannot be replayed against a different handle, a different address, or twice.

What a registration is, and what it is not

  • It publishes an address you proved is yours. That is the whole of it. It is not consent to receive anything and it obliges nobody.
  • It makes your handle resolvable. Anyone assigning a coin’s fees can type @you and reach this address — Assign fees reads this registry.
  • It is not itself a payment. Fees arrive on chain or they do not, and only a claim event counts as received.
  • It is append-only. Changing your address writes a new row; the old one stays, and the current mapping is a view that nothing can write to directly.
  • No access token is kept. Oncepay stores your X user id and username, the address, the exact message and its signature.

postgres at 127.0.0.1:5432/oncepay — answered at 2026-09-24T14:41:34.017Z

What happens after this

Assign fees takes @your_handle and resolves it here. It only ever resolves to an address somebody proved is theirs, and it shows the resolved address before anything is built — so what gets signed is what is on screen.

a handle that has not registered resolves to nothing, and the form says so and points back here — it is a minute of work, not a closed door