---
title: "Run the genesis"
method: POST
path: "/v1/genesis"
tags: ["Genesis"]
---

# Run the genesis

`POST /v1/genesis`

## Request body

- CoreGenesisRequest
  - `rootDomainSetup` CoreRootDomainSetup, required
    - `id` string, uuid, required
    - `alias` string, required
    - `lock` 'Unlocked' | 'Locked', required
    - `governingStrategy` 'ConsiderDescendants' | 'CoerceDescendants'
    - `permissions` CorePermissions, required
      - `readAccess` CoreReadAccess, required
        - `domains` string[], required
        - `users` string[], required
        - `endpoints` string[], required
        - `policies` string[], required
        - `accounts` string[], required
        - `transactions` string[], required
        - `requests` string[], required
        - `events` string[], required
    - `description` string
    - `customProperties` CoreStringsMap, required
    - `users` CoreCreateDomainGenesisUser[], required
      - `id` string, uuid, required
      - `alias` string, required
      - `publicKey` string, base64, required
      - `roles` string[], required
      - `lock` 'Unlocked' | 'Locked', required
      - `description` string
      - `customProperties` CoreStringsMap, required
      - `loginIds` CoreLoginId[] — Domain-unique `loginId`-`loginProviderId` pairs. Must be specified for login and match pre-configured values.
        - `id` string, required — User identifier used by the provider.
        - `providerId` string, required — Login provider. For internal login, set to `harmonize`. For external identity providers, must match the provider name.
    - `policies` CoreCreateDomainGenesisPolicy[], required
      - `id` string, uuid, required
      - `alias` string, required
      - `rank` integer, required
      - `intentTypes` CoreIntentType[]
      - `scope` 'Self' | 'Descendants' | 'SelfAndDescendants', required
      - `scriptingEngine` 'Javascript_v0', required
      - `condition` union
        - CorePolicyConditionAnd
          - `left` CorePolicyCondition, required — recursive
          - `right` CorePolicyCondition, required — recursive
          - `type` 'And', required
        - CorePolicyConditionExpression
          - `expression` string, required
          - `type` 'Expression', required
        - CorePolicyConditionOr
          - `left` CorePolicyCondition, required — recursive
          - `right` CorePolicyCondition, required — recursive
          - `type` 'Or', required
      - `workflow` CoreWorkflowCondition[]
        - union
          - CoreWorkflowConditionAnd
            - `left` CoreWorkflowCondition, required — recursive
            - `right` CoreWorkflowCondition, required — recursive
            - `type` 'And', required
          - CoreWorkflowConditionOr
            - `left` CoreWorkflowCondition, required — recursive
            - `right` CoreWorkflowCondition, required — recursive
            - `type` 'Or', required
          - CoreWorkflowConditionRoleQuorum
            - `role` string, required
            - `quorum` integer, required
            - `type` 'RoleQuorum', required
      - `lock` 'Unlocked' | 'Locked', required
      - `description` string
      - `customProperties` CoreStringsMap, required
      - `intentOrigin` 'UserSigned' | 'SystemSigned'
    - `descendants` CoreCreateDomainsPayload[]
      - `id` string, uuid, required
      - `alias` string, required
      - `lock` 'Unlocked' | 'Locked', required
      - `governingStrategy` 'ConsiderDescendants' | 'CoerceDescendants'
      - `permissions` CorePermissions, required
        - `readAccess` CoreReadAccess, required
          - `domains` string[], required
          - `users` string[], required
          - `endpoints` string[], required
          - `policies` string[], required
          - `accounts` string[], required
          - `transactions` string[], required
          - `requests` string[], required
          - `events` string[], required
      - `description` string
      - `customProperties` CoreStringsMap, required
      - `users` CoreCreateDomainGenesisUser[], required
        - `id` string, uuid, required
        - `alias` string, required
        - `publicKey` string, base64, required
        - `roles` string[], required
        - `lock` 'Unlocked' | 'Locked', required
        - `description` string
        - `customProperties` CoreStringsMap, required
        - `loginIds` CoreLoginId[] — Domain-unique `loginId`-`loginProviderId` pairs. Must be specified for login and match pre-configured values.
          - `id` string, required — User identifier used by the provider.
          - `providerId` string, required — Login provider. For internal login, set to `harmonize`. For external identity providers, must match the provider name.
      - `policies` CoreCreateDomainGenesisPolicy[], required
        - `id` string, uuid, required
        - `alias` string, required
        - `rank` integer, required
        - `intentTypes` CoreIntentType[]
        - `scope` 'Self' | 'Descendants' | 'SelfAndDescendants', required
        - `scriptingEngine` 'Javascript_v0', required
        - `condition` union
          - CorePolicyConditionAnd
            - `left` CorePolicyCondition, required — recursive
            - `right` CorePolicyCondition, required — recursive
            - `type` 'And', required
          - CorePolicyConditionExpression
            - `expression` string, required
            - `type` 'Expression', required
          - CorePolicyConditionOr
            - `left` CorePolicyCondition, required — recursive
            - `right` CorePolicyCondition, required — recursive
            - `type` 'Or', required
        - `workflow` CoreWorkflowCondition[]
          - union
            - CoreWorkflowConditionAnd
              - …
            - CoreWorkflowConditionOr
              - …
            - CoreWorkflowConditionRoleQuorum
              - …
        - `lock` 'Unlocked' | 'Locked', required
        - `description` string
        - `customProperties` CoreStringsMap, required
        - `intentOrigin` 'UserSigned' | 'SystemSigned'
      - `descendants` CoreCreateDomainsPayload[], required
  - `cryptoSetup` CoreGenesisCryptoSetup
    - `apiSigning` 'Secp256r1' | 'Secp256k1' | 'Ed25519', required
    - `collectionSigning` 'Secp256r1' | 'Secp256k1' | 'Ed25519', required
    - `messageSigning` 'Secp256r1' | 'Secp256k1' | 'Ed25519', required
  - `tickers` CoreTickerToValidate[]
    - `id` string, uuid, required
    - `ledgerId` string, required
    - `kind` 'Native' | 'Contract' | 'Token', required
    - `name` string, required
    - `decimals` integer
    - `symbol` string
    - `ledgerDetails` union, required
      - CoreTickerLedgerDetailsAlgorand
        - `properties` CoreAlgorandTickerProperties, required
          - `type` 'Native', required
        - `type` 'Algorand', required
      - CoreTickerLedgerDetailsBitcoin
        - `properties` CoreBitcoinTickerProperties, required
          - `type` 'Native', required
        - `type` 'Bitcoin', required
      - CoreTickerLedgerDetailsCardano
        - `properties` CoreCardanoTickerProperties, required
          - `type` 'Native', required
        - `type` 'Cardano', required
      - CoreTickerLedgerDetailsEthereum
        - `properties` union, required
          - CoreEthereumTickerPropertiesERC1155
            - `address` string, required
            - `tokenId` string, required
            - `type` 'ERC1155', required
          - CoreEthereumTickerPropertiesERC20
            - `address` string, required
            - `type` 'ERC20', required
          - CoreEthereumTickerPropertiesERC721
            - `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` 'ERC721', required
          - CoreEthereumTickerPropertiesNative
            - `type` 'Native', required
        - `type` 'Ethereum', required
      - CoreTickerLedgerDetailsHedera
        - `properties` union, required
          - CoreHederaTickerPropertiesFungibleToken
            - `id` string, required — String consisting Hedera Token Id
            - `type` 'FungibleToken', required
          - CoreHederaTickerPropertiesNative
            - `type` 'Native', required
          - CoreHederaTickerPropertiesNonFungibleToken
            - `id` string, required — String consisting Hedera Token Id
            - `serialNumber` integer, required
            - `type` 'NonFungibleToken', required
        - `type` 'Hedera', required
      - CoreTickerLedgerDetailsSolana
        - `properties` union, required
          - CoreSolanaTickerPropertiesNative
            - `type` 'Native', required
          - CoreSolanaTickerPropertiesToken
            - `mint` string, required
            - `tokenType` 'SPL' | 'SPL2022', required
            - `type` 'Token', required
        - `type` 'Solana', required
      - CoreTickerLedgerDetailsStellar
        - `properties` union, required
          - CoreStellarTickerPropertiesNative
            - `type` 'Native', required
          - CoreStellarTickerPropertiesToken
            - `code` string, required
            - `issuer` string, required
            - `type` 'Token', required
        - `type` 'Stellar', required
      - CoreTickerLedgerDetailsSubstrate
        - `properties` CoreSubstrateTickerProperties, required
          - `type` 'Native', required
        - `type` 'Substrate', required
      - CoreTickerLedgerDetailsTezos
        - `properties` CoreTezosTickerProperties, required
          - `type` 'Native', required
        - `type` 'Tezos', required
      - CoreTickerLedgerDetailsTron
        - `properties` union, required
          - CoreTronTickerPropertiesNative
            - `type` 'Native', required
          - CoreTronTickerPropertiesTRC20
            - `contractAddress` string, required
            - `type` 'TRC20', required
        - `type` 'Tron', required
      - CoreTickerLedgerDetailsXRPL
        - `properties` union, required
          - CoreXrplTickerPropertiesFungibleToken
            - `currencyCode` string, required
            - `issuer` string, required
            - `type` 'FungibleToken', required
          - CoreXrplTickerPropertiesMultiPurposeToken
            - `issuanceId` string, required — XRPL MPToken Issuance ID (192-bit integer hex encoded)
            - `type` 'MultiPurposeToken', required
          - CoreXrplTickerPropertiesNative
            - `type` 'Native', required
        - `type` 'XRPL', required
    - `lock` 'Unlocked' | 'Locked', required
    - `description` string
    - `customProperties` CoreStringsMap, required
  - `systemProperties` CoreReadWriteSystemPropertyKeyValue[]
    - union
      - CoreReadWriteSystemPropertyKeyValueNotarySystemSignedIntentsEnabledProperty
        - `value` CoreNotarySystemSignedIntentsEnabledValue, required
          - `enabled` boolean, required
        - `type` 'NotarySystemSignedIntentsEnabledProperty', required
      - CoreReadWriteSystemPropertyKeyValueStateReviewAuthorityProperty
        - `value` CoreStateReviewAuthorityValue, required
          - `publicKey` CoreAccountPublicKeyOnly, required
            - `value` string, base64, required
            - `type` 'PublicKey', required
        - `type` 'StateReviewAuthorityProperty', required
  - `ledgers` CoreCreateLedgerGenesis[]
    - `id` string, required
    - `alias` string, required
    - `parameters` union, required
      - CoreLedgerParametersAlgorand
        - `genesisId` string, required
        - `genesisHash` string, required
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `nativeTickerDecimals` integer, required
        - `type` 'Algorand', required
      - CoreLedgerParametersBitcoin
        - `supportsSegWit` boolean, required
        - `vaultLedgerIdentifier` 'btc' | 'ltc' | 'bch' | 'doge' | 'dash', required
        - `network` 'mainnet' | 'testnet' | 'regtest', required
        - `tickerSymbol` string, required
        - `tickerName` string, required
        - `dustLimit` string, required — This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.
        - `type` 'Bitcoin', required
      - CoreLedgerParametersCardano
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `testnetMagic` integer
        - `type` 'Cardano', required
      - CoreLedgerParametersEthereum
        - `chainId` integer, required
        - `vaultLedgerIdentifier` 'eth' | 'etc', required
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `supportsEIP1559` boolean, required
        - `type` 'Ethereum', required
      - CoreLedgerParametersHedera
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `type` 'Hedera', required
      - CoreLedgerParametersSolana
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `lamportsPerSignature` string, required — This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.
        - `type` 'Solana', required
      - CoreLedgerParametersStellar
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `networkPassphrase` string, required
        - `type` 'Stellar', required
      - CoreLedgerParametersSubstrate
        - `genesisHash` string, ^0x[a-f0-9]{64}$, required
        - `addressPrefix` integer, required
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `nativeTickerDecimals` integer, required
        - `supportedRuntimeVersions` CoreSubstrateRuntimeInfo[], required
          - `transactionVersion` integer, required
          - `feeParameters` CoreSubstrateFeeParameters, required
            - `baseExtrinsic` integer, required
            - `readWeight` integer, required
            - `writeWeight` integer, required
            - `transactionByteFee` string, required — This field is a large integer that can be positive or zero. It is represented as a string because it may contain value that cannot be expressed with JSON number without a loss of precision.
            - `weightToFeePolynomial` string[], required
            - `type` 'TransactionPayment', required
          - `pallets` CoreSubstratePalletInfo[], required
            - `name` string, required
            - `moduleId` integer, required
            - `methods` CoreSubstrateMethodInfo[], required
              - …
          - `chainType` 'RelayChain' | 'AssetHub'
        - `type` 'Substrate', required
      - CoreLedgerParametersTezos
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `chainId` string, required
        - `type` 'Tezos', required
      - CoreLedgerParametersTron
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `type` 'Tron', required
      - CoreLedgerParametersXRPL
        - `nativeTickerSymbol` string, required
        - `nativeTickerName` string, required
        - `networkId` integer, required
        - `type` 'XRPL', required
    - `description` string
    - `customProperties` CoreStringsMap, required
  - `systemSignaturesPublicKey` string, base64

## Response `200`

## Other responses

- `400` — Invalid value for: body
- `401` — One of: Invalid JWT (InvalidJwtError); User not authorized (PermissionDeniedError)
- `409` — Genesis already applied (GenesisCantBeLaunchedTwiceError)
- `500` — (SystemError)

---

[API](https://skmtc.net/ripple/apis/ripple-custody-api.md) · [All operations](https://skmtc.net/ripple/apis/ripple-custody-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ripple/ripple-custody-api/revisions/0b55c0ddf07a/schema)
