Fidelis security record

As of 3 Nov 2026, Fidelis has 1 audit report on Trustblock, by CertiK, dated 15 Feb 2023. That report lists no open critical findings.

Critical findings
No open critical findings
In 1 report.
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Africa Code Academy: FidelisSecurity firm: CertiKDate: Scope: Not recorded (see the report)No open critical findingsOpen · skynet.certik.com

Findings10

Statuses are the security firm’s own, from each report.

SeverityOpenAcknowledgedFixed
Critical000
High002
Medium001
Low601
LowDiscussion on assets opt-in operationsAfrica Code Academy: Fidelis · CertiK · 15 Feb 2023Open

In the `escrowconfig_2` subroutine, the manager address can call the config subroutine and let the contract opt in the three input assets. We have three questions regarding the assets opting in operations: 1. How is it ensured that the opt-in operations are performed before further asset transfers are made? 2. Related to todo, given that there could be multiple unknown assets to be transferred, how are those assets ensured to be opted in? 3. Our current understanding is that there will be two assets involved in a pool, Fidelis Trust Points and USDC. Here in the `escrowconfig_2` subroutine, there are three assets to opt-in. We would like to learn the use cases of the third asset.

Open the report
LowDiscussion on documentationAfrica Code Academy: Fidelis · CertiK · 15 Feb 2023Open

During the code audit, we browsed through the documentation and found two issues related to the business logic: 1. Can the Trust Points be freely traded? If so, trust points will have a value outside of the Fidelis project. If the price of trust points fluctuates significantly, is the impact on the loan acceptable? 2. The documentation mentioned that “Borrower can request a one-time extension initiating a grace period by completing a Fidelis approved a personal finance training course.” It seems this feature is not included in the current version of the smart contract. We would like to learn that if this would be operated off-chain?

Open the report
LowDiscussion on the coefficient of `staked_amount`Africa Code Academy: Fidelis · CertiK · 15 Feb 2023Open

In the invest subroutine, L229-236, there is a condition `require(staked_amount * 10000 >= loan_amount)`. We did not find any languages about the number `10000` in the provided documentation. We would like to learn more about the number and its design.

Open the report
LowInconsistency on the `fee` logicsAfrica Code Academy: Fidelis · CertiK · 15 Feb 2023Open

In the current implementation, `fee` is a predefined value instead of a calculated value. Our understanding is that the variable `fee` represents the interest and fees. The current implementation meets neither the development phase scenario nor the MVP deployment phase scenario, according to the documentation. ```text In the development phase, loans are issued at 15% interest: 10.5% - Fidelis as the administrator and Liquidity Partner 3.0% - Backers 1.5% - Default Pool For the MVP deployment phase: 5.5% - Fidelis as Administrator 5.0% - Liquidity Partner 3.0% - Backers 1.5% - Default Pool ```

Open the report
LowUnused variables and logicsAfrica Code Academy: Fidelis · CertiK · 15 Feb 2023Open

In the current version of the TEAL file, there are some unused variables and some unfinished subroutines: * unused global states:`start_date`, `end_date`, `beneficiary`, `stable_token` * unused local states: `"<AppID>_key"` in the `invest_0` subroutine * unused scratch spaces: slot `0`, slot `2` * unused branches: `main_l17`("force_close") and `main_l15`("check_default")

Open the report
LowUsing `return` instead of `retsub` for a subroutiAfrica Code Academy: Fidelis · CertiK · 15 Feb 2023Open

Given that `reclaim_1` is called through `callsub` and there is a `return 1` following a success call (L75-77), we believe that `reclaim_1` is a subroutine instead of a normal branch. We noticed that in the `reclaim_1` subroutine, `return` is used instead of `retsub`. The current implementation might be compiled from a PyTeal version of contract and the code flow is fine. If there is more logic to be added in the `main_l21` branch in L75, the direct `return 1` of `reclaim_1` may jump over what is after the subroutine call on L76.

Open the report

Contracts

No deployed address is recorded for these audits.

The reports name a repository or files. Open a report to see its scope.

Show this on your site

Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.

Content

Facts

Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.

Fixed as
Language

Style

Layout
Theme
Accent
Corners

Format

Size
Date
Embed as
HTML
<head>
<script src="https://widget.trustblock.run/project-widget.min.js" defer></script>
</head>
<body>
<div
data-tb-project-widget
data-tb-project-slug="fidelis"
></div>
</body>

Paste the code where the label should appear. It uses no API credit and updates by itself.

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us