Configuring Platform

Skeleton Facets

Skeletons represent mandatory facets that must be added to the diamond proxy when deploying a platform.

There are only two skeleton facets that provide the core functionality necessary to enable the staking platform:

SkeletonDescription
StakingSkeletonEnables users to participate in staking campaigns.
CampaignCreationSkeletonProvides functionality to create staking campaigns.

Eligibility Verification

Each Skeleton facet consumes the associated eligibility interface by calling it through the diamond proxy. It does not implement the interface itself but instead delegates eligibility checks to the corresponding internal eligibility facet.

For instance, the StakingSkeleton interacts with the WhitelistedStakersFacet, which allows checking eligibility of each individual staker via the checkStakersEligibility() function:

Below is an example of the function call to check the account eligibility:

IStakersEligibilityFacet(address(this)).checkStakersEligibility(campaignId, account);

Eligibility checks ensure that only accounts meeting specific criteria can join a campaign. Developers can customize this mechanism by choosing and configuring suitable implementations.

Note

Each skeleton facet delegates eligibility checks to its internal eligibility facet, ensuring all user-facing functions are protected by access control layer. As a result, user eligibility is automatically verified during any interaction.

On this page