LayerCover

ISyndicateFactory

Interface for deploying new Syndicate vaults.

View deployed contract addresses in the Contract Addresses section.

The ISyndicateFactory is the factory contract used to deploy new Syndicate vaults. It uses the minimal proxy pattern (EIP-1167) to deploy lightweight clones of the Syndicate implementation, reducing gas costs.

Interface

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/**
 * @title ISyndicateFactory
 * @notice Interface for syndicate deployment, registration, and permissionless creation controls.
 */
interface ISyndicateFactory {
    function createSyndicate(
        address asset,
        address syndicateManager,
        address feeRecipient,
        uint16 managementFeeBps,
        string calldata name,
        string calldata symbol
    ) external returns (address syndicate);

    function isRegisteredSyndicate(address account) external view returns (bool);

    function registerSyndicate(address syndicate) external;

    function deregisterSyndicate(address syndicate) external;

    function syndicateCount() external view returns (uint256);

    function getSyndicates(uint256 offset, uint256 limit) external view returns (address[] memory);

    function setPermissionlessCreation(bool allowed) external;

    function setCreationBondToken(address token) external;
    function setCreationBond(uint256 bondAmount, address recipient) external;
    function creationBondToken() external view returns (address);
    function creationBond() external view returns (uint256);
    function bondRecipient() external view returns (address);
}