diff --git a/helpers/constants.ts b/helpers/constants.ts
index cb66e8a1..9a223bd6 100644
--- a/helpers/constants.ts
+++ b/helpers/constants.ts
@@ -66,5 +66,6 @@ export const MOCK_CHAINLINK_AGGREGATORS_PRICES = {
   UniYFIWETH: oneEther.multipliedBy('22.407436').toFixed(),
   BptWBTCWETH: oneEther.multipliedBy('22.407436').toFixed(),
   WMATIC: oneEther.multipliedBy('0.003620948469').toFixed(),
+  STAKE: oneEther.multipliedBy('0.003620948469').toFixed(),
   USD: '5848466240000000',
 };
diff --git a/helpers/types.ts b/helpers/types.ts
index d2d33b51..526b2f98 100644
--- a/helpers/types.ts
+++ b/helpers/types.ts
@@ -239,6 +239,7 @@ export interface iAssetBase<T> {
   UniYFIWETH: T;
   BptWBTCWETH: T;
   WMATIC: T;
+  STAKE: T;
 }
 
 export type iAssetsWithoutETH<T> = Omit<iAssetBase<T>, 'ETH'>;
@@ -298,6 +299,11 @@ export type iMaticPoolAssets<T> = Pick<
   'DAI' | 'USDC' | 'USDT' | 'WBTC' | 'WETH' | 'WMATIC'
 >;
 
+export type iXDAIPoolAssets<T> = Pick<
+  iAssetsWithoutUSD<T>,
+  'DAI' | 'USDC' | 'USDT' | 'WBTC' | 'WETH' | 'STAKE'
+>;
+
 export type iMultiPoolsAssets<T> = iAssetCommon<T> | iAavePoolAssets<T>;
 
 export type iAavePoolTokens<T> = Omit<iAavePoolAssets<T>, 'ETH'>;
@@ -347,6 +353,7 @@ export enum TokenContractId {
   UniYFIWETH = 'UniYFIWETH',
   BptWBTCWETH = 'BptWBTCWETH',
   WMATIC = 'WMATIC',
+  STAKE = 'STAKE',
 }
 
 export interface IReserveParams extends IReserveBorrowParams, IReserveCollateralParams {
@@ -496,6 +503,10 @@ export interface IMaticConfiguration extends ICommonConfiguration {
   ReservesConfig: iMaticPoolAssets<IReserveParams>;
 }
 
+export interface IXDAIConfiguration extends ICommonConfiguration {
+  ReservesConfig: iXDAIPoolAssets<IReserveParams>;
+}
+
 export interface ITokenAddress {
   [token: string]: tEthereumAddress;
 }
diff --git a/markets/matic/commons.ts b/markets/matic/commons.ts
index b92a1eb6..784f156d 100644
--- a/markets/matic/commons.ts
+++ b/markets/matic/commons.ts
@@ -66,6 +66,14 @@ export const CommonsConfig: ICommonConfiguration = {
     [ePolygonNetwork.mumbai]: undefined,
     [ePolygonNetwork.matic]: undefined,
   },
+  LendingPool: {
+    [ePolygonNetwork.mumbai]: '',
+    [ePolygonNetwork.matic]: '0x15Ec48a46d2D26cf4ADf5A39123E4c75e6887fE0',
+  },
+  LendingPoolConfigurator: {
+    [ePolygonNetwork.mumbai]: '',
+    [ePolygonNetwork.matic]: '0x268F48E09c72f6008DA50D6465a174C10167918e',
+  },
   EmergencyAdminIndex: 1,
   ProviderRegistry: {
     [ePolygonNetwork.mumbai]: '0x569859d41499B4dDC28bfaA43915051FF0A38a6F', // TEMP
diff --git a/markets/xdai/commons.ts b/markets/xdai/commons.ts
index e69de29b..433d54ea 100644
--- a/markets/xdai/commons.ts
+++ b/markets/xdai/commons.ts
@@ -0,0 +1,120 @@
+import BigNumber from 'bignumber.js';
+import { oneEther, oneRay, RAY, ZERO_ADDRESS, MOCK_CHAINLINK_AGGREGATORS_PRICES } from '../../helpers/constants';
+import { ICommonConfiguration, eXDaiNetwork } from '../../helpers/types';
+
+// ----------------
+// PROTOCOL GLOBAL PARAMS
+// ----------------
+
+export const CommonsConfig: ICommonConfiguration = {
+  MarketId: 'Commons',
+  ATokenNamePrefix: 'Aave XDAI Market',
+  StableDebtTokenNamePrefix: 'Aave XDAI Market stable debt',
+  VariableDebtTokenNamePrefix: 'Aave XDAI Market variable debt',
+  SymbolPrefix: 'm',
+  ProviderId: 0, // Overriden in index.ts
+  ProtocolGlobalParams: {
+    TokenDistributorPercentageBase: '10000',
+    MockUsdPriceInWei: '5848466240000000',
+    UsdAddress: '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96',
+    NilAddress: '0x0000000000000000000000000000000000000000',
+    OneAddress: '0x0000000000000000000000000000000000000001',
+    AaveReferral: '0',
+  },
+
+  // ----------------
+  // COMMON PROTOCOL PARAMS ACROSS POOLS AND NETWORKS
+  // ----------------
+
+  Mocks: {
+    AllAssetsInitialPrices: {
+      ...MOCK_CHAINLINK_AGGREGATORS_PRICES,
+    },
+  },
+  // TODO: reorg alphabetically, checking the reason of tests failing
+  LendingRateOracleRatesCommon: {
+    WETH: {
+      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
+    },
+    DAI: {
+      borrowRate: oneRay.multipliedBy(0.039).toFixed(),
+    },
+    USDC: {
+      borrowRate: oneRay.multipliedBy(0.039).toFixed(),
+    },
+    USDT: {
+      borrowRate: oneRay.multipliedBy(0.035).toFixed(),
+    },
+    WBTC: {
+      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
+    },
+    STAKE: {
+      borrowRate: oneRay.multipliedBy(0.05).toFixed(), // TEMP
+    },
+  },
+  // ----------------
+  // COMMON PROTOCOL ADDRESSES ACROSS POOLS
+  // ----------------
+
+  // If PoolAdmin/emergencyAdmin is set, will take priority over PoolAdminIndex/emergencyAdminIndex
+  PoolAdmin: {
+    [eXDaiNetwork.xdai]: undefined,
+  },
+  PoolAdminIndex: 0,
+  EmergencyAdmin: {
+    [eXDaiNetwork.xdai]: undefined,
+  },
+  EmergencyAdminIndex: 1,
+  ProviderRegistry: {
+    [eXDaiNetwork.xdai]: '',
+  },
+  ProviderRegistryOwner: {
+    [eXDaiNetwork.xdai]: '',
+  },
+  LendingPoolConfigurator: {
+    [eXDaiNetwork.xdai]: '0',
+  },
+  LendingPool: {
+    [eXDaiNetwork.xdai]: '0',
+  },
+  LendingRateOracle: {
+    [eXDaiNetwork.xdai]: '',
+  },  
+  LendingPoolCollateralManager: {
+    [eXDaiNetwork.xdai]: '',
+  },
+  TokenDistributor: {
+    [eXDaiNetwork.xdai]: '',
+  },
+  WethGateway: {
+    [eXDaiNetwork.xdai]: '',
+  },
+  AaveOracle: {
+    [eXDaiNetwork.xdai]: '',
+  },
+  FallbackOracle: {
+    [eXDaiNetwork.xdai]: ZERO_ADDRESS,
+  },
+  ChainlinkAggregator: {
+    [eXDaiNetwork.xdai]: {
+      DAI: ZERO_ADDRESS,
+      USDC: ZERO_ADDRESS,
+      USDT: ZERO_ADDRESS,
+      WBTC: ZERO_ADDRESS,
+      STAKE: ZERO_ADDRESS,
+    },
+  },
+  ReserveAssets: {
+    [eXDaiNetwork.xdai]: {},
+  },
+  ReservesConfig: {},
+  ATokenDomainSeparator: {
+    [eXDaiNetwork.xdai]: '',
+  },
+  WETH: {
+    [eXDaiNetwork.xdai]: '', // DAI: xDAI is the base token, DAI is also there, We need WXDAI
+  },
+  ReserveFactorTreasuryAddress: {
+    [eXDaiNetwork.xdai]: '',   // TEMP 
+  },
+};
diff --git a/markets/xdai/index.ts b/markets/xdai/index.ts
index 8b137891..fadf52c8 100644
--- a/markets/xdai/index.ts
+++ b/markets/xdai/index.ts
@@ -1 +1,42 @@
+import { oneRay, ZERO_ADDRESS } from '../../helpers/constants';
+import { IXDAIConfiguration, eXDaiNetwork } from '../../helpers/types';
 
+import { CommonsConfig } from './commons';
+import {
+  strategyDAI,
+  strategyUSDC,
+  strategyUSDT,
+  strategyWBTC,
+  strategyWETH,
+  strategySTAKE,
+} from './reservesConfigs';
+
+// ----------------
+// POOL--SPECIFIC PARAMS
+// ----------------
+
+export const XDAIConfig: IXDAIConfiguration = {
+  ...CommonsConfig,
+  MarketId: 'XDAI Market',
+  ProviderId: 4,    // Unknown?
+  ReservesConfig: {
+    DAI: strategyDAI,
+    USDC: strategyUSDC,
+    USDT: strategyUSDT,
+    WBTC: strategyWBTC,
+    WETH: strategyWETH,
+    STAKE: strategySTAKE,
+  },
+  ReserveAssets: {
+    [eXDaiNetwork.xdai]: {
+      DAI: '0x44fA8E6f47987339850636F88629646662444217',
+      USDC: '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83',
+      USDT: '0x4ECaBa5870353805a9F068101A40E0f32ed605C6',
+      WBTC: '0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252',
+      WETH: '0x6A023CCd1ff6F2045C3309768eAd9E68F978f6e1',
+      STAKE: '0xb7D311E2Eb55F2f68a9440da38e7989210b9A05e'
+    },
+  },
+};
+
+export default XDAIConfig;
diff --git a/markets/xdai/rateStrategies.ts b/markets/xdai/rateStrategies.ts
index e69de29b..afe19b63 100644
--- a/markets/xdai/rateStrategies.ts
+++ b/markets/xdai/rateStrategies.ts
@@ -0,0 +1,91 @@
+import BigNumber from 'bignumber.js';
+import { oneRay } from '../../helpers/constants';
+import { IInterestRateStrategyParams } from '../../helpers/types';
+
+// BUSD SUSD
+export const rateStrategyStableOne: IInterestRateStrategyParams = {
+  name: "rateStrategyStableOne",
+  optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
+  variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
+  variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
+  stableRateSlope1: '0',
+  stableRateSlope2: '0',
+};
+
+// DAI TUSD
+export const rateStrategyStableTwo: IInterestRateStrategyParams = {
+  name: "rateStrategyStableTwo",
+  optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
+  variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
+  variableRateSlope2: new BigNumber(0.75).multipliedBy(oneRay).toFixed(),
+  stableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(),
+  stableRateSlope2: new BigNumber(0.75).multipliedBy(oneRay).toFixed(),
+}
+
+// USDC USDT
+export const rateStrategyStableThree: IInterestRateStrategyParams = {
+  name: "rateStrategyStableThree",
+  optimalUtilizationRate: new BigNumber(0.9).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
+  variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
+  variableRateSlope2: new BigNumber(0.60).multipliedBy(oneRay).toFixed(),
+  stableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(),
+  stableRateSlope2: new BigNumber(0.60).multipliedBy(oneRay).toFixed(),
+}
+
+// WETH
+export const rateStrategyWETH: IInterestRateStrategyParams = {
+  name: "rateStrategyWETH",
+  optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
+  variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
+  variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
+  stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
+  stableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
+}
+
+// AAVE
+export const rateStrategyAAVE: IInterestRateStrategyParams = {
+  name: "rateStrategyAAVE",
+  optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: '0',
+  variableRateSlope1: '0',
+  variableRateSlope2: '0',
+  stableRateSlope1: '0',
+  stableRateSlope2: '0',
+}
+
+// BAT ENJ LINK MANA MKR REN YFI ZRX
+export const rateStrategyVolatileOne: IInterestRateStrategyParams = {
+  name: "rateStrategyVolatileOne",
+  optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
+  variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
+  variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
+  stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
+  stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
+}
+
+// KNC WBTC
+export const rateStrategyVolatileTwo: IInterestRateStrategyParams = {
+  name: "rateStrategyVolatileTwo",
+  optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
+  variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
+  variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
+  stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
+  stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
+}
+
+// SNX
+export const rateStrategyVolatileThree: IInterestRateStrategyParams = {
+  name: "rateStrategyVolatileThree",
+  optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(),
+  baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
+  variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
+  variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
+  stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
+  stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
+}
diff --git a/markets/xdai/reservesConfigs.ts b/markets/xdai/reservesConfigs.ts
index e69de29b..6c90afc5 100644
--- a/markets/xdai/reservesConfigs.ts
+++ b/markets/xdai/reservesConfigs.ts
@@ -0,0 +1,85 @@
+// import BigNumber from 'bignumber.js';
+// import { oneRay } from '../../helpers/constants';
+import { eContractid, IReserveParams } from '../../helpers/types';
+import { 
+  rateStrategyStableOne,
+  rateStrategyStableTwo,
+  rateStrategyStableThree,
+  rateStrategyWETH,
+  rateStrategyAAVE,
+  rateStrategyVolatileOne,
+  rateStrategyVolatileTwo,
+  rateStrategyVolatileThree,
+} from './rateStrategies';
+
+export const strategyDAI: IReserveParams = {
+  strategy: rateStrategyStableTwo,
+  baseLTVAsCollateral: '7500',
+  liquidationThreshold: '8000',
+  liquidationBonus: '10500',
+  borrowingEnabled: true,
+  stableBorrowRateEnabled: true,
+  reserveDecimals: '18',
+  aTokenImpl: eContractid.AToken,
+  reserveFactor: '1000'
+};
+
+export const strategyUSDC: IReserveParams = {
+  strategy: rateStrategyStableThree,
+  baseLTVAsCollateral: '8000',
+  liquidationThreshold: '8500',
+  liquidationBonus: '10500',
+  borrowingEnabled: true,
+  stableBorrowRateEnabled: true,
+  reserveDecimals: '6',
+  aTokenImpl: eContractid.AToken,
+  reserveFactor: '1000'
+};
+
+export const strategyUSDT: IReserveParams = {
+    strategy: rateStrategyStableThree,
+    baseLTVAsCollateral: '8000',
+    liquidationThreshold: '8500',
+    liquidationBonus: '10500',
+    borrowingEnabled: true,
+    stableBorrowRateEnabled: true,
+    reserveDecimals: '6',
+    aTokenImpl: eContractid.AToken,
+    reserveFactor: '1000'
+};
+
+export const strategyWETH: IReserveParams = {
+  strategy: rateStrategyWETH,
+  baseLTVAsCollateral: '8000',
+  liquidationThreshold: '8250',
+  liquidationBonus: '10500',
+  borrowingEnabled: true,
+  stableBorrowRateEnabled: true,
+  reserveDecimals: '18',
+  aTokenImpl: eContractid.AToken,
+  reserveFactor: '1000'
+};
+
+export const strategyWBTC: IReserveParams = {
+  strategy: rateStrategyVolatileTwo,
+  baseLTVAsCollateral: '7000',
+  liquidationThreshold: '7500',
+  liquidationBonus: '11000',
+  borrowingEnabled: true,
+  stableBorrowRateEnabled: true,
+  reserveDecimals: '8',
+  aTokenImpl: eContractid.AToken,
+  reserveFactor: '2000'
+};
+
+export const strategySTAKE: IReserveParams = {
+  strategy: rateStrategyVolatileOne,    //Temp?
+  baseLTVAsCollateral: '5000',
+  liquidationThreshold: '6500',
+  liquidationBonus: '11000',
+  borrowingEnabled: true,
+  stableBorrowRateEnabled: true,
+  reserveDecimals: '18',
+  aTokenImpl: eContractid.AToken,
+  reserveFactor: '2000'
+};
\ No newline at end of file
diff --git a/test-suites/test-aave/__setup.spec.ts b/test-suites/test-aave/__setup.spec.ts
index 00935f53..c9a54f7f 100644
--- a/test-suites/test-aave/__setup.spec.ts
+++ b/test-suites/test-aave/__setup.spec.ts
@@ -189,6 +189,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
       BptWBTCWETH: mockTokens.BptWBTCWETH.address,
       WMATIC: mockTokens.WMATIC.address,
       USD: USD_ADDRESS,
+      STAKE: mockTokens.STAKE.address,
     },
     fallbackOracle
   );
diff --git a/test-suites/test-lp/__setup.spec.ts b/test-suites/test-lp/__setup.spec.ts
index e7515f25..d359b51e 100644
--- a/test-suites/test-lp/__setup.spec.ts
+++ b/test-suites/test-lp/__setup.spec.ts
@@ -188,6 +188,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
       BptWBTCWETH: mockTokens.BptWBTCWETH.address,
       WMATIC: mockTokens.WMATIC.address,
       USD: USD_ADDRESS,
+      STAKE: mockTokens.STAKE.address,
     },
     fallbackOracle
   );