Platform Users API
Platform user routes let operators provision users across tenants, resolve identity records, and attach immutable tenant-scoped wallet external IDs. They require a platform key and route scopes when scoped platform keys are enabled.Platform User Object
Wallet external IDs are write-once per user and tenant. Once assigned, the
value cannot be changed to a different external ID for that same user in that
tenant.
Create or Pre-Provision User
Creates a user record without sending email or requiring an interactive login. If the email already exists, Steward returns the existing user withisNew: false.
platform:user:write
Request Body:
walletExternalId is supplied, tenantId is required. Steward links the
user into that tenant and assigns the immutable wallet external ID in the same
operation.
Lookup User
Looks up a user by a supported identity.walletExternalId lookup requires
tenantId because external IDs are tenant-scoped.
platform:user:read
Query Parameters:
Lookup Aliases
These POST aliases accept JSON bodies and return the same shape asGET /platform/users/lookup.
Assign Wallet External ID
Assigns a write-once wallet external ID to an existing user in a tenant.platform:user:write
409 when the external ID belongs to another user in the same
tenant or when the target user already has a different external ID in that
tenant.
Resolve Wallet External ID
Resolves a tenant-scoped wallet external ID.platform:user:read
Connect or Create by Wallet External ID
Resolves a wallet external ID to an existing user. If no mapping exists, Steward can create a user or connect an existing email user to the tenant, then assign the external ID.platform:user:write
Search Tenant Users by External ID
Tenant-scoped user search supports direct wallet external ID filtering.platform:tenant-user:read
SDK
Third-Party Wallet Policy Violations
WhenrestrictToOneThirdPartyWallet is enabled after existing users already
linked multiple EVM/Solana third-party wallets, tenant admins can review the
violation report and remove one selected wallet from a tenant member.
The report is read-only. Use the remediation endpoint below when an owner/admin
has chosen the wallet identity to remove.
Remediate a Violation
user.unlinked_account webhook.
Bulk Remediate Violations
user.unlinked_account webhooks.
The response is intentionally per-item so operators can retry only failed
selections.
Wallet External ID Rules
tenantIdis required for wallet external ID lookup and assignment.- External IDs are trimmed, validated, and tenant-scoped.
- The same external ID cannot belong to multiple users in one tenant.
- A user cannot replace an existing wallet external ID with a different value in the same tenant.
- The reserved backing provider used to store wallet external IDs is hidden
from
linkedAccountsand exposed throughwalletExternalIds.