Skip to documentation
Resources/Docs
AccountsSinjoh v2

Accounts & profiles

Wallet and social sign-in, embedded wallets, public profiles and linked-account controls.

2 min read·
On this page

Sign in with a wallet or a linked provider

Sinjoh accounts support Wallet, X, GitHub and Google sign-in. Google includes Google accounts using Gmail. Social users without a wallet receive an embedded EVM wallet through Privy. Apple sign-in is deferred and is not presented as an enabled method.

Connecting an existing wallet and creating an embedded wallet are different paths. Linking another sign-in method does not transfer funds or combine all wallet balances. The selected Portfolio wallet determines which address is read and, where transactions are available, which wallet signs.

Public profile fields

FieldVisibility / behavior
Display namePublic profile identity.
UsernameUnique normalized handle and /u/{username} public profile.
Profile picturePublic image; editable through the account/avatar controls.
BioPublic profile description.
Linked X / GitHub handlesPublic icons link to verified linked profiles in a new tab.
Email / provider subjectsPrivate; excluded from public profile responses.

Linking and unlinking

Linked methods are shown in Sinjoh green. Selecting a linked button presents its unlink option; an unlinked button starts the provider’s linking flow. Privy’s existing identity and embedded-wallet rules still apply. Unlinking X/GitHub removes the corresponding public profile link on synchronization.

The account’s avatar opens its view/edit controls. Edit opens profile management; Sign out sits beneath it. Wallet export, when available for an embedded wallet, uses Privy’s isolated private interface. The application does not ask users to put recovery phrases into profile fields.

How profile writes are authorized

The server verifies the authenticated Privy subject and signed identity data before synchronizing or changing that user’s record. Public reads explicitly select public fields. Avatar writes use owner-specific storage paths and supported images are re-encoded. Browser database writes are denied; server-side database credentials are not returned to the browser.