As of 3 Nov 2026, zkRace has 2 audit reports by 2 security firms on Trustblock; the latest is by Hacken, dated 15 Apr 2024. Those reports list no open critical findings. It also holds 4 deployed contracts on 4 chains.
Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.
Newest first
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 1 | 0 |
| Medium | 2 | 0 | 0 |
| Low | 3 | 4 | 0 |
In the contract `DeRaceBridge`, the following roles maintain privilege on different functions: - the role `DEFAULT_ADMIN_ROLE` has authority over the following functions: - `grantRole()` will assign a privileged role to an address. - `revokeRole()` will revoke a privileged role from an address. - the role `SUPER_VALIDATOR_ROLE` has authority over the following functions: - `pause` will pause the contract. - `unpause` will restart the contract. - `skipNonce` will increase the `nonces` for one address and emit an event. - `setVersion` will update the `version`. - `migrateErc20` will transfer tokens to anyone. - `migrateErc721` will transfer NFT to anyone. - `migrateErc721Any` will transfer NFT to anyone. - the role `APPROVER_ROLE` has authority over the following functions: - `completeErc20Transfer` will transfer tokens to `msg.sender`. - `completeErc721Transfer` will transfer NFT to `msg.sender`. - `completeErc721AnyTransfer` will transfer NFT to `msg.sender`. Since the aforementioned privileged roles are working with token flow and asset transfer, Any compromise to these accounts may allow a hacker to move the funds and even drain the assets.
Open the reportWhen transferring standard ERC20 deflationary tokens, the deposited amount may not be equal to the received amount due to the charged transaction fee. As a result, an inconsistency in the amount will occur.
Open the reportFunctions that affect the status of sensitive variables should be able to emit events as notifications to customers: - `setVersion()`
Open the reportAccording to the above logic, the signature is based on the version. ```solidity=37 bytes32 digest = _hashTypedDataV4(keccak256(abi.encode( TRANSFER_TYPEHASH, msg.sender, version, nonces[msg.sender], method, token, data ))); address signer = ECDSA.recover(digest, signature); ``` If the `SUPER_VALIDATOR_ROLE` account calls the `setVersion` function to set a new version, all the transfers based on the old version suffer fail because the signature will be invalid now. Since the `DeRaceBridge` may depend on third-party cross-chain protocol/network or off-chain scripts, transfer failure may cause unpredictable effects.
Open the reportAlthough not explicitly declared, the contract `DeRaceBridge` serves as a tool to help users perform cross-chain token transfer. The cross-chain token transfer may depend on third party cross-chain protocol or off-chain scripts. The scope of the audit treats these 3rd party entities as black boxes and assume their functional correctness. However, in the real world, 3rd parties can be compromised and this may lead to lost or stolen assets. In addition, upgrades of 3rd parties can possibly create severe impacts, such as increasing fees of 3rd parties, etc.
Open the report| Address | Chain | Source code |
|---|---|---|
| 0xe1b3…6b280xe1b3eb06806601828976e491914e3de18b5d6b28 | Chain: Polygon (POS) | |
| 0xa3a2…98150xa3a2cdd230f9b3ff6e01a01534a3ed3cbf049815 | Chain: Base | Source code: Verified source |
| 0xf842…934f0xf8428a5a99cb452ea50b6ea70b052daa3df4934f | Chain: Ethereum | Source code: Verified source |
| 0x9c47…aa4e0x9c47e503b2f497e9ad9f1c0dfa6bd9fd5456aa4e | Chain: BNB Chain | Source code: Verified source |
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="zkrace"></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