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
Operating System: Any Linux distribution supported by the Docker Engine and Docker Compose products. For guidance on compatible platforms, see the Docker Compose supported platforms and Docker Engine supported platforms documentation
Software products:
Docker Engine
Docker Compose
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.
Pre-installation steps
Make sure you review the Compatibility Matrix to ensure that the version is compatible with the other components.
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:
The marketplace repository is located here. Clone the marketplace repository (alternatively, copy only the
docker-compose.ymland.env.examplefile from the repository).
Copy
.env.exampleto.env
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).
Start the marketplace service
The marketplace will start in a Docker container and will be accessible via HTTP on port 8008.
Note: This installs the latest available version of the market. To install a specific version, edit the docker-compose.yml file and set the desired version tag. If you do so, please verify the Compatibility Matrix.
Option 2 - Use Docker to install and run the market
To install and configure the marketplace, perform the following steps:
The marketplace repository is located here. Clone the marketplace repository (alternatively, copy only the
.env.examplefile from the repository).
Copy
.env.exampleto.env
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).
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
NEXT_PUBLIC_IPFS_UPLOAD_URL
Description: Sets the API endpoint that the marketplace uses to upload content to your configured IPFS provider. Consult your IPFS gateway’s documentation to ensure you supply the correct endpoint and required parameters.
Values: String (URL)
Example: https:/api.pinata.cloud/pinning/pinJSONToIPFS/
Default Value: null
NEXT_PUBLIC_IPFS_DELETE_URL
Description: Sets the API endpoint the marketplace uses to request content deletion from your configured IPFS provider. Check your IPFS gateway’s documentation to ensure you provide the correct endpoint and required parameters.
Values: String (URL)
Example: https://api.pinata.cloud/pinning/unpin
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.
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 the Ethereum 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-policies
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
Dataspace
NEXT_PUBLIC_DATASPACE
Description: Sets the identifier of the dataspace associated with the marketplace. This has two effects:
All assets published through the marketplace will automatically receive this dataspace identifier.
The marketplace will display only the assets whose dataspace identifier matches this value.
By default, the value of this variable is set to null. In this state, no filtering is applied to the assets displayed, and no dataspace identifier is added to an asset’s description
Values: string
Example: "oceanenteprise"
Default Value: null
Market-level authentication
NEXT_PUBLIC_AUTH_ENABLED
Description: Sets the marketplace user authentication. If true, user authentication is enabled; if false, user authentication is disabled.
Values: boolean
Example: true
Default Value: false
NEXT_PUBLIC_AUTH_PROVIDER
Description: If marketplace authentication is enabled, this variable sets the authentication method. Currently, the only accepted method is OIDC.
Values: string
Example: oidc
Default Value: oidc
NEXT_PUBLIC_OIDC_ISSUER
Description: Sets the URL of the OIDC Identity Provider that verifies user identity and issues security tokens (ID tokens) for authentication.
Values: string (URL)
Example: https://idpserver.oceanenteprise.io/application/o/market-demo
Default Value: null
NEXT_PUBLIC_OIDC_CLIENT_ID
Description: Sets OIDC client ID for the marketplace application. This value is defined on the OIDC Identity Provider when the configuration for the marketplace application is created.
Values: string
Example: 4abc8afdda73b95545b9a
Default Value: null
OIDC_CLIENT_SECRET
Description: Sets OIDC client secret for the marketplace application. This value is defined on the OIDC Identity Provider when the configuration for the marketplace application is created.
Values: string
Example: 4cec8afdse3401j438943u4
Default Value: null
NEXT_PUBLIC_OIDC_SIGNUP_FLOW
Description: Sets the name of the sign-up flow defined in the Authentik server that will be run to register users to the marketplace.
Value: string
Example: demo-market-signup-flow
Default Value: null
Legal Docs
NEXT_PUBLIC_IMPRINT_URL
Description: Sets the URL from where the Imprint document will be read. The document must be in Markdown format. If this environment variable is set to null, the marketplace will use the default OEC Imprint document.
Value: string (URL)
Example: https://raw.githubusercontent.com/OceanProtocolEnterprise/legaldocs/refs/heads/main/market/Imprint.md
Default Value: null
NEXT_PUBLIC_TC_URL
Description: Sets the URL from where the Terms and Conditions document will be read. The document must be in Markdown format. If this environment variable is set to null, the marketplace will use the default OEC Terms and Conditions document.
Value: string (URL)
Example: https://raw.githubusercontent.com/OceanProtocolEnterprise/legaldocs/refs/heads/main/market/TermsAndConditions.md
Default Value: null
NEXT_PUBLIC_PP_URL
Description: Sets the URL from where the Privacy Policy document will be read. The document must be in Markdown format. If this environment variable is set to null, the marketplace will use the default OEC Privacy Policy document.
Value: string (URL)
Example: https://raw.githubusercontent.com/OceanProtocolEnterprise/legaldocs/refs/heads/main/market/PrivacyPolicy.md
Default Value: null
NEXT_PUBLIC_CP_URL
Description: Sets the URL from where the Cookie Policy document will be read. The document must be in Markdown format. If this environment variable is set to null, the marketplace will use the default OEC Cookie Policy document.
Value: string (URL)
Example: https://raw.githubusercontent.com/OceanProtocolEnterprise/legaldocs/refs/heads/main/market/CookiePolicy.md
Default Value: null
NEXT_PUBLIC_DPUA_URL
Description: Sets the URL from where the Data Portal Usage Agreement document will be read. The document must be in Markdown format. If this environment variable is set to null, the marketplace will use the default OEC Data Portal Usage Agreement document.
Value: string (URL)
Example: https://raw.githubusercontent.com/OceanProtocolEnterprise/legaldocs/refs/heads/main/market/DataPortalUsageAgreement.md
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
NEXT_PUBLIC_SSI_UI_URL
Description: Defines the URL of the SSI wallet user interface provided by the marketplace operator. This URL is used in the onboarding guide to direct participants to the interface where they can add the DIDs and VCs required to access dataspace assets.
Value: string (URL)
Example: https://wallet2-ui.oceanenterprise.io
Default Value: null
Last updated