# Run the genesis

Endpoint: POST /v1/genesis

## Request fields (application/json):

  - `rootDomainSetup` (object, required)

  - `rootDomainSetup.id` (string, required)

  - `rootDomainSetup.alias` (string, required)

  - `rootDomainSetup.lock` (string, required)
    Enum: "Unlocked", "Locked"

  - `rootDomainSetup.governingStrategy` (string)
    Enum: "ConsiderDescendants", "CoerceDescendants"

  - `rootDomainSetup.permissions` (object, required)

  - `rootDomainSetup.permissions.readAccess` (object, required)

  - `rootDomainSetup.permissions.readAccess.domains` (array, required)

  - `rootDomainSetup.permissions.readAccess.users` (array, required)

  - `rootDomainSetup.permissions.readAccess.endpoints` (array, required)

  - `rootDomainSetup.permissions.readAccess.policies` (array, required)

  - `rootDomainSetup.permissions.readAccess.accounts` (array, required)

  - `rootDomainSetup.permissions.readAccess.transactions` (array, required)

  - `rootDomainSetup.permissions.readAccess.requests` (array, required)

  - `rootDomainSetup.permissions.readAccess.events` (array, required)

  - `rootDomainSetup.description` (string)

  - `rootDomainSetup.customProperties` (object, required)

  - `rootDomainSetup.users` (array, required)

  - `rootDomainSetup.users.id` (string, required)

  - `rootDomainSetup.users.alias` (string, required)

  - `rootDomainSetup.users.publicKey` (string, required)

  - `rootDomainSetup.users.roles` (array, required)

  - `rootDomainSetup.users.lock` (string, required)
    Enum: "Unlocked", "Locked"

  - `rootDomainSetup.users.description` (string)

  - `rootDomainSetup.users.customProperties` (object, required)

  - `rootDomainSetup.users.loginIds` (array)
    Domain-unique loginId-loginProviderId pairs. Must be specified for login and match pre-configured values.

  - `rootDomainSetup.users.loginIds.id` (string, required)
    User identifier used by the provider.

  - `rootDomainSetup.users.loginIds.providerId` (string, required)
    Login provider. For internal login, set to harmonize. For external identity providers, must match the provider name.

  - `rootDomainSetup.policies` (array, required)

  - `rootDomainSetup.policies.id` (string, required)

  - `rootDomainSetup.policies.alias` (string, required)

  - `rootDomainSetup.policies.rank` (integer, required)

  - `rootDomainSetup.policies.intentTypes` (array)
    Enum: "v0_NotarizeData", "v0_ExecuteExtension", "v0_CreateDomain", "v0_UpdateDomain", "v0_UpdateDomainPermissions", "v0_UnlockDomain", "v0_LockDomain", "v0_CreateUser", "v0_UpdateUser", "v0_UnlockUser", "v0_LockUser", "v0_CreatePolicy", "v0_UpdatePolicy", "v0_UnlockPolicy", "v0_LockPolicy", "v0_CreateVault", "v0_UpdateVault", "v0_UnlockVault", "v0_LockVault", "v0_UnlockTicker", "v0_LockTicker", "v0_CreateEndpoint", "v0_UpdateEndpoint", "v0_UnlockEndpoint", "v0_LockEndpoint", "v0_CreateAccount", "v0_MigrateSilo3AccountBatch", "v0_UpdateAccount", "v0_UnlockAccount", "v0_LockAccount", "v0_AddAccountLedgers", "v0_CreateTransactionOrder", "v0_ReleaseQuarantinedTransfers", "v0_CreateTicker", "v0_AttemptTransactionOrderCancellation", "v0_ValidateTickers", "v0_UpdateTicker", "v0_CreateTransferOrder", "v0_SignManifest", "v0_SetSystemProperty", "v0_CreateLedger", "v0_UpdateLedger", "v0_AddTrustedPublicKeysForMigration", "v0_CreateBackup", "v0_AcknowledgeBackup"

  - `rootDomainSetup.policies.scope` (string, required)
    Enum: "Self", "Descendants", "SelfAndDescendants"

  - `rootDomainSetup.policies.scriptingEngine` (string, required)
    Enum: "Javascript_v0"

  - `rootDomainSetup.policies.condition` (any)
    Example: {"left":{"left":{"expression":"true == true","type":"Expression"},"right":{"expression":"false == true","type":"Expression"},"type":"And"},"right":{"left":{"expression":"true == false","type":"Expression"},"right":{"expression":"false == false","type":"Expression"},"type":"Or"}}

  - `rootDomainSetup.policies.workflow` (array)
    Example: [{"left":{"left":{"role":"Admin","quorum":1,"type":"RoleQuorum"},"right":{"role":"Trader","quorum":2,"type":"RoleQuorum"},"type":"And"},"right":{"left":{"role":"Customer","quorum":3,"type":"RoleQuorum"},"right":{"role":"Manager","quorum":4,"type":"RoleQuorum"},"type":"Or"}}]

  - `rootDomainSetup.policies.lock` (string, required)
    Enum: "Unlocked", "Locked"

  - `rootDomainSetup.policies.description` (string)

  - `rootDomainSetup.policies.customProperties` (object, required)

  - `rootDomainSetup.descendants` (array)

  - `rootDomainSetup.descendants.id` (string, required)

  - `rootDomainSetup.descendants.alias` (string, required)

  - `rootDomainSetup.descendants.lock` (string, required)
    Enum: "Unlocked", "Locked"

  - `rootDomainSetup.descendants.governingStrategy` (string)
    Enum: "ConsiderDescendants", "CoerceDescendants"

  - `rootDomainSetup.descendants.permissions` (object, required)

  - `rootDomainSetup.descendants.description` (string)

  - `rootDomainSetup.descendants.customProperties` (object, required)

  - `rootDomainSetup.descendants.users` (array, required)

  - `rootDomainSetup.descendants.policies` (array, required)

  - `rootDomainSetup.descendants.descendants` (array, required)

  - `cryptoSetup` (object)

  - `cryptoSetup.apiSigning` (string, required)
    Enum: "Secp256r1", "Secp256k1", "Ed25519"

  - `cryptoSetup.collectionSigning` (string, required)
    Enum: "Secp256r1", "Secp256k1", "Ed25519"

  - `cryptoSetup.messageSigning` (string, required)
    Enum: "Secp256r1", "Secp256k1", "Ed25519"

  - `tickers` (array)

  - `tickers.id` (string, required)

  - `tickers.ledgerId` (string, required)

  - `tickers.kind` (string, required)
    Enum: "Native", "Contract", "Token"

  - `tickers.name` (string, required)

  - `tickers.decimals` (integer)

  - `tickers.symbol` (string)

  - `tickers.ledgerDetails` (any, required)

  - `tickers.lock` (string, required)
    Enum: "Unlocked", "Locked"

  - `tickers.description` (string)

  - `tickers.customProperties` (object, required)

  - `systemProperties` (array)

  - `ledgers` (array)

  - `ledgers.id` (string, required)

  - `ledgers.alias` (string, required)

  - `ledgers.parameters` (any, required)

  - `ledgers.description` (string)

  - `ledgers.customProperties` (object, required)

## Response 401 fields (application/json):

  - `reason` (string, required)

  - `message` (string)


## Response 200 fields
