๐Ÿ“ฆ

Audit History

lifi-stablecoin-swap - 2 audits

Version comparison

Capability and finding changes across audited versions, newest first.

VersionDateResultReview itemsChange vs previous
v2 LatestJul 19, 2026, 10:53 AM 4 confirmed8No capability change
v1 Jul 9, 2026, 11:46 PM No confirmed findings0Baseline

Jul 19, 2026, 10:53 AM

Most command, filesystem, and reconnaissance detections are false positives caused by Markdown and TypeScript syntax. The quickstart exposes an integrator credential and performs wallet writes without validating the connected chain. It also hides transaction costs and uses unpinned package installation commands.

2
Files scanned
526
Lines analyzed
16
Review items
0
False positives ignored

Confirmed security concerns (4)

High
Environment file access
const KEY = process.env.NEXT_PUBLIC_LIFI_INTEGRATOR_KEY!;
NEXT_PUBLIC_LIFI_INTEGRATOR_KEY is consumed by client-side code, making the integrator credential visible in the browser bundle. That exposure can enable unauthorized use of the integrator account.
High
Connected Chain Is Not Validated Before Wallet Writes
The Base allowance check is followed by wallet writes using wallet.chain without asserting Base. A different connected chain can target unintended same-address contracts.
The code fixes the read client and token constants to Base but passes the current wallet chain into both transaction writes. No chain assertion or switch appears before approval or order opening.
High
Financial Costs and Settlement Mechanics Are Hidden
The guidance says to keep gas, spreads, and solver mechanics off screen and show no fee field. The same flow requires approval and escrow transactions.
The concealment instruction is explicit, while the documented flow includes signed on-chain transactions that can incur source-chain gas and settlement risk.
Medium
Quickstart Installs Unpinned Packages
The quickstart runs create-next-app at the latest version and installs dependencies without exact versions. Future package changes can alter generated behavior or introduce supply-chain risk.
The commands explicitly use the latest scaffold and omit dependency versions. Reproducing the guide later can therefore resolve different code.
Capability review items (8)

These are real local capabilities that may be expected for this skill, so they require review but are not counted as confirmed malicious behavior.

High
Environment variable access (dot notation)
const KEY = process.env.NEXT_PUBLIC_LIFI_INTEGRATOR_KEY!;
The client quickstart reads NEXT_PUBLIC_LIFI_INTEGRATOR_KEY, which is embedded in the browser bundle. This exposes the integrator credential to every application user.
High
Environment variable object
const KEY = process.env.NEXT_PUBLIC_LIFI_INTEGRATOR_KEY!;
The client quickstart reads NEXT_PUBLIC_LIFI_INTEGRATOR_KEY, which is embedded in the browser bundle. This exposes the integrator credential to every application user.
Low
Fetch API call
const res = await fetch(
This code or instruction contacts the external order.li.fi status service with an order identifier. The request is expected functionality, but it is real network access.
Low
Hardcoded URL ยท 2 occurrences
`https://order.li.fi/orders/status?onChainOrderId=${orderId}`,
This code or instruction contacts the external order.li.fi status service with an order identifier. The request is expected functionality, but it is real network access.
Low
Fetch API call
const status = await fetch(
This code or instruction contacts the external order.li.fi status service with an order identifier. The request is expected functionality, but it is real network access.
Low
Hardcoded URL
Poll `GET https://order.li.fi/orders/status?onChainOrderId=<orderId>`:
This code or instruction contacts the external order.li.fi status service with an order identifier. The request is expected functionality, but it is real network access.
Low
Hardcoded URL
**Quote** โ€” `POST https://order.li.fi/quote/request` (under your integrator key):
This instruction sends quote requests to the external order.li.fi service under an integrator identity. The request is expected functionality, but it is real network access.
Audited by: codex

Jul 9, 2026, 11:46 PM

All 90 static findings are false positives caused by Markdown code spans, TypeScript template literal syntax, relative imports, expected LI.FI API URLs, and documented environment setup. The skill is integration documentation and does not include hidden code execution, secret collection, prompt injection, or exfiltration intent.

2
Files scanned
535
Lines analyzed
4
Review items
0
False positives ignored
Audited by: codex