Marketplace installation and configuration

Prerequisites

Hardware requirements

The minimum hardware requirements for the server hosting the marketplace are:

  • number of cores: 1

  • RAM: 8 GB

  • disk: 50 GB

Software requirements

Other requirements

  • Blockchain RPC provider: Use a service such as Alchemy, Infura, or Chainstack. Ensure that your subscription tier supports a sufficient number of requests per second to meet the marketplace demand.

  • IPFS gateway provider: Use a gateway such as Pinata, Cloudflare, or Filebase. Verify that your subscription tier provides adequate storage capacity, file limits, and request throughput for your expected workload.

  • OE Node operational: The marketplace needs an operational OE Node to run properly.

Deployment steps

There are two ways of installing and running the market: using Docker Compose or Docker Engine.

Option 1 - Use Docker Compose to install and run the market

To install and configure the marketplace, perform the following steps:

  1. The marketplace repository is located herearrow-up-right. Clone the marketplace repository (alternatively, copy only the docker-compose.yml and .env.example file from the repository).

  1. Copy .env.example to .env

  1. Edit the .env file to set the environment variables specific to your configuration (please refer to the Environment Variables chapter for how to set the variables).

  1. Start the marketplace service

The marketplace will start in a Docker container and will be accessible via HTTP on port 8008.

Option 2 - Use Docker to install and run the market

To install and configure the marketplace, perform the following steps:

  1. The marketplace repository is located herearrow-up-right. Clone the marketplace repository (alternatively, copy only the .env.example file from the repository).

  1. Copy .env.example to .env

  1. Edit the .env file to set the environment variables specific to your configuration (please refer to the Environment Variables chapter for how to set the variables).

  1. Start the marketplace service

The marketplace will start in a Docker container and will be accessible via HTTP on port 8008.

Post installation steps

  • Deploy the marketplace server behind a reverse proxy responsible for TLS termination and secure request forwarding. The proxy should enforce HTTPS for all external traffic and route decrypted requests to the internal application port.

  • Place the marketplace in a network environment that allows outbound communication to the configured OE Node. Depending on your architecture, the marketplace must also be able to reach the default SSI wallet instance and the Policy Server Proxy to function correctly.

Environment Variables

OE Node

NEXT_PUBLIC_PROVIDER_URL

Description: Sets the base URL of the OE Node used by the marketplace. This node will be used by the marketplace to encrypt the asset description at the publishing time, to decrypt the asset description at consumption time, and as the C2D environment provider.

Values: string (URL)

Example: https://ocean-node-vm3.oceanenterprise.io/

Default Value: https://ocean-node-vm3.oceanenterprise.io/

NEXT_PUBLIC_METADATACACHE_URI

Description: Sets the base URL of the OE Node where the metadata cache is stored. From this cache, the assets listed in the marketplace's catalogue are read. Set it to the same value as NEXT_PUBLIC_PROVIDER_URL.

Values: string (URL)

Example: https://ocean-node-vm3.oceanenterprise.io/

Default Value: https://ocean-node-vm3.oceanenterprise.io/

NEXT_PUBLIC_NODE_URI_INDEXED

Description: Configures the list of OE nodes whose assets will be shown in the marketplace's catalogue. Only the assets published by the OE nodes in this list will be displayed in the catalogue.

Values: JSON array of strings (URL)

Example: ["https://ocean-node-vm3.oceanenterprise.io/", ""https://ocean-node-vm3.oceanenterprise.io/""]

Default Value: the value of NEXT_PUBLIC_PROVIDER_URL variable or "https://ocean-node-vm3.oceanenterprise.io"


Blockchain RPC

NEXT_PUBLIC_NODE_URI_MAP

Description: Sets the list of blockchains to which the marketplace connects to publish and retrieve assets. Also, for each blockchain, the RPC provider URL is set.

Values: JSON map of chainId to RPC URL

Example: {"11155111":"https://eth-sepolia.g.alchemy.com/v2/<your_key>", "11155420":"https://opt-sepolia.g.alchemy.com/v2/<your_key>}

Default Value: {}

NEXT_PUBLIC_NODE_URI

Description: Sets the default RPC provider URL when no per-chain override is provided in NEXT_PUBLIC_NODE_URI_MAP.

Values: string (URL)

Example: https://eth-sepolia-testnet.api.pocket.network/

Default Value: https://eth-sepolia-testnet.api.pocket.network/


IPFS

NEXT_PUBLIC_IPFS_GATEWAY

Description: Sets the URL of the IPFS gateway used to fetch the asset's DDO.

Values: String (URL)

Example: https://ipfs.io/

Default Value: null

IPFS_JWT

Description: Sets the access key to the IPFS gateway provider account used to upload and retrieve files on IPFS.

Values: string (JWT)

Example: eyJhbGciOi...

Default Value: null

NEXT_PUBLIC_IPFS_UNPIN_FILES

Description: Specifies if an existing license file published in IPFS is deleted or not when a new license file is uploaded

Values: true/false

Example: true

Default Value: false


Currencies and Market Fees

The marketplace can apply two types of fees cumulatively: a fixed fee (NEXT_PUBLIC_CONSUME_MARKET_ORDER_FEE_MAP) and a variable, percentage‑based fee (NEXT_PUBLIC_CONSUME_MARKET_FEE). Using both fee types gives the marketplace operator greater flexibility in defining the overall fee policy

NEXT_PUBLIC_ALLOWED_ERC20_ADDRESSES

Description: Defines the token address for the currency tokens accepted by the marketplace, for each blockchain the market is connected to.

Ensure that the listed addresses are supported by the O.E.C. smart contracts; unsupported entries will cause asset publishing to fail. Consult this chapter for the latest list of supported currencies. If none of the currency tokens configured in this variable is supported by the O.E.C. smart contracts, an error message is displayed when users connect to the market.

Note: If you intend to use the fixed market‑order fee (configured via NEXT_PUBLIC_CONSUME_MARKET_ORDER_FEE) in a market connected to multiple blockchains, ensure that all currencies across those chains use the same number of decimals. If the decimal precision differs, the fixed fee will be calculated incorrectly. This limitation will be resolved in a future market release.

Values: JSON map of chainId to a list of token addresses.

Example: {"11155111":["0x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4","0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238"]} i.e., for Sepolia blockchain, the supported currencies are EURC and USDC.

Default Value: {}

NEXT_PUBLIC_CONSUME_MARKET_ORDER_FEE_MAP

Description: Defines the fixed market fee applied when an asset is purchased through the marketplace, whether for download or for use in a C2D job. The fee is expressed as an absolute number, written with the number of decimals used by each of the currency tokens defined in NEXT_PUBLIC_ALLOWED_ERC20_ADDRESSES.

Value: JSON map of chainId to a list of maps (token address to fee value).

Example: {"11155111":[{"token":"0x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4","amount":"2000000"},{"token":"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238","amount":"1000000"}]} , i.e., for Optimism Sepolia blockchain, the applicable fixed fees are: 2 EURC for assets priced in EURC and 1 USDC for assets priced in USDC.

Default Value: {}

NEXT_PUBLIC_CONSUME_MARKET_FEE

Description: Defines the variable fee applied when an asset is purchased through the marketplace, whether for download or for use in a C2D job. The fee is represented as a decimal value (for example, 0.1 corresponds to a 10% fee, and 1 corresponds to a 100% fee). This fee is applied to all prices, regardless of the currency.

Example: 0.15, meaning that a variable fee of 15% of the asset price is applied.

Default Value: 0

NEXT_PUBLIC_MARKET_FEE_ADDRESS

Description: Defines the address where the market fees are collected.

Example: 0x0db00a90deee402256cb1df89f3e14d6b9130fdd

Default Value: OEC Fee Collector address


SSI

NEXT_PUBLIC_SSI_ENABLED

Description: Whether the SSI-based access control is active or not in the marketplace. If the OE Node used by the marketplace (the one listed in the NEXT_PUBLIC_PROVIDER_URL variable) has SSI-based access control activated (i.e., the variable POLICY_SERVER_URL is not null), then this variable must be set to true. If not, this variable must be set to false.

Values: true/false

Example: true

Default Value: false

NEXT_PUBLIC_SSI_POLICY_SERVER

Description: Used only if NEXT_PUBLIC_SSI_ENABLED=true. Sets the base URL of the Policy Server used by the marketplace. The value must be the same as that set in the POLICY_SERVER_URL of the node used by the marketplace (the one listed in the NEXT_PUBLIC_PROVIDER_URL variable)

Values: string (URL)

Example: https://ocean-node-vm3.oceanenterprise.io

Default Value: null

NEXT_PUBLIC_SSI_WALLET_API

Description: Used only if NEXT_PUBLIC_SSI_ENABLED=true. Sets the base URL of the default SSI wallet instance. When users log in to the marketplace, this is the default SSI wallet to which they connect, in case they don't provide their own wallet instance URL.

Values: string (URL)

Example: https://wallet.demo.oceanenterprise.io

Default Value: null

NEXT_PUBLIC_SSI_DEFAULT_POLICIES_URL

Description: Used only if NEXT_PUBLIC_SSI_ENABLED=true. Sets the URL from where the list of default static policies that will be applied to all requested Verifiable Credentials is read. The URL must contain a list of valid static policies, one policy per line. For reference, see https://raw.githubusercontent.com/OceanProtocolEnterprise/policy-server/refs/heads/main/default-verification-policiesarrow-up-right

Values: string (URL)

Example: https://raw.githubusercontent.com/OceanProtocolEnterprise/policy-server/refs/heads/main/default-verification-policies

Default Value: null

NEXT_PUBLIC_OPA_SERVER_URL

Description: Used only if NEXT_PUBLIC_SSI_ENABLED=true. Sets the base URL of the OPA Server used by the verifier for custom SSI policies evaluation.

Values: string (URL)

Example: http://ocean-node-vm3.oceanenterprise.io:8181

Default Value: null


Others

NEXT_PUBLIC_ENCRYPT_ASSET

Description: Defines whether the asset's DDO is encrypted at publishing time

Values: true/false

Example: true

Default Value: false

NEXT_PUBLIC_HIDE_ONBOARDING_MODULE_BY_DEFAULT

Description: Defines whether or not the onboarding guide is hidden for new users. By default, the onboarding guide is displayed. By setting this variable to true, the onboarding guide is not displayed by default.

Value: true/false

Example: true

Default Value: false

Last updated