Skip to main content
Every account trades in one of two ways: anonymous or public. A new account is anonymous. Visibility decides what the other side of a quote or a deal is shown about you. It changes nothing about how a swap is negotiated or settled.

What the other side sees

A public account needs a username. An account with no username is always anonymous.

Who sees it

Only the accounts you negotiate with:
  • a taker sees each maker on that maker’s quote;
  • a maker sees the taker once its quote has opened a thread;
  • both keep seeing each other through the deal.
The RFQ board never says who posted a request. There is no profile page and no search by username. Over the API, the other party is described on the thread, in counterpartyName, counterpartyStats and counterpartyPicture (GET /v1/threads/{id}, GET /v1/rfqs/{id}/threads). The name and the record are null for an anonymous account. The record is also null when it could not be read.

The track record

The record is counted from the swaps an account was in, as maker or as taker: Going public shows the record of all your swaps, including the ones made while you were anonymous. Exact definitions are on the Thread schema in the API reference.

What anonymous does not hide

Anonymous hides your name and your record. It is not a way to be untraceable to a counterparty:
  • Your account id. A thread and a swap carry makerId and takerId for their two parties, and each chat message its senderId. A counterparty that meets you twice can see it is the same account — a maker that quotes two of your requests, for example. Going anonymous later does not change the id.
  • A username you keep. An anonymous account’s username stays taken, so anyone who tries to take it learns that it exists. To free it, clear it ("handle": null).
  • Your addresses. The other side of a swap sees your settlement addresses, and the swap’s transactions are public on each chain.
  • Your picture. A picture you chose is shown on every deal, anonymous or not.

Username rules

  • 3 to 24 characters: the letters a to z, digits and _.
  • Stored in lowercase. A leading @ is dropped.
  • Unique across accounts. A few names are reserved.
  • A username can be set ten times an hour per account, and an attempt refused because the name is taken counts too. After that the answer is 429. Clearing it and switching visibility are not counted.

Change it

In the app: Account › Profile › How you trade. Over the API, with a key that holds the taker or maker scope (HL and HK as in the quickstart):
Send either field or both: A username another account holds is refused with 409. GET /v1/me returns the current handle and handlePublic. The same change is the set_profile tool of both MCP servers, and setProfile() / set_profile() in the SDK. A change applies to every thread you are in, open and past: the other side reads your name as it is now, not as it was when the deal was made.
The picture is chosen in the app only (Account › Profile). There is no /v1 endpoint for it.