0x73696d616f Profile Banner
0x73696d616f Profile
0x73696d616f

@0xSimao

Followers
1,017
Following
560
Media
25
Statuses
405

Head of Security @threesigmaxyz . LSW Sherlock #26 Cantina

Joined September 2022
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@0xSimao
0x73696d616f
23 days
The results of roughly 30 full days of work (averaging 12+ hours / day) on auditing contests since January: @Code4rena 34,500 USD @cantinaxyz 29,000 USD @sherlockdefi 21,000 USD 5 top3 placements out of 7 audits. Hard work really pays off.
37
16
377
@0xSimao
0x73696d616f
25 days
3rd place in the Arbitrum Bold contest. Thank you @code4rena for being awesome 🫡
Tweet media one
14
4
131
@0xSimao
0x73696d616f
17 days
Summary of auditing contests. @code4rena and @sherlockdefi allocate a % of the pool to top performers. Sherlock requires grinding to get this %. @HatsFinance amd @immunefi pay the first submission only (not boosts). @Cantina / @CodeHawks don't reserve a % of the pool.
Tweet media one
3
10
110
@0xSimao
0x73696d616f
1 month
1st place Exactly Protocol. Really happy for this, thank you @sherlockdefi for the opportunity!
@sherlockdefi
SHERLOCK
1 month
🏆 @exactlyprotocol Audit Contest Results 🏆 Congrats to: 1. @0xSimao - $16,494.76🥇 2. @santipu_ - $9,380.78🥈 3. @Trungore - $5,684.99🥉 @Trungore made $17,000.00 fixed pay + $5,684.99 from the contest pot! $69,000.00 rewards ➡️ $8.5M+ paid out in rewards.
1
2
14
14
0
74
@0xSimao
0x73696d616f
20 days
This is probably the best piece of advice I have gathered from over a year of auditing contests: When short on time, focus on specific parts of the codebase. Knowing 1 or 2 files well is much better than having a high-level understanding of the entire codebase.
3
1
71
@0xSimao
0x73696d616f
21 days
Must read for anyone auditing merkle proofs Intermediate nodes may be interpreted as leaves if devs are not careful. This is dangerous because info is stored in the leaves, so it would be like faking a deposit was made or an airdrop allocation
1
6
63
@0xSimao
0x73696d616f
9 days
We should stop for a moment and appreciate web3. If it wasn't for it, I would probably be making €40k / year and struggling. It's a game changer, especially for less developed countries where very talented people receive low wages.
5
1
120
@0xSimao
0x73696d616f
18 days
An important aspect of auditing that is often overlooked is finding out how to enter deep focus. This state is different for everyone and each person must find out what works for them and what doesn't
3
1
55
@0xSimao
0x73696d616f
8 months
Happy to share my latest @chainlink Staking V2 results on @code4rena . 8th place, feel like the judging could have gone more in my way, but that's how things work. Anyway, 3 valid mediums, glad to help the Chainlink ecosystem!
Tweet media one
2
0
47
@0xSimao
0x73696d616f
12 days
It's very important to always read the same pieces of code several times, even when you're confident of its purpose. For some reason the human mind does not always see the obvious so we need to force ourselves to not let this happen.
3
2
49
@0xSimao
0x73696d616f
6 months
Results are out for my first @code4rena invitational with @InitCapital_ , 2nd place. Here are the findings . One of them is a solo high which was found by accident. More on it tomorrow
Tweet media one
4
0
46
@0xSimao
0x73696d616f
29 days
2nd place Optimism Safe on @cantinaxyz . Fierce competition, was lucky to find the finding with the least dups.
Tweet media one
4
0
45
@0xSimao
0x73696d616f
13 days
Biggest red flags in smart contracts - Not using SafeERC20 - Using `.transfer()` - Wrong proxy setup - No tests - Nested ifs, loops, try/catch blocks - Overcomplicated logic If you find these, be prepared for a ride
4
6
50
@0xSimao
0x73696d616f
9 months
Reporting bugs on @immunefi is always worth it. Yes many times there won't be payouts, but you get a deep knowledge of the codebase. In the @LayerZero_Labs bounty I submitted 9 reports, 7 were rejected and 2 frontrunned by another whitehat. However, I still gained from it 👇
Tweet media one
7
2
36
@0xSimao
0x73696d616f
18 days
My 2 cents: Whoever is auditing Size on @code4rena gl on your 2 cents. Actually, this is somewhat mitigated by the introduction of the hunter and gatherer roles, which still pay well. Now more than ever it's better to spend as much time as possible on a single contest.
6
0
37
@0xSimao
0x73696d616f
1 year
Uncovered another vulnerability in the Wenwin contest at @code4rena , and it took just 3 hours this time! Looking forward to showcasing these findings. At @threesigma_xyz , we're dedicated to providing expert audits and code development services. Feel free to reach out!
Tweet media one
3
5
34
@0xSimao
0x73696d616f
1 year
Found 1 high and 3 medium severity vulnerabilities in my first 3 @code4rena contests. Really happy for it given that I entered the blockchain space 5 months ago. I must thank @threesigma_xyz for their training program, which has definitely given me a huge head start.
Tweet media one
3
7
33
@0xSimao
0x73696d616f
15 days
Ok the zktoken is down 36% since I claimed it, give me one good reason not to sell. I had fun feeling like a degen for 5 days but it's not fun anymore
11
0
31
@0xSimao
0x73696d616f
6 months
1/4 Small description of the solo high I found in the @InitCapital_ , @code4rena contest (warning; alpha at the end). When repaying debt, the protocol rounded up in its favor, so + 1 debt was repayed. This rounding would decrease the debt/shares ratio of the protocol.
3
0
30
@0xSimao
0x73696d616f
6 months
2023 recap. Finished @threesigmaxyz training program on January. 1st Playnance and 2nd Web3Berlin place hackathons. Achieved #49 ( #9 90 days leaderboard at some point) place 2023 on @Code4rena . $5k from 2 contests on @sherlockdefi . 2024 will be a great year.
5
0
29
@0xSimao
0x73696d616f
16 days
I have gone through the same experience recently and these are my exact thoughts. Arguing so much is so annoying, getting paid 0 or 10k on an issue depending on judges, the list goes on. I don't think there's a solution to this. It's on us to become stronger mentally.
@deadrosesxyz
deadrosesxyz
3 months
a small update after doing contests full-time for a month. although this month was probably one of my best ones financially, it was actually the most soul-draining experience I've had in a while. The contest game sucks and a change is needed.
15
3
155
0
0
29
@0xSimao
0x73696d616f
1 month
Had a Blast @cantinaxyz
3
0
27
@0xSimao
0x73696d616f
2 months
2 3rd places in a row in contests with huge competition. Knowing the rules of Sherlock makes such a big difference. Escalations matter just as much as skill. @sherlockdefi still has some room for improvement here.
@sherlockdefi
SHERLOCK
2 months
🏆 @ZivoeFinance Audit Contest Results 🏆 Congrats to: 1. @cergyk1337 - $8,704.34🥇 2. BoRonGod - $6,513.93🥈 3. @0xSimao - $2,653.85🥉 @cergyk1337 made $24,500.00 fixed pay + $8,704.34 from the contest pot! $80,000.00 rewards ➡️ $8.4M+ paid out in rewards.
2
3
30
3
0
27
@0xSimao
0x73696d616f
1 month
Saying it's a design choice after the contest ends for stuff that is 100% wrong but was not fixed nor documented is so annoying. If the risk exists, it should be valid. This disincentivizes finding bugs that are more nuanced, as they depend on the good will of the sponsor.
2
0
25
@0xSimao
0x73696d616f
10 days
Can we spread out contests more evenly throughout the year? We've been spoiled with many contests recently, and now going back to just 3-4 at a time seems rough. I'm getting FOMO just writing this instead of looking at VS Code
2
0
25
@0xSimao
0x73696d616f
9 months
Free medium/high vulnerability when using staticcall. When staticcall is used, but the destination contract modifies state, the transaction will revert and all the gas forwarded will be spent (63/64 of the remaining gas). Keep this in mind when you see staticcal usage.
2
1
23
@0xSimao
0x73696d616f
1 year
1/ Sharing my first (and only so far, waiting for next results) high vulnerability finding on @code4rena . It felt great because I had gotten into solidity/auditing just 2 months before. Was definitely a huge motivation boost. Let's dive in
2
0
23
@0xSimao
0x73696d616f
14 days
I know it makes sense in the literal meaning of the sentence to say the biggest contest ever but platforms truly are squeezing as much as possible out of this fact, starting to become a bit of a meme
@sherlockdefi
SHERLOCK
14 days
The biggest audit contest ever $1.35M to find bugs in @MakerDAO Endgame 🗓️ July 8th - August 5th 📍
75
161
420
3
0
21
@0xSimao
0x73696d616f
10 months
Not bad for the first audit on Sherlock!
@sherlockdefi
SHERLOCK
10 months
@perenniallabs @panprog 🏆 @perenniallabs Audit Contest Results 🏆 4. Emmanuel - $4,946.64 5. @bin2chen - $3,854.21 6. minhtrng - $3,087.81 7. @3xJanx2009 - $2,609.87 8. @VagnerAndrei98 - $1,365.53 9. n33k - $1,365.53 10. @moneyversed - $1,244.34
0
0
5
1
0
20
@0xSimao
0x73696d616f
22 days
Hodling my zk token airdrop. It's easier to fight the urge to sell when the money is offered like that.
4
1
19
@0xSimao
0x73696d616f
8 months
Happy to share this @sherlockdefi milestone, 5 High severity issues. This gamified experience certainly helps grinding contests. It's a very nice touch.
Tweet media one
1
1
18
@0xSimao
0x73696d616f
16 days
How to deal with work inertia after having paused for some time? Hard work for few months straight. Then, decreased work volume a lot for roughly 2 weeks. But now, I feel like I have a much harder time jumping to the next audit, but am much more rested. What is this paradox?
4
0
18
@0xSimao
0x73696d616f
27 days
Thank you @zksync How do I sell this or will it pump pls no bots
Tweet media one
4
0
18
@0xSimao
0x73696d616f
6 months
The conflict of interest in @zksync 's contest on @code4rena seems surprising at first, but in reality probably happens more often than what we think. Had the auditor used another wallet/username and no one would have suspected a thing. IMO KYC in these platforms is necessary.
5
0
17
@0xSimao
0x73696d616f
19 days
@banditx0x @immunefi I think Certik read this post and misinterpreted your first point
1
0
16
@0xSimao
0x73696d616f
8 months
A great strategy to maximizing profit when few audits are going on is: 1. Try to break a popular protocol on Immunefi. 2. Leverage this knowledge to crush audit contests that depend on the protocol from point 1.
1
0
14
@0xSimao
0x73696d616f
5 months
Fuzz tests can be a security trap if not built with high detail. We've seen recently an exploit that could have been detected by a fuzz test but the input variable was incorrectly limited. Writing quality fuzz tests is key, please don't do them just to fill checkboxes.
2
1
13
@0xSimao
0x73696d616f
6 months
Friendly reminder that solidity reverts when trying to cast uint8 to enum above the enum's limit. Don't be like me and lose time trying to build POCs around it only to find out it won't work.
2
0
10
@0xSimao
0x73696d616f
9 months
Free medium/high on protocols leveraging LayerZero. The endpoint's behaviour is blocking, if a relayed message reverts, the app will be DoSed. Thus, if an app does not set a minimum gas limit, it can be DoSed by sending messages with 0 gas limit.
0
2
13
@0xSimao
0x73696d616f
1 year
Got 1st place on the GameFi track in the AIBC Hackathon at @CrowdHackio by @Playnancetech ! Check out the winning game AZWorlds at Also, thank you @threesigma_xyz for this opportunity and guidance!
1
2
13
@0xSimao
0x73696d616f
1 year
One of my favourite solidity patterns is storing the hash of some content instead of the content itself. Then, in a function call, the content can be sent as an argument, hashed and compared against the stored hash. This reduces gas costs significantly and scales very well.
0
1
11
@0xSimao
0x73696d616f
1 year
Sometimes I see protocols returning items individually from a struct when they could return the whole struct. This costs more gas and makes the code unnecessarily bigger. Check my POC here .
1
3
11
@0xSimao
0x73696d616f
5 months
Now is the best time do to contests. People will be taking a break from @Blast_L2 . Please don't take comments like this seriously. It's no better than online investment advice. Truth is the auditor market can not be predicted. You may be lucky sometimes, but that's it.
3
0
12
@0xSimao
0x73696d616f
1 year
I have been looking for memory stack implementations in solidity and came across . I modified the code to a stack implementation and benchmarked it against static arrays at There is some overhead but it might fit some use cases
0
4
11
@0xSimao
0x73696d616f
10 months
1) I'm delighted to share that I secured 2nd place in the Web3Berlin hackathon, hosted by @CrowdHackio and sponsored by the @XDCFoundation ! Try out DexBook here And here is an article revealing the winners
1
2
11
@0xSimao
0x73696d616f
6 months
4/4 Funny part is, this was caught randomly while doing a POC for a separate finding, as the test was reverting for some weird reason. Conclusion: always do POCs in contests, it enhances the report quality and may get you some nasty bugs.
2
0
10
@0xSimao
0x73696d616f
5 months
Imagine people who left the auditing space in 2023 or smth, missing the crazy amount of contests/business opportunities. This is why I am grateful for having started in a bear market, no expectations. (we don't talk about bull traps or a future bear market)
1
0
10
@0xSimao
0x73696d616f
1 year
Was an awesome hackathon! Really happy with our work, we managed to implement the frontend, backend and smart contracts in just 2 days to 5 chains and it was fully functional. Thank you @threesigmaxyz and @EthPrague !
@threesigmaxyz
Three Sigma
1 year
Our team won 3rd place in the Taiko Infrastructure Prize at last week's ETH Prague Hackathon! Congratulations to both @0xCarolina and @3xJanx2009 on their achievements!
Tweet media one
1
0
21
0
1
10
@0xSimao
0x73696d616f
9 months
Later on, I saw @tapioca_dao on @code4rena , which uses LayerZero. This was a great opportunity, as I knew the LZ codebase really well. I ended up having my first 5 digit payout and 3 solo findings. In short, even if the reports are not paid, it will be valuable in the long run.
2
1
10
@0xSimao
0x73696d616f
1 year
ERC20 tokens require approval for an operator to use transferFrom. If you want to deposit an ERC20 somewhere, you need to approve first, paying 2x the gas fees. ERC1363 solves this problem with approveAndCall and other functions. Why isn't this more widely adopted?
1
0
10
@0xSimao
0x73696d616f
13 days
@cmichelio ok so just need to know what you're auditing to plan my future
1
0
9
@0xSimao
0x73696d616f
9 months
More @LayerZero_Labs alpha that can land you medium/high issues. The UltraLightNodeV2 refunds excess msg.value sent when sending cross chain transactions. Thus, it's very important to set the refund address correctly and ensure it can receive funds.
0
0
9
@0xSimao
0x73696d616f
9 months
The mindset for auditing depends greatly on the complexity of the codebase. Attempting to find bugs right away on a complex codebase might get you demotivated. The trick is spending some days figuring out everything and only then look for exploits. What's your approach?
0
1
9
@0xSimao
0x73696d616f
8 months
One key piece to achieving great results in auditing contests is improving the quality of submissions. Often times the quality of a report dictates how the issue will be judged. Issues may be rightfully overlooked or have the severity decreased due to poor report quality.
0
0
9
@0xSimao
0x73696d616f
8 months
Another solid result, #15 . I must say the competition on this contest was probably the fiercest I have seen. Not so obvious high vulnerabilities with 20 duplicates, just crazy. Found a total of 7 medium + high issues, no unique ones sadly. Better luck next time!
@sherlockdefi
SHERLOCK
8 months
@TokenReactor @xiaoming9090 @BizzyVinci @KalyanSingh2401 @berndartmueller @0xVolodya @saidamdev @nobody20185 @VagnerAndrei98 🏆 @tokenreactor Audit Contest Results 🏆 11. @0xch301 - $2,368.16 12. duc - $2,303.16 13. Aymen0909 - $2,156.95 14. carrotsmuggler - $2,099.09 15. @3xJanx2009 - $1,974.22 16. Flora - $1,793.79 17. ck - $1,396.58
1
0
3
1
0
8
@0xSimao
0x73696d616f
5 months
Stop using Foundry's expectEmit() and use getRecordedLogs() . It will give you all the emitted logs in order and its behaviour is much more intuitive.
0
0
8
@0xSimao
0x73696d616f
4 months
Small update you may have missed. Assert does not spend all gas for solidity versions above 0.8.0. Here is a detailed explanation
0
0
7
@0xSimao
0x73696d616f
6 months
Sharing this awesome resource for any1 out there dealing with Uniswap V3 . Been around for some time now but it's very helpful.
2
1
8
@0xSimao
0x73696d616f
11 days
@0xjuaan Personally I have a second monitor showing a slideshow of photos of auditing legends
0
0
7
@0xSimao
0x73696d616f
9 months
If you have little solidity knowledge this contest is good for you I highly doubt there's going to be a lot of competition, no one's talking about this. Most auditors will probably ignore it as our knowledge is mostly in solidity.
0
0
7
@0xSimao
0x73696d616f
5 months
Check out Lido's withdrawal queue . Each withdrawal request stores the cumulative withdrawal amount, not its value. This trick processes batches efficiently by subtracting the first and last requests cumulative amounts. (Yes I saw this on Blast)
0
0
7
@0xSimao
0x73696d616f
23 days
@Asniunjgh @code4rena @cantinaxyz @sherlockdefi I started learning web3 on October 2022. I have an Aerospace masters, don't think cs is necessary but 100% helps
0
0
6
@0xSimao
0x73696d616f
9 months
Thrilled to announce I got 6th place in the @tapioca_dao contest at @code4rena ! Found 3 solo Highs, in a competition with over 1500 submissions. I'm now ranked 60 in the 2023 leaderboard, having started auditing in December 2022! Check out my profile .
Tweet media one
0
0
7
@0xSimao
0x73696d616f
19 days
Ok but live testing? Why would someone do that? So weird
@CertiK
CertiK
20 days
CertiK recently identified a series of critical vulnerabilities in @krakenfx exchange which could potentially lead to hundreds of millions of dollars in losses. Starting from a finding in @krakenfx 's deposit system where it may fail to differentiate between different internal
Tweet media one
979
1K
3K
1
0
7
@0xSimao
0x73696d616f
1 year
Did you know that Uniswap's FullMath.sol relies on overflow to function properly? If working with a solidity version above 0.8.0, use FullMath.sol from the 0.8.0 branch
0
0
6
@0xSimao
0x73696d616f
8 months
Auditing contests incentivize finding weird bugs rather than obvious mistakes. Some auditors even prefer not to waste time submitting issues they know will have many duplicates. Incorrect admin assumptions hidden in the codebase/docs are a good source of unique findings.
0
0
6
@0xSimao
0x73696d616f
18 days
@cholakovv Sitting on the sofa with just my lenovo laptop in front of me
4
0
6
@0xSimao
0x73696d616f
15 days
@dethSCA @EgisSec Congrats! 4 1st places in a month is incredible
1
0
6
@0xSimao
0x73696d616f
1 year
3/ The entryPoint address was not part of the create2 salt. Knowing this, malicious users could, for example, spot wallet creations and frontrun them and set themselves as the entryPoint . If someone sent funds to the wallet, the malicious user could steal them.
1
0
6
@0xSimao
0x73696d616f
5 months
If you need to change the default python3 version in your linux environment, you can use update-alternatives. See here . This might be helpful for people doing the Blast contest, as python3.8 won't work. You need 3.9.
0
0
5
@0xSimao
0x73696d616f
1 year
Been seeing a lot this issue lately. safeApprove() from Openzeppelin SafeERC20 should not be used in most cases, use safeIncrease/DecreaseAllowance instead. Reason is safeApprove() reverts if the allowance is not 0, which can happen if the spender does not spend all tokens.
1
0
4
@0xSimao
0x73696d616f
4 months
@shealtielanz It's very unlikely someone can come up with all the attack vectors alone. Reading past reports / exploits puts these in our minds so that when the time comes we find it.
1
0
5
@0xSimao
0x73696d616f
27 days
@windhustler sir I work better late night
1
0
5
@0xSimao
0x73696d616f
9 days
@rabuawad_ Finished my masters in Aerospace Engineering and then worked 4 months in web2 making ERP software
0
0
6
@0xSimao
0x73696d616f
9 months
1
0
5
@0xSimao
0x73696d616f
1 year
Using @SoloditOfficial filter feature to confirm other auditing firms agree with a certain vulnerability. For example, should the latest solidity version be used? Solodit -> filter -> solidity version Spearbit finding:
0
0
5
@0xSimao
0x73696d616f
1 year
4/ That's it. Feeling confident about future results on 4 submitted reports, hopefully a few high vulnerabilities coming in. Looking forward to sharing here, stay tuned!
1
0
5
@0xSimao
0x73696d616f
5 months
Diffs in accounts in @Blast_L2 in the geth node. ETH balance is replaced by flags, fixed, shares and remainder. Flags select one of the 3 types of accounts. Fixed, shares and remainder represent an account's ETH shares, as it is yield bearing now.
0
0
5
@0xSimao
0x73696d616f
8 months
Let's say that a contract is pausable has a whole and has some form of borrowing where users can get liquidated. A severe price drop after a pause would get users instantly liquidated upon unpausing. It's something to consider when auditing borrowing protocols.
0
0
5
@0xSimao
0x73696d616f
8 months
Have people had success from taking breaks from auditing contests? I feel like whenever I stop I just lose momentum and then it's harder to get back on track.
5
0
5
@0xSimao
0x73696d616f
1 year
@bytes032 flag it as a vulnerability
0
0
4
@0xSimao
0x73696d616f
1 year
2/ @biconomy enabled users to deploy wallets using create2, so users would know their wallet address before deployment. The entryPoint was a privileged address of a wallet that could execute any transaction and was set on wallet deployment.
1
0
4
@0xSimao
0x73696d616f
10 months
@doychinovKrasii that nasty require invalidating your POC
1
0
3
@0xSimao
0x73696d616f
1 year
Happens everytime
@GeorgeHNTR
George Hunter
1 year
My favorite kind of solo findings in audit contests
Tweet media one
6
0
60
1
0
3
@0xSimao
0x73696d616f
6 months
2/4 The protocol had a variable tracking the total interest, which assumed that the debt is monotically increasing. The problem is that due to rouding up, the debt from the shares would actually decrease right after a repay call by 1, due to the decreased debt/shares ratio.
1
0
4
@0xSimao
0x73696d616f
7 months
0
0
0
@0xSimao
0x73696d616f
8 months
One thing I like to do is mark 'audit' in suspicious lines of code. It's really helpful when that piece of code has dependencies in other places of the codebase and I need to understand them first. Comes in handy after you've gained an understanding of the rest and come back.
0
0
4
@0xSimao
0x73696d616f
8 months
@0xnirlin Companies must keep their reputation, I don't know what you mean with 'no consequenses of missing findings'
1
0
4
@0xSimao
0x73696d616f
9 months
@maplefinance congrats!
0
0
4
@0xSimao
0x73696d616f
1 year
@bytes032 Solodit is king now
0
0
4
@0xSimao
0x73696d616f
10 months
2) DexBook is an on chain order book with off chain order matching. It boasts a list of price brackets, each pointing to a list of orders. Insertion hints help reducing costs. A neural network provides price predictions, based on the previous 10 days.
0
0
4
@0xSimao
0x73696d616f
2 years
A 𝐻𝑒𝑙𝑙𝑜 𝑊𝑜𝑟𝑙𝑑 solidity tweet. Solidity supports visibility and mutability modifiers, whose differences are shown in the attached tables. We can also declare custom modifiers, such as 𝑜𝑛𝑙𝑦𝑂𝑤𝑛𝑒𝑟 from OpenZeppelin. Source:
Tweet media one
0
1
4
@0xSimao
0x73696d616f
1 year
My favorite detail that could lead to vulnerabilities is the requirement to set the USDT approval to 0 before changing it, as shown in line 199 at . What's yours?
0
0
3
@0xSimao
0x73696d616f
6 months
@0x3b338 a bit strange ngl
0
0
3
@0xSimao
0x73696d616f
21 days
@BenBurgerLG @code4rena @cantinaxyz @sherlockdefi Here is the trick, when short on time, focus on very specific parts of the codebase. Focused hours are also key, not just staring at the monitor mindlessly
0
0
2
@0xSimao
0x73696d616f
5 months
0
0
3
@0xSimao
0x73696d616f
6 months
3/4 Thus, the next time repayed was called, the same shares were worth less debt, leading to the total interest update reverting (remember, debt monotonically increasing). Attackers could then frontrun liquidators with a repay 1 call, making the real liquidation tx revert.
1
0
3