GoldFinger Info
GoldFinger is an innovative platform committed to bridging premium yield-generating real-world assets (RWA) with the Web3 ecosystem. The convergence of blockchain technology and traditional finance is reshaping how real-world assets (RWA) are accessed, managed, and traded. By leveraging decentralized networks, transparency, and programmable smart contracts, it is now possible to unlock the liquidity and efficiency of high-quality, yield-generating assets—such as commodities, real estate, and financial instruments—within the Web3 ecosystem.
TrustNet Score
The TrustNet Score evaluates crypto projects based on audit results, security, KYC verification, and social media presence. This score offers a quick, transparent view of a project's credibility, helping users make informed decisions in the Web3 space.
Real-Time Threat Detection
Real-time threat detection, powered by Cyvers.io,
is currently not
activated
for this project.
This advanced feature provides continuous monitoring and instant alerts to safeguard your assets from potential security threats. Real-time detection enhances your project's security by proactively identifying and mitigating risks.
For more information, click here.
Security Assessments
Summary and Final Words
No crucial issues found
The contract does not contain issues of high or medium criticality. This means that no known vulnerabilities were found in the source code.
Contract owner can mint
It is possible to mint new tokens.
Contract owner can blacklist addresses
It is possible to lock user funds by blacklisting addresses.
Contract owner cannot set high fees
The fees, if applicable, can be a maximum of 25% or lower. The contract can therefore not be locked. Please take a look in the comment section for more details.
Token transfer can be locked
Owner can lock user funds with owner functions.
Token cannot be burned
There is no burning within the contract without any allowances
Ownership is not renounced
The owner retains significant control, which could potentially be used to modify key contract parameters.
Contract is not upgradeable
The contract does not use proxy patterns or other mechanisms to allow future upgrades. Its behavior is locked in its current state.
Scope of Work
This audit encompasses the evaluation of the files listed below, each verified with a SHA-1 Hash. The team referenced above has provided the necessary files for assessment.
The auditing process consists of the following systematic steps:
- Specification Review: Analyze the provided specifications, source code, and instructions to fully understand the smart contract's size, scope, and functionality.
- Manual Code Examination: Conduct a thorough line-by-line review of the source code to identify potential vulnerabilities and areas for improvement.
- Specification Alignment: Ensure that the code accurately implements the provided specifications and intended functionalities.
- Test Coverage Assessment: Evaluate the extent and effectiveness of test cases in covering the codebase, identifying any gaps in testing.
- Symbolic Execution: Analyze the smart contract to determine how various inputs affect execution paths, identifying potential edge cases and vulnerabilities.
- Best Practices Evaluation: Assess the smart contracts against established industry and academic best practices to enhance efficiency, maintainability, and security.
- Actionable Recommendations: Provide detailed, specific, and actionable steps to secure and optimize the smart contracts.
A file with a different Hash has been intentionally or otherwise modified after the security review. A different Hash may indicate a changed condition or potential vulnerability that was not within the scope of this review.
Final Words
The following provides a concise summary of the audit report, accompanied by insightful comments from the auditor. This overview captures the key findings and observations, offering valuable context and clarity.
Ownership Privileges
- The owner can add the vault and bridge contract address.
- The owner can add or remove an admin in the contract.
- The owner or admin can mint an unlimited amount of tokens in the contract.
- The owner or admin can blacklist users from transferring tokens for an indefinite period of time.
- The owner or admin can blackist multiple wallets in batches.
- The owner or admin can burn tokens from blacklisted wallets without any allowance.
- The owner can pause or unpause the functionalities in the contract.
- The owner can rescue tokens and ETH from the contract.
Note - This Audit report consists of a security analysis of the ARTToken smart contract. This analysis did not include functional testing (or unit testing) of the contract’s logic. Moreover, we only audited the mentioned contract for the GoldFinger team. Other contracts associated with the project were not audited by our team. We recommend investors do their own research before investing.
Files and details
Functions
public
/
State variables
public
/
Total lines
of code
/
Capabilities
Hover on items
/
Findings and Audit result
high Issues | 2 findings
Acknowledged
#1 high Issue
Administrative Minting Function Serves as a Backdoor to Create Unbacked Tokens
The ARTToken contract, intended to represent a fully collateralized gold-backed asset, contains a vulnerability in its public mint function. This function is restricted by an onlyAdminOrOwner modifier, granting privileged accounts the unilateral ability to create an unlimited number of ARTTokens for any address without requiring any corresponding collateral deposit. The existence of this function completely undermines the token's core value proposition of being backed by a real-world asset. A malicious or compromised admin could exploit this function to mint infinite unbacked tokens, which could then be sold on the open market or redeemed through the ARTVault to drain all of the protocol's legitimate liquidity and collateral, resulting in a total loss of user funds.
Resolved
#2 high Issue
Administrators Can Unilaterally Burn Tokens From Any Blacklisted Address
The burnBlacklisted function introduces a severe custodial risk by granting owner and admin accounts the ability to unilaterally burn (destroy) ARTTokens directly from any address that has been blacklisted. This function does not require any prior approval or allowance from the token holder. This mechanism goes beyond simply freezing assets; it allows for the direct and permanent seizure of user funds by a privileged role. A malicious or compromised administrator could first blacklist a user and then immediately call this function to destroy their entire token balance, effectively stealing their assets without leaving a trace of a transfer to their own wallet. This functionality is an extreme form of centralization that completely violates the principle of user self-custody and exposes the protocol to significant abuse and legal risks.
medium Issues | 3 findings
Acknowledged
#1 medium Issue
Missing validation for contract.
The setVault and setBridge functions in the ARTToken contract allow the owner to assign the addresses for the minting/burning vault and cross-chain bridges. These roles are critical and are implicitly expected to be functional smart contracts. However, the functions lack any validation to ensure that the provided addresses are indeed contracts and not regular wallet addresses (EOAs). If the owner were to accidentally set the vault address to an EOA, the entire system's ability to mint or redeem the gold-backed ARTToken would be permanently and irreversibly broken, as an EOA cannot execute the code required to manage the token supply.
Acknowledged
#2 medium Issue
Centralized, Indefinite Blacklisting Poses Custodial Risk to User Funds
The setBlacklisted and setBlacklistedBatch functions grant owner and admin accounts the unilateral and unchecked power to blacklist any user address. Once an address is blacklisted, all of its ARTToken funds are effectively frozen indefinitely, as the overridden _update function blocks all transfers to and from that address. The protocol lacks any mechanism for appeal, a time limit on the blacklist duration, or a governance process to challenge or review these decisions. This creates a significant centralization risk, effectively giving administrators custodial control over user assets. A malicious or compromised admin could abuse this power to permanently freeze the funds of legitimate users, while even a well-intentioned admin could make an irreversible mistake. This functionality fundamentally undermines the principles of self-custody and trustlessness expected in a decentralized protocol.
Acknowledged
#3 medium Issue
Centralized and Indefinite Pausing Power Creates Full Custodial Risk Over All User Assets
The pause function in the ARTToken contract provides owner and admin accounts with the unilateral ability to halt all token transfers and balance-update operations across the entire protocol. Because the check is implemented in the _update function, it effectively freezes every user's assets instantly. The protocol does not include any mechanism to limit the duration of this pause, meaning an administrator could freeze the system for an indefinite period. This functionality centralizes an extreme level of control, transforming a supposedly self-custodial token into a de facto custodial one where users can be denied access to their funds at any time, for any reason, without a transparent process or right of appeal. A compromised or malicious admin could exploit this to hold the entire system's assets hostage.
informational Issues | 1 findings
Resolved
#1 informational Issue
Floating pragma solidity version.
Adding the constant version of solidity is recommended, as this prevents the unintentional deployment of a contract with an outdated compiler that contains unresolved bugs.