- Docs
- Api%2Freference%2Fwallets%2FRegisterWallet
Sign up
Create a member account with an email address and password inside an existing organization. `organization_id` is required on this route. They are signed in straight away — the response carries the wallet and a session — and a confirmation email goes out at the same time. Until they confirm, `activated` on their wallet stays `false`; resend the code with `POST /auth/verification-code` if the first one goes astray. The email address has to be free within that organization. The same address may belong to different organizations, but cannot identify two accounts in the same one. For a passkey instead of a password, use `/wallets/connect/passkey/register/*`. For a crypto wallet they already own, use `/wallets/connect/eoa`. To create a standalone account that can start an organization, use `POST /organizations/wallets`. No sign-in needed — this is the sign-up.
Request Body
application/json
Who is signing up and the organization they are joining.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://api.dual.network/wallets" \ -H "Content-Type: application/json" \ -d '{ "organization_id": "665f1c2d4b1a2c3d4e5f6aa0", "email": "alex@example.com", "password": "<new password>", "nickname": "alexf", "language": "en" }'{
"wallet": {
"id": "665f1c2d4b1a2c3d4e5f6a01",
"fqdn": "dual.network",
"email": "alex@example.com",
"nickname": "alexf",
"language": "en",
"activated": false,
"disabled": false,
"account": {
"address": "0x1234567890abcdef1234567890abcdef12345678",
"type": "SMART_WALLET",
"controller": {
"address": "0x9876543210fedcba9876543210fedcba98765432",
"type": "SECP256K1",
"custody": "self-custodial"
},
"smart_account": {
"chain_id": 42161,
"factory": "0x7777777777777777777777777777777777777777",
"implementation": "0x8888888888888888888888888888888888888888",
"index": 0,
"validator": "0x9999999999999999999999999999999999999999",
"validator_type": "ECDSA",
"version": "0.3.1"
}
},
"when_created": "2026-02-01T09:00:00Z",
"when_modified": "2026-02-01T09:00:00Z"
},
"access_token": "<access token>",
"refresh_token": "<refresh token>"
}{
"code": 3,
"message": "Key: 'limit' Error:Field validation for 'limit' failed on the 'lte' tag"
}{
"code": 13,
"message": "internal error"
}