Skip to main content
Proceed with caution

Supplying configuration other than the initializationConfig is not recommended for regular use of the marketplace. Proceed with caution!
The MarketProvider component can be configured with a variety of options to customize the behavior and appearance of the market. The MarketProvider component accepts the following props:
interface MarketProviderProps {
    children: React.ReactNode;
    initializationConfig: InitializationConfig;
    initialState?: MarketInitialState;
    themeOverride?: Theme;
    configOverride?: Config;
}

initializationConfig

The initializationConfig prop is required and contains the following properties:
interface InitializationConfig {
    partnerId: string;
    alwaysOpen?: boolean;
    fullscreenMobile?: boolean;
    flat?: boolean;
}
  • partnerId (required): The partner ID.
  • alwaysOpen (optional): If set to true, the market will always be open and the isOpen state will be ignored.
  • fullscreenMobile (optional): If set to true, the market will be displayed in fullscreen mode on mobile devices.
  • flat (optional): If set to true, the market will be displayed in flat mode. It will not float over the page content.

initialState

The initialState prop is optional and contains the following properties:
interface MarketInitialState {
    isOpen?: boolean;
    pageNumber?: number;
    height?: number;
    searchQuery?: string;
    marketListings?: MarketListing[];
    basket?: MarketBasketItem | null;
    orderId?: string | null;
    currencyEstimates?: CurrencyEstimate[];
    selectedCurrency?: string;
    pages?: ReactElement[];
    seconds?: number;
    isMobile?: boolean;
    opacity?: number;
    transitionSpeed?: number;
}
  • isOpen (optional): If set to true, the market will be open by default.
  • pageNumber (optional): The page number to display when the market is opened.
  • height (optional): The height of the market when it is open.
  • searchQuery (optional): The search query to display when the market is opened.
  • marketListings (optional): The market listings to display when the market is opened.
  • basket (optional): The basket to display in checkout when the market is opened.
  • orderId (optional): The order ID when the market is opened.
  • currencyEstimates (optional): The currency estimates to display when the market is opened.
  • selectedCurrency (optional): The selected currency to display when the market is opened.
  • pages (optional): The pages of the modal when the market is opened.
  • seconds (optional): The seconds to display on the currency estimation timer when the market is opened.
  • isMobile (optional): If set to true, the market will be displayed in mobile mode.
  • opacity (optional): The opacity of the market when it is open.
  • transitionSpeed (optional): The transition speed of the market when it is open.

themeOverride

The themeOverride prop is optional and can be used to override the theme. It contains the following properties:
interface Theme {
    primaryColor?: string;
    secondaryColor?: string;
    backgroundColor?: string;
    overlayBackgroundColor?: string;
    textColor?: string;
    backgroundColorSecondary?: string;
    inputBorderColor?: string;
    inputBorderColorFocus?: string;
    inputFontFamily?: string;
    inputFontColor?: string;
    inputPlaceholder?: string;
    darkTheme: boolean;
}
  • primaryColor (optional): The primary color of the theme.
  • secondaryColor (optional): The secondary color of the theme.
  • backgroundColor (optional): The background color of the theme.
  • overlayBackgroundColor (optional): The overlay background color of the theme.
  • textColor (optional): The text color of the theme.
  • backgroundColorSecondary (optional): The secondary background color of the theme.
  • inputBorderColor (optional): The input border color of the theme.
  • inputBorderColorFocus (optional): The input border color when focused of the theme.
  • inputFontFamily (optional): The input font family of the theme.
  • inputFontColor (optional): The input font color of the theme.
  • inputPlaceholder (optional): The input placeholder of the theme.
  • darkTheme (required): If set to true, the dark theme will be used.

configOverride

The configOverride prop is optional and can be used to override the configuration. It contains the following properties:
interface Config {
    apiUrl?: string;
    markets: string[];
    fiat?: boolean;
    cryptocurrencies: string[];
    stripe: {
        connectedAccountId: string;
    };
    skipPayment: boolean;
}
  • apiUrl (optional): The API URL of the marketplace.
  • markets (required): The domain markets of the marketplace.
  • fiat (optional): If set to true, fiat currency will be available.
  • cryptocurrencies (required): The cryptocurrencies of the marketplace.
  • stripe (required): The Stripe configuration of the marketplace.
    • connectedAccountId (required): The Stripe connected account ID of the partner.
  • skipPayment (optional): If set to true, payment will be skipped.
I