# 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: same as `rootDomainSetup.lock` (2 values)

  - `rootDomainSetup.users.description` (string)

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

  - `rootDomainSetup.users.loginIds` (array)
    Domain-unique loginId-loginProviderId pairs. If not specified, a default internal login will be created.

  - `rootDomainSetup.users.loginIds.id` (string, required)
    User name. For internal login, set to the user alias. For external identity providers, must match the external provider user name.

  - `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"

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

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

  - `rootDomainSetup.policies.condition` (any) — one of (discriminator: type):
    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"}}
    - And:
      - `left` (any, required) — one of (discriminator: type):
        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"}}
        - Expression:
          - `expression` (string, required)
          - `type` (string, required)
            Enum: "Expression"
        - Or:
          - `left` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `right` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `type` (string, required)
            Enum: "Or"
      - `right` (any, required) — one of (discriminator: type):
        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"}}
        - Expression:
          - `expression` (string, required)
          - `type` (string, required)
            Enum: same as `type` in "Expression" (1 values)
        - Or:
          - `left` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `right` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `type` (string, required)
            Enum: same as `type` in "Or" (1 values)
      - `type` (string, required)
        Enum: "And"
    - Expression:
      - `expression` (string, required)
      - `type` (string, required)
        Enum: same as `type` in "Expression" (1 values)
    - Or:
      - `left` (any, required) — one of (discriminator: type):
        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"}}
        - And:
          - `left` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `right` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `type` (string, required)
            Enum: same as `type` in "And" (1 values)
        - Expression:
          - `expression` (string, required)
          - `type` (string, required)
            Enum: same as `type` in "Expression" (1 values)
      - `right` (any, required) — one of (discriminator: type):
        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"}}
        - And:
          - `left` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `right` (any, required)
            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"}}
            - `expression` (string, required)
            - `type` (string, required)
              Enum: same as `type` in "Expression" (1 values)
          - `type` (string, required)
            Enum: same as `type` in "And" (1 values)
        - Expression:
          - `expression` (string, required)
          - `type` (string, required)
            Enum: same as `type` in "Expression" (1 values)
      - `type` (string, required)
        Enum: same as `type` in "Or" (1 values)

  - `rootDomainSetup.policies.workflow` (array) — one of (discriminator: type):
    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"}}]
    - And:
      - `left` (any, required) — one of (discriminator: type):
        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"}}
        - Or:
          - `left` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: "RoleQuorum"
          - `right` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: same as `type` (1 values)
          - `type` (string, required)
            Enum: same as `type` in "Or" (1 values)
        - RoleQuorum:
          - `role` (string, required)
          - `quorum` (integer, required)
          - `type` (string, required)
            Enum: same as `type` (1 values)
      - `right` (any, required) — one of (discriminator: type):
        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"}}
        - Or:
          - `left` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: same as `type` (1 values)
          - `right` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: same as `type` (1 values)
          - `type` (string, required)
            Enum: same as `type` in "Or" (1 values)
        - RoleQuorum:
          - `role` (string, required)
          - `quorum` (integer, required)
          - `type` (string, required)
            Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: same as `type` in "And" (1 values)
    - Or:
      - `left` (any, required) — one of (discriminator: type):
        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"}}
        - And:
          - `left` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: same as `type` (1 values)
          - `right` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: same as `type` (1 values)
          - `type` (string, required)
            Enum: same as `type` in "And" (1 values)
        - RoleQuorum:
          - `role` (string, required)
          - `quorum` (integer, required)
          - `type` (string, required)
            Enum: same as `type` (1 values)
      - `right` (any, required) — one of (discriminator: type):
        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"}}
        - And:
          - `left` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: same as `type` (1 values)
          - `right` (any, required)
            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"}}
            - `role` (string, required)
            - `quorum` (integer, required)
            - `type` (string, required)
              Enum: same as `type` (1 values)
          - `type` (string, required)
            Enum: same as `type` in "And" (1 values)
        - RoleQuorum:
          - `role` (string, required)
          - `quorum` (integer, required)
          - `type` (string, required)
            Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: same as `type` in "Or" (1 values)
    - RoleQuorum:
      - `role` (string, required)
      - `quorum` (integer, required)
      - `type` (string, required)
        Enum: same as `type` (1 values)

  - `rootDomainSetup.policies.lock` (string, required)
    Enum: same as `rootDomainSetup.lock` (2 values)

  - `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: same as `rootDomainSetup.lock` (2 values)

  - `rootDomainSetup.descendants.governingStrategy` (string)
    Enum: same as `rootDomainSetup.governingStrategy` (2 values)

  - `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: same as `cryptoSetup.apiSigning` (3 values)

  - `cryptoSetup.messageSigning` (string, required)
    Enum: same as `cryptoSetup.apiSigning` (3 values)

  - `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) — one of (discriminator: type):
    - Algorand:
      - `properties` (any, required)
        - `type` (string, required)
          Enum: "Native"
      - `type` (string, required)
        Enum: "Algorand"
    - Bitcoin:
      - `properties` (any, required)
        - `type` (string, required)
          Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "Bitcoin"
    - Cardano:
      - `properties` (any, required)
        - `type` (string, required)
          Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "Cardano"
    - Ethereum:
      - `properties` (any, required) — one of (discriminator: type):
        - ERC1155:
          - `address` (string, required)
          - `tokenId` (string, required)
          - `type` (string, required)
            Enum: "ERC1155"
        - ERC20:
          - `address` (string, required)
          - `type` (string, required)
            Enum: "ERC20"
        - ERC721:
          - `address` (string, required)
          - `tokenId` (string, required)
            This field is a large integer and represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.
          - `type` (string, required)
            Enum: "ERC721"
        - Native:
          - `type` (string, required)
            Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "Ethereum"
    - Hedera:
      - `properties` (any, required) — one of (discriminator: type):
        - FungibleToken:
          - `id` (string, required)
            String consisting Hedera Token Id
          - `type` (string, required)
            Enum: "FungibleToken"
        - Native:
          - `type` (string, required)
            Enum: same as `type` (1 values)
        - NonFungibleToken:
          - `id` (string, required)
            String consisting Hedera Token Id
          - `serialNumber` (integer, required)
          - `type` (string, required)
            Enum: "NonFungibleToken"
      - `type` (string, required)
        Enum: "Hedera"
    - Solana:
      - `properties` (any, required)
        - `type` (string, required)
          Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "Solana"
    - Stellar:
      - `properties` (any, required)
        - `type` (string, required)
          Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "Stellar"
    - Substrate:
      - `properties` (any, required)
        - `type` (string, required)
          Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "Substrate"
    - Tezos:
      - `properties` (any, required)
        - `type` (string, required)
          Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "Tezos"
    - XRPL:
      - `properties` (any, required) — one of (discriminator: type):
        - FungibleToken:
          - `currencyCode` (string, required)
          - `issuer` (string, required)
          - `type` (string, required)
            Enum: same as `type` in "FungibleToken" (1 values)
        - Native:
          - `type` (string, required)
            Enum: same as `type` (1 values)
      - `type` (string, required)
        Enum: "XRPL"

  - `tickers.lock` (string, required)
    Enum: same as `rootDomainSetup.lock` (2 values)

  - `tickers.description` (string)

  - `tickers.customProperties` (object, required)

  - `systemProperties` (array)
    - `value` (object, required)
    - `value.publicKey` (any, required)
      - `value` (string, required)
      - `type` (string, required)
        Enum: "PublicKey"
    - `type` (string, required)
      Enum: "StateReviewAuthorityProperty"

## Response 401 fields (application/json):

  - `reason` (string, required)

  - `message` (string)


## Response 200 fields
