Core Concepts
Calling Contracts
Smart contracts that invoke policies—configure which rules they must follow.
A calling contract is any smart contract that invokes the Forte Rules Engine to check a policy.
To link a calling contract to a policy, an admin configures a list of policies to check before (or during) that contract’s execution.
Who Can Configure It?
Each calling contract has a Calling Contract Admin. This address:
- Adds or removes policies from the contract’s policy set
- Defines the order in which policies are evaluated
- Can cement the policy set (making it unchangeable)
The calling contract must implement logic to invoke the Forte Rules Engine.
Policy Evaluation Order
You can configure a calling contract to check:
- One policy
- Multiple policies (in a defined order)
Each policy is checked in sequence. If one reverts, execution halts.
Cementing the Policy Set
Calling Contract Admins may cement the contract’s policy set. This prevents any future updates to:
- Add or remove policies
- Reorder the evaluation sequence
It’s recommended not to cement a policy set if the policies within it are still mutable.
Best Practices
- Keep policy order intentional—later policies may depend on earlier tracker updates
- Avoid circular dependencies or unintended revert chains
Example Use Cases
- ERC-20 token calling policies to enforce transfer limits
- NFT minting contract checking user eligibility from external sources
- Governance contract requiring KYC or holding thresholds