As of 3 Nov 2026, Talentir Token & Marketplace has 1 audit report on Trustblock, by Quantstamp, dated 11 Apr 2023. That report lists no open critical findings.
Record last updated . It holds audits and findings, contracts and incidents up to Nov 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| Talentir Token & Marketplace | Security firm: Quantstamp | Date: | Scope: Files named in the report | No open critical findings | Open · certificate.quantstamp.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 2 |
| Medium | 2 | 0 | 0 |
| Low | 1 | 5 | 9 |
Function `TalentirMarketplaceV1.cancelOrders()` may be front-runnable. This may be abused when the order owner wants to cancel one or more unfavorable market orders, while the front-runner observes pending transactions in the mempool, determines their profitability and executes a corresponding filling order with higher gas costs than that of the `cancelOrders()` call in order to have it executed before.
Open the reportThe `TalentirTokenV1` contract uses OpenSea's operator filter registry in order to blacklist the addresses and bytecode of markets that do not respect creator royalties. However, it is important to realize that the blacklist is not exhaustive, and it is still technically possible to circumvent creator royalties through a market that has not yet been blacklisted.
Open the reportCertain contracts have state variables, e.g. `owner`, which provide certain addresses with privileged roles. Such roles may pose a risk to end-users. The `TalentirTokenV1.sol` contract contains the following privileged roles: 1. An administrative/[Owner role](https://docs.openzeppelin.com/contracts/2.x/access-control#ownership-and-ownable) (`_owner`, `onlyOwner()` modifier), as initialized during the `constructor()` execution to `msg.sender`: 1. Assign a new `_owner` address by calling `transferOwnership()`. 1. Renounce the role (**and thereby preventing any future calls to the followingly listed funcitons!**) by calling `renounceOwnership()`. 1. Pause/Unpause certain contract functionality by calling `pause()`/`unpause()`: 1. The minting of new tokens (`mint()`). 1. Approving addreses for all token transfers (`setApprovalForAll()`). 1. Transfer multiple amounts of the same token id to different addresses (`batchTransfer()`). 1. Perform token transfers (`safeTransferFrom()`). 1. Perform token transfers of multiple token id's and amounts(`safeBatchTransferFrom()`). 1. Change the royalty percentage for all tokes (any value up to `10%`) by calling `setRoyalty()`. 1. Change the minter role address by calling `setMinterRole()`. 1. Change the marketplace address by calling `setMarketplace()`. 1. A minter role (`_minterAddress`, `onlyMinter()` modifier) as set through the owner role (`_owner`) by calling `setMinterRole()`: 1. Mint new tokens by calling `mint()`. 1. **Arbitrarily transfer tokens on others behalf as being approved for all transfers until manually revoked by the talent/token owner by calling `setApprovalForAll(_minterAddress, false)`.** 1. Add/Remove addresses from being able to buy any tokens during presales (`hasGlobalPresaleAllowance[addr]`) by calling `setGlobalPresaleAllowance()`. 1. Add/Remove addresses from being able to buy specific tokens during presales (`hasTokenPresaleAllowance[addr][token]`) by calling `setTokenPresaleAllowance()`. 1. End the presale phase for any token at any time (thereby opening up the transfer to all addresses) by calling `endPresale()`. 1. Token transfers may be blocked (`batchTransfer()`, `safeTransferFrom()` and `safeBatchTransferFrom()`), due to the use of "Operators filterer" as defined/governed by [OpenSea's operator-filter-registry](https://github.com/ProjectOpenSea/operator-filter-registry/tree/v1.4.0) (with [address 0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6](https://github.com/ProjectOpenSea/operator-filter-registry/blob/v1.4.0/src/lib/Constants.sol) being the filter contract address at version 1.4.0, at the time of publishing this report). 1. A marketplace address, as set through `setMarketplace()` by the owner role (`_owner`): 1. **Arbitrarily transfer tokens on others behalf as being approved for all transfers until manually revoked by the talent/token owner by calling `setApprovalForAll(_minterAddress, false)`.** The `TalentirTokenV1.sol` contract contains the following privileged roles: 1. An administrative/[Owner role](https://docs.openzeppelin.com/contracts/2.x/access-control#ownership-and-ownable) (`_owner`, `onlyOwner()` modifier), as initialized during the `constructor()` execution to `msg.sender`: 1. Assign a new `_owner` address by calling `transferOwnership()`. 1. Renounce the role (**and thereby preventing any future calls to the followingly listed funcitons!**) by calling `renounceOwnership()`. 1. Pause/Unpause certain contract functionality by calling `pause()`/`unpause()`: 1. Creating sell orders (`makeSellOrder()`). 1. Creating buy orders (`makeBuyOrder()`). 1. Change the Talentir fees (order fees) up to 10% at any time (`setTalentirFee()`). 1. Change the Talentir fee receiving address (`talentirFeeWallet`) at any time (`setTalentirFee()`).
Open the reportIf a user makes a buy/sell order with `_addOrderForRemaining == False`, then if the user input price is greater/lower than the `bestPrice` at the moment, their transaction will go through and and they will have effectively accomplished nothing. This could be particularly frustrating if the matching `bestPrice` existed at the time of submitting their transaction.
Open the reportWithin the `TalentirTokenV1.mint()` function, approval is given for all tokens belonging to the receiver of the minted tokens to both the `_approvedMarketplace` and the `minterAddress`. The Talentir team explained that the `minterAddress` represents their backend which should automatically place the first order on the market. However, there appears to be no reason for the approval of the `_approvedMarketplace`.
Open the reportThe reports name a repository or files. Open a report to see its scope.
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.
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.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-tb-project-slug="talentir-token-marketplace"></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