A privacy-preserving federated implementation of the XGBoost library for parallel decision tree boosting. The scikit-learn API is supported (🔗Python API Reference — xgboost 1.6.1 documentation).


  • Use the XGBoost train(), predict(), and predict_proba() methods.
  • When using add_agreement() to forge an agreement on a trained XGBoost Model, use Operation.EXECUTE for the operation parameter.
  • When using add_agreement() to allow a counterparty to use your dataset for model training, or when using create_job() to train an XGBoost Model, use Operation.XGBOOST_TRAIN for the operation parameter.


Training parameters

  • dataset_path: str = ""
  • regression: bool = False
  • xgboost_params: Dict[str, Union[int, str]] = None
  • test_size: float = 0.0

Inference parameters

  • max_depth: int = -1
  • features: int = -1
  • model_path: str = ""
  • regression: bool = False
  • predict_proba: bool = False
  • dataset_path: str = ""


  • Only gbtree booster is supported in SMPC inference.
  • Higher depth forests will cause extreme memory usage when used via SMPC.