Create a standalone organization account

Create the standalone account that will start and own an organization. This account begins in the network scope; after signing in, call `POST /organizations` to create the organization. Do not send `organization_id` on this route. If it is present, it is ignored. To create a member inside an existing organization, use `POST /wallets` instead. The response starts a session immediately and a confirmation email is sent. Until the email is confirmed, `activated` remains `false`. No sign-in needed — the person creating the account does not have one yet.

POST
/organizations/wallets

Request Body

application/json

Details for the standalone account. Do not include organization_id.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://api.dual.network/organizations/wallets" \  -H "Content-Type: application/json" \  -d '{    "email": "owner@example.com",    "password": "<new password>",    "nickname": "owner",    "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"
}