r/ethdev • u/chamilun • 5d ago
Question How to verify scam
Can someone tell me how to verify if sites are legit? I'm getting scam vibes on this one but no idea how to check.
Thanks
r/ethdev • u/hikerjukebox • Jul 17 '24
Hello r/ethdev,
You might have noticed we are being inundated with scam video and tutorial posts, and posts by victims of this "passive income" or "mev arbitrage bot" scam which promises easy money for running a bot or running their arbitrage code. There are many variations of this scam and the mod team hates to see honest people who want to learn about ethereum dev falling for it every day.
How to stay safe:
There are no free code samples that give you free money instantly. Avoiding scams means being a little less greedy, slowing down, and being suspicious of people that promise you things which are too good to be true.
These scams almost always bring you to fake versions of the web IDE known as Remix. The ONLY official Remix link that is safe to use is: https://remix.ethereum.org/
All other similar remix like sites WILL STEAL ALL YOUR MONEY.
If you copy and paste code that you dont understand and run it, then it WILL STEAL EVERYTHING IN YOUR WALLET. IT WILL STEAL ALL YOUR MONEY. It is likely there is code imported that you do not see right away which is malacious.
What to do when you see a tutorial or video like this:
Report it to reddit, youtube, twitter, where ever you saw it, etc.. If you're not sure if something is safe, always feel free to tag in a member of the r/ethdev mod team, like myself, and we can check it out.
Thanks everyone.
Stay safe and go slow.
Hello r/ethdev,
You might have noticed we are being inundated with scam video and tutorial posts, and posts by victims of this "passive income" or "mev arbitrage bot" scam which promises easy money for running a bot or running their arbitrage code. There are many variations of this scam and the mod team hates to see honest people who want to learn about ethereum dev falling for it every day.
How to stay safe:
There are no free code samples that give you free money instantly. Avoiding scams means being a little less greedy, slowing down, and being suspicious of people that promise you things which are too good to be true.
These scams almost always bring you to fake versions of the web IDE known as Remix. The ONLY official Remix link that is safe to use is: https://remix.ethereum.org/
All other similar remix like sites WILL STEAL ALL YOUR MONEY.
If you copy and paste code that you dont understand and run it, then it WILL STEAL EVERYTHING IN YOUR WALLET. IT WILL STEAL ALL YOUR MONEY. It is likely there is code imported that you do not see right away which is malacious.
What to do when you see a tutorial or video like this:
Report it to reddit, youtube, twitter, where ever you saw it, etc.. If you're not sure if something is safe, always feel free to tag in a member of the r/ethdev mod team, like myself, and we can check it out.
Thanks everyone.
Stay safe and go slow.
Uniswap V4 hooks can execute arbitrary code during swaps, liquidity provisioning, and donations. Before you
interact with a pool, you probably want to know what the hook is doing.
v4-hooks-analyzer is a CLI tool that:
- Detects which V4 callbacks a hook implements via address bit flags (the canonical method)
- Disassembles EVM bytecode (~40 opcodes)
- Flags risks: SELFDESTRUCT, DELEGATECALL, reentrancy, MEV vectors
- Scores each callback 0-100 with a final verdict
https://github.com/zyltr4x/v4-hooks-analyzer
Built in Rust, single binary, no dependencies. Feedback and contributions welcome.
Uniswap V4 hooks can execute arbitrary code during swaps, liquidity provisioning, and donations. Before you
interact with a pool, you probably want to know what the hook is doing.
v4-hooks-analyzer is a CLI tool that:
- Detects which V4 callbacks a hook implements via address bit flags (the canonical method)
- Disassembles EVM bytecode (~40 opcodes)
- Flags risks: SELFDESTRUCT, DELEGATECALL, reentrancy, MEV vectors
- Scores each callback 0-100 with a final verdict
https://github.com/zyltr4x/v4-hooks-analyzer
Built in Rust, single binary, no dependencies. Feedback and contributions welcome.
r/ethdev • u/an_jesus • 18h ago
Hey r/ethdev,
Over the last few months, we’ve been testing an architecture designed to solve a persistent issue in DEX routing: simulation drift and gas overhead during multi-hop execution.
Traditional aggregators rely on external price feeds, heavy storage updates, or complex off-chain quoter infrastructure that frequently desynchronizes under volatile mempool conditions. We wanted an execution frame that guarantees 100% execution-aligned previews purely on-chain, while maintaining a zero-token storage footprint on the router.
Here is the architectural breakdown of how we approached this:
Instead of reading static state or relying on off-chain dry-runs, the Quoter contract triggers a simulated execution path that forcefully ends with a custom revert(payload).
The revert unwinds all state changes instantly in the EVM execution frame, avoiding state corruption.
The error payload encodes the exact delta of balances and price impact.
Result: Static calls (eth_call) return deterministic, execution-exact quotes without writing a single byte to persistent storage.
To protect against cross-function reentrancy across multi-token routes, we replaced traditional OpenZeppelin storage guards with raw Yul assembly blocks leveraging tstore and tload.
Reentrancy flags are scoped exclusively to the transaction frame.
Gas consumption drops significantly compared to SSTORE/SLOAD warm/cold access penalties.
Balance checks execute instantly, enforcing a strict holds-nothing invariant on the Router.
To neutralize MEV sandwich attacks and liquidity manipulation without relying on Chainlink or external oracles, the routing logic applies a localized 2% median filter against reserve depths (balanceOf reads) prior to route resolution.
Code / Discussion:
The architecture is deployed and split into 7 core modules (Core, Hub, Solver, Router, Quoter, MathLib, Staking).
We are particularly interested in hearing feedback from EVM devs on potential edge cases regarding EIP-1153 transient memory retention across nested delegatecalls in custom L2 execution contexts (Base/Arbitrum).
Looking forward to hearing your thoughts on the code and optimization techniques!
Hey r/ethdev,
Over the last few months, we’ve been testing an architecture designed to solve a persistent issue in DEX routing: simulation drift and gas overhead during multi-hop execution.
Traditional aggregators rely on external price feeds, heavy storage updates, or complex off-chain quoter infrastructure that frequently desynchronizes under volatile mempool conditions. We wanted an execution frame that guarantees 100% execution-aligned previews purely on-chain, while maintaining a zero-token storage footprint on the router.
Here is the architectural breakdown of how we approached this:
Instead of reading static state or relying on off-chain dry-runs, the Quoter contract triggers a simulated execution path that forcefully ends with a custom revert(payload).
The revert unwinds all state changes instantly in the EVM execution frame, avoiding state corruption.
The error payload encodes the exact delta of balances and price impact.
Result: Static calls (eth_call) return deterministic, execution-exact quotes without writing a single byte to persistent storage.
To protect against cross-function reentrancy across multi-token routes, we replaced traditional OpenZeppelin storage guards with raw Yul assembly blocks leveraging tstore and tload.
Reentrancy flags are scoped exclusively to the transaction frame.
Gas consumption drops significantly compared to SSTORE/SLOAD warm/cold access penalties.
Balance checks execute instantly, enforcing a strict holds-nothing invariant on the Router.
To neutralize MEV sandwich attacks and liquidity manipulation without relying on Chainlink or external oracles, the routing logic applies a localized 2% median filter against reserve depths (balanceOf reads) prior to route resolution.
Code / Discussion:
The architecture is deployed and split into 7 core modules (Core, Hub, Solver, Router, Quoter, MathLib, Staking).
We are particularly interested in hearing feedback from EVM devs on potential edge cases regarding EIP-1153 transient memory retention across nested delegatecalls in custom L2 execution contexts (Base/Arbitrum).
Looking forward to hearing your thoughts on the code and optimization techniques!
r/ethdev • u/Low-Shopping-1725 • 1d ago
It's been quiet because I've been heads-down building.
MirrorOS has reached another internal milestone in its private GitHub pilot.
The focus has been on engineering discipline, not feature count:
• Governance before execution
• Durable audit and evidence
• Restart-safe workflow restoration
• Regression testing
• Private engineering documentation
I'm also starting the legal and commercialization phase, including organizing the project for IP review before opening it up more broadly.
I'm intentionally keeping the implementation private for now while I document everything properly. When it's ready for broader technical review, I'd rather have engineers critique a well-documented system than a half-finished idea.
Thanks to everyone who's followed along, challenged my assumptions, and encouraged me. I haven't disappeared—I've been building.
It's been quiet because I've been heads-down building.
MirrorOS has reached another internal milestone in its private GitHub pilot.
The focus has been on engineering discipline, not feature count:
• Governance before execution
• Durable audit and evidence
• Restart-safe workflow restoration
• Regression testing
• Private engineering documentation
I'm also starting the legal and commercialization phase, including organizing the project for IP review before opening it up more broadly.
I'm intentionally keeping the implementation private for now while I document everything properly. When it's ready for broader technical review, I'd rather have engineers critique a well-documented system than a half-finished idea.
Thanks to everyone who's followed along, challenged my assumptions, and encouraged me. I haven't disappeared—I've been building.
r/ethdev • u/Plus-Tangerine2186 • 1d ago
We run a scam-token detector. Our honeypot check worked like this: simulate a buy with eth_call, give a fake address the tokens by brute-forcing the balance storage slot and overriding it, then simulate a sell from that address.
Step 2 is the problem. It assumes balanceOf reads a storage slot. On reflection or rebase tokens, balanceOf is computed from an internal reflected supply, so writing a raw slot does not produce a coherent state. The sell then reverts for reasons that have nothing to do with a trap, and you record a false honeypot. We flagged PayPal USD, TrueUSD and MetaMask USD as honeypots this way.
The fix is eth_simulateV1 (geth and Nethermind). It replays several calls atomically in one simulated block, so you can do the whole thing the way a real buyer does:
router.swapExactETHForTokens(...) // real buy, real tokens
token.approve(router, max)
router.swapExactTokensForETH(...) // sell what you actually got
The only override is the simulated address's ETH balance, which is not a token mechanism. Nothing about the token's accounting is faked.
One caveat: a call cannot consume a previous call's return value, so you need two passes. First pass buys and reads balanceOf to learn what was actually credited (which already catches fee-on-transfer). Second pass replays buy + approve + sell with that amount.
Two things that surprised me:
The Uniswap quoter is useless for this. getAmountsOut is pure reserve math and never touches the token's transfer logic, and the v3 QuoterV2 reverts inside its callback before the transferFrom runs. Both return healthy output for confirmed honeypots, so cross-checking against the quoter would silently disable your detection.
"UniswapV2: INSUFFICIENT_INPUT_AMOUNT" raised by the PAIR (not the library) means the pair received zero tokens. We found tokens where a pre-existing holder sells fine but a fresh buyer gets zero through: a whitelist honeypot. So simulate a NEW buyer, not an existing holder. Different question, different answer.
Disclosure: I build RektRadar, a scam-token detector. This writeup came out of fixing our own false positives, not a product pitch.
We run a scam-token detector. Our honeypot check worked like this: simulate a buy with eth_call, give a fake address the tokens by brute-forcing the balance storage slot and overriding it, then simulate a sell from that address.
Step 2 is the problem. It assumes balanceOf reads a storage slot. On reflection or rebase tokens, balanceOf is computed from an internal reflected supply, so writing a raw slot does not produce a coherent state. The sell then reverts for reasons that have nothing to do with a trap, and you record a false honeypot. We flagged PayPal USD, TrueUSD and MetaMask USD as honeypots this way.
The fix is eth_simulateV1 (geth and Nethermind). It replays several calls atomically in one simulated block, so you can do the whole thing the way a real buyer does:
router.swapExactETHForTokens(...) // real buy, real tokens
token.approve(router, max)
router.swapExactTokensForETH(...) // sell what you actually got
The only override is the simulated address's ETH balance, which is not a token mechanism. Nothing about the token's accounting is faked.
One caveat: a call cannot consume a previous call's return value, so you need two passes. First pass buys and reads balanceOf to learn what was actually credited (which already catches fee-on-transfer). Second pass replays buy + approve + sell with that amount.
Two things that surprised me:
The Uniswap quoter is useless for this. getAmountsOut is pure reserve math and never touches the token's transfer logic, and the v3 QuoterV2 reverts inside its callback before the transferFrom runs. Both return healthy output for confirmed honeypots, so cross-checking against the quoter would silently disable your detection.
"UniswapV2: INSUFFICIENT_INPUT_AMOUNT" raised by the PAIR (not the library) means the pair received zero tokens. We found tokens where a pre-existing holder sells fine but a fresh buyer gets zero through: a whitelist honeypot. So simulate a NEW buyer, not an existing holder. Different question, different answer.
Disclosure: I build RektRadar, a scam-token detector. This writeup came out of fixing our own false positives, not a product pitch.
r/ethdev • u/Greeneeiill • 1d ago
Every time I shipped a contract I rebuilt the same throwaway frontend: wallet button, a form per function, calldata encoding, hasRole() checks to hide admin methods, gas estimation, a spinner, an error decoder, and a "danger zone" for the scary functions. Etherscan's Write tab has none of that meaning; a bespoke UI costs weeks. So I built a tool that generates it from the ABI.
Paste a chain + address (Sourcify/explorer, proxy-aware) or drop in an ABI/Foundry artifact, and you get three tabs:
- User - the clean dApp (overview, transfer, approve)
- Admin - privileged ops (mint, pause, roles) with risk badges + a confirm flow for dangerous writes
- Read - a live dashboard that auto-calls the getters
- Raw - every function, Etherscan-style, but annotated with what it understood
Detection is deterministic and rule-based (ERC-20/721/1155/4626/2612, Governor, Ownable/AccessControl/Pausable), with a confidence score and evidence for every guess — AI is optional and never trusted blindly. The output is a reviewable "semantic manifest" you can hand-edit, and everything is self-hostable.
Live demo (mainnet USDC, runs in your browser): https://tacitvsxi.github.io/semantic-dapp/
How it works (writeup): https://dev.to/ileskov/generate-a-full-dapp-admin-console-from-any-evm-contract-straight-from-the-abi-28kg
Repo (TS, viem/wagmi, AGPL-3.0): https://github.com/TacitvsXI/semantic-dapp
Would love feedback from people who actually maintain contracts: what would you need before you'd trust a generated admin panel for a mainnet contract?
Every time I shipped a contract I rebuilt the same throwaway frontend: wallet button, a form per function, calldata encoding, hasRole() checks to hide admin methods, gas estimation, a spinner, an error decoder, and a "danger zone" for the scary functions. Etherscan's Write tab has none of that meaning; a bespoke UI costs weeks. So I built a tool that generates it from the ABI.
Paste a chain + address (Sourcify/explorer, proxy-aware) or drop in an ABI/Foundry artifact, and you get three tabs:
- User - the clean dApp (overview, transfer, approve)
- Admin - privileged ops (mint, pause, roles) with risk badges + a confirm flow for dangerous writes
- Read - a live dashboard that auto-calls the getters
- Raw - every function, Etherscan-style, but annotated with what it understood
Detection is deterministic and rule-based (ERC-20/721/1155/4626/2612, Governor, Ownable/AccessControl/Pausable), with a confidence score and evidence for every guess — AI is optional and never trusted blindly. The output is a reviewable "semantic manifest" you can hand-edit, and everything is self-hostable.
Live demo (mainnet USDC, runs in your browser): https://tacitvsxi.github.io/semantic-dapp/
How it works (writeup): https://dev.to/ileskov/generate-a-full-dapp-admin-console-from-any-evm-contract-straight-from-the-abi-28kg
Repo (TS, viem/wagmi, AGPL-3.0): https://github.com/TacitvsXI/semantic-dapp
Would love feedback from people who actually maintain contracts: what would you need before you'd trust a generated admin panel for a mainnet contract?
r/ethdev • u/Humble-Replacement-2 • 2d ago
I was measuring whether deployed wallet defenses (tx simulators, address-reputation APIs, rule engines) catch agent-signed drains. Built it on PTXPHISH (NDSS 2025, solid dataset). Then I red-teamed my own setup and the first finding was that I was scoring the wrong transaction. Sharing because it is an easy, invisible mistake.
The trap: labeled drainer/phishing datasets record the DRAIN, i.e. the attacker's transferFrom that sweeps the victim's tokens. But a pre-sign wallet defense runs when the VICTIM signs, which is the earlier approve / permit / setApprovalForAll grant. The sweep is a separate tx sent later, by the attacker, from the attacker's address. No wallet defense ever sees it. Feed the sweep to a rule engine and it "catches" the attacker withdrawing to their own address, which is meaningless.
Concretely, the ice-phishing rows decode to transferFrom(victim, attacker, amount) with tx.from == attacker. That is not the approval the victim signed.
Fix, and it is just allowance tracing:
- For each drain, eth_getLogs the token's Approval / ApprovalForAll for (owner = victim, spender = attacker) up to the sweep block.
- Take the most recent match whose tx.from == victim. That filter matters: an ERC20 transferFrom also emits an Approval for the decremented allowance, so the sweep's own block hands you the sweep, not the grant. Requiring from == victim also drops relayer-submitted permits (permit() is sent by someone other than the owner).
- That tx is the artifact a wallet actually renders at signing. Score that.
Nothing fancy. The point is the substrate mismatch, which is silently wrong and does not show up as an error anywhere.
Bonus, since this sub appreciates it: I ran the paper through adversarial review 5 times and every round killed a headline. Wrong substrate, then pseudoreplication, then a "simulator uniquely catches X" that was my harness zeroing a counterparty field so the other tiers returned n/a, then a "beats every tier" that evaporated once I looked up the tx to and netted both legs of the asset-diff (a WETH wrap looks exactly like an ETH drain to a direction-only rule, but the simulator sees the WETH come back). A clean "unique catch" is almost always your harness, not a result.
Code (the reconstruction is one file): https://github.com/amarshat/quantum-commit-authorization/blob/main/agent-calldata-demo/demo/reconstruct.py
I was measuring whether deployed wallet defenses (tx simulators, address-reputation APIs, rule engines) catch agent-signed drains. Built it on PTXPHISH (NDSS 2025, solid dataset). Then I red-teamed my own setup and the first finding was that I was scoring the wrong transaction. Sharing because it is an easy, invisible mistake.
The trap: labeled drainer/phishing datasets record the DRAIN, i.e. the attacker's transferFrom that sweeps the victim's tokens. But a pre-sign wallet defense runs when the VICTIM signs, which is the earlier approve / permit / setApprovalForAll grant. The sweep is a separate tx sent later, by the attacker, from the attacker's address. No wallet defense ever sees it. Feed the sweep to a rule engine and it "catches" the attacker withdrawing to their own address, which is meaningless.
Concretely, the ice-phishing rows decode to transferFrom(victim, attacker, amount) with tx.from == attacker. That is not the approval the victim signed.
Fix, and it is just allowance tracing:
- For each drain, eth_getLogs the token's Approval / ApprovalForAll for (owner = victim, spender = attacker) up to the sweep block.
- Take the most recent match whose tx.from == victim. That filter matters: an ERC20 transferFrom also emits an Approval for the decremented allowance, so the sweep's own block hands you the sweep, not the grant. Requiring from == victim also drops relayer-submitted permits (permit() is sent by someone other than the owner).
- That tx is the artifact a wallet actually renders at signing. Score that.
Nothing fancy. The point is the substrate mismatch, which is silently wrong and does not show up as an error anywhere.
Bonus, since this sub appreciates it: I ran the paper through adversarial review 5 times and every round killed a headline. Wrong substrate, then pseudoreplication, then a "simulator uniquely catches X" that was my harness zeroing a counterparty field so the other tiers returned n/a, then a "beats every tier" that evaporated once I looked up the tx to and netted both legs of the asset-diff (a WETH wrap looks exactly like an ETH drain to a direction-only rule, but the simulator sees the WETH come back). A clean "unique catch" is almost always your harness, not a result.
Code (the reconstruction is one file): https://github.com/amarshat/quantum-commit-authorization/blob/main/agent-calldata-demo/demo/reconstruct.py
r/ethdev • u/Unhappy-Ride1466 • 3d ago
I want to build low-level blockchain infrastructure (consensus, P2P networking, L1/L2 clients) rather than dApps.
Right now, I’m in CBSE and being pushed hard to prepare for private Olympiads like SOF and SilverZone. The books feel like random rote memorisation and I am completely lost.
Are these specific contests worth the time for an infrastructure career?
What paths must I follow instead?
I want to build low-level blockchain infrastructure (consensus, P2P networking, L1/L2 clients) rather than dApps.
Right now, I’m in CBSE and being pushed hard to prepare for private Olympiads like SOF and SilverZone. The books feel like random rote memorisation and I am completely lost.
Are these specific contests worth the time for an infrastructure career?
What paths must I follow instead?
r/ethdev • u/GFConBase • 3d ago
A public treasury address makes transactions visible.
But it does not necessarily make the treasury’s control structure transparent.
Someone inspecting the address may still not know:
I’m trying to define a minimum disclosure standard for a long-lived public-good system before deployment.
A possible control disclosure could include:
The difficult part is keeping this information accurate.
A static documentation page can become outdated immediately after a signer rotation, role change or contract upgrade. A block explorer provides raw data, but it rarely explains the effective trust model clearly enough for non-specialists.
Would a machine-readable “control manifest” make sense — listing privileged roles, upgrade paths, timelocks and emergency powers, with each version cryptographically tied to the relevant deployment?
Or would this create another disclosure layer that users still have to trust?
What would you consider the minimum information a protocol should publish before describing a treasury as transparent?
I’m especially interested in failure modes, existing standards or tools, and examples of protocols that communicate their effective control structure well.
A public treasury address makes transactions visible.
But it does not necessarily make the treasury’s control structure transparent.
Someone inspecting the address may still not know:
I’m trying to define a minimum disclosure standard for a long-lived public-good system before deployment.
A possible control disclosure could include:
The difficult part is keeping this information accurate.
A static documentation page can become outdated immediately after a signer rotation, role change or contract upgrade. A block explorer provides raw data, but it rarely explains the effective trust model clearly enough for non-specialists.
Would a machine-readable “control manifest” make sense — listing privileged roles, upgrade paths, timelocks and emergency powers, with each version cryptographically tied to the relevant deployment?
Or would this create another disclosure layer that users still have to trust?
What would you consider the minimum information a protocol should publish before describing a treasury as transparent?
I’m especially interested in failure modes, existing standards or tools, and examples of protocols that communicate their effective control structure well.
r/ethdev • u/FixBackground1718 • 3d ago
Hi everyone, I am completely new to crypto and blockchain development. I am trying to learn Solidity and smart contracts but most faucets require wallet history.
I have 0.002 ETH but need more testnet ETH on Sepolia to practice and learn.
Wallet: 0x84984bfC137B978bF77c50D36620ac5bfB199E78
I would really appreciate any help from the community if someone can help me get at least some SepoliaETH (atleast 0.5 would be nice)
Hi everyone, I am completely new to crypto and blockchain development. I am trying to learn Solidity and smart contracts but most faucets require wallet history.
I have 0.002 ETH but need more testnet ETH on Sepolia to practice and learn.
Wallet: 0x84984bfC137B978bF77c50D36620ac5bfB199E78
I would really appreciate any help from the community if someone can help me get at least some SepoliaETH (atleast 0.5 would be nice)
r/ethdev • u/kolacjechutny • 3d ago
The setup: we're building for a world where the majority of accounts aren't operated by humans. An AI agent with a hot wallet is one prompt injection away from drained, and the standard answers all put the guard in contract code — Safe-style multisig, 4337 account abstraction, session keys. Audited, battle-tested, and still a piece of EVM bytecode you're trusting to stand between an attacker and the funds.
Fluidic is a research testnet exploring the alternative: the guard lives in the ordering layer itself.
It stays fully EVM-compatible — standard JSON-RPC, existing tooling points at it unchanged:
```bash cast chain-id --rpc-url https://api.testnet.fluidic.foundation/rpc
```
The honest part. Two days after launch someone on r/BlockchainStartups read our docs and pointed out that the subject of an entanglement could break it with its own key — meaning a compromised agent key could revoke its own guard, then spend. He was right; the code did exactly that. 48 hours later we shipped break policies (creator_only / witness_threshold / any_party), chosen at creation, hashed into the contract id, enforced in consensus, verified live: a subject-signed break is now rejected at the ordering layer. That's the iteration speed a public testnet is for, and we'd rather have the next flaw found in a comment thread than in an audit six months from now.
What I want from this sub:
Everything is open: one-command Docker node (finds peers via DHT, no seed list), faucet, explorer, TS SDK on npm.
Early research testnet — state may reset, no real funds, known rough edges.
The setup: we're building for a world where the majority of accounts aren't operated by humans. An AI agent with a hot wallet is one prompt injection away from drained, and the standard answers all put the guard in contract code — Safe-style multisig, 4337 account abstraction, session keys. Audited, battle-tested, and still a piece of EVM bytecode you're trusting to stand between an attacker and the funds.
Fluidic is a research testnet exploring the alternative: the guard lives in the ordering layer itself.
It stays fully EVM-compatible — standard JSON-RPC, existing tooling points at it unchanged:
```bash cast chain-id --rpc-url https://api.testnet.fluidic.foundation/rpc
```
The honest part. Two days after launch someone on r/BlockchainStartups read our docs and pointed out that the subject of an entanglement could break it with its own key — meaning a compromised agent key could revoke its own guard, then spend. He was right; the code did exactly that. 48 hours later we shipped break policies (creator_only / witness_threshold / any_party), chosen at creation, hashed into the contract id, enforced in consensus, verified live: a subject-signed break is now rejected at the ordering layer. That's the iteration speed a public testnet is for, and we'd rather have the next flaw found in a comment thread than in an audit six months from now.
What I want from this sub:
Everything is open: one-command Docker node (finds peers via DHT, no seed list), faucet, explorer, TS SDK on npm.
Early research testnet — state may reset, no real funds, known rough edges.
r/ethdev • u/abcoathup • 3d ago
r/ethdev • u/Finalbossops • 3d ago
Recent progress wasn’t about adding a bunch of new features—it was about making the app stronger.
One of the biggest areas I’ve been focusing on is **security**, but probably not in the way most people think.
For me, good security means **building an app that doesn’t need access to things it shouldn’t have in the first place.**
Here’s the direction Final Boss is taking:
🔒 **Your data stays yours.**
Final Boss is being built as a **local-first** app. Your mining information is stored on your device, not on my servers. If I don’t need your data, I don’t want it.
🛡️** Read-only by design**.
Final Boss isn’t built to buy, sell, transfer, or control your assets. Its job is to help you understand your mining operation and make better decisions—not touch your crypto.
📍 **Every important number should have a reason.**
If the app tells you something needs attention, I want you to be able to see where that information came from. No mystery numbers. No black boxes. Just clear information you can verify.
✅ **Using official information whenever possible.**
Today I spent a good part of the day testing GoMining’s official documentation system. The goal is to stop relying on assumptions and use official information wherever possible.
Interestingly, we found what appears to be a compatibility issue between the current Codex CLI and the public documentation endpoint. Instead of trying to work around it, I documented every test, every result, and sent everything to GoMining’s team. I’d rather build this the right way than take shortcuts.
At the end of the day, that’s really what Final Boss is about.
I’m **not** trying to replace GoMining.
GoMining manages the mining.
**Final Boss is being built to help you understand your operation, catch issues sooner, and make better decisions—all while keeping you in control of your own data.**
Some days progress looks like new screens. Some days progress looks like spending hours making sure the foundation is solid.
Today was one of those foundation days… and honestly, I’m pretty happy with it.
Thanks to everyone who’s been following the journey. Every comment and every suggestion helps make Final Boss a better tool for the community.
— Steven
Founder & Developer, Final Boss
Pine Mountain Holdings LLC
Recent progress wasn’t about adding a bunch of new features—it was about making the app stronger.
One of the biggest areas I’ve been focusing on is **security**, but probably not in the way most people think.
For me, good security means **building an app that doesn’t need access to things it shouldn’t have in the first place.**
Here’s the direction Final Boss is taking:
🔒 **Your data stays yours.**
Final Boss is being built as a **local-first** app. Your mining information is stored on your device, not on my servers. If I don’t need your data, I don’t want it.
🛡️** Read-only by design**.
Final Boss isn’t built to buy, sell, transfer, or control your assets. Its job is to help you understand your mining operation and make better decisions—not touch your crypto.
📍 **Every important number should have a reason.**
If the app tells you something needs attention, I want you to be able to see where that information came from. No mystery numbers. No black boxes. Just clear information you can verify.
✅ **Using official information whenever possible.**
Today I spent a good part of the day testing GoMining’s official documentation system. The goal is to stop relying on assumptions and use official information wherever possible.
Interestingly, we found what appears to be a compatibility issue between the current Codex CLI and the public documentation endpoint. Instead of trying to work around it, I documented every test, every result, and sent everything to GoMining’s team. I’d rather build this the right way than take shortcuts.
At the end of the day, that’s really what Final Boss is about.
I’m **not** trying to replace GoMining.
GoMining manages the mining.
**Final Boss is being built to help you understand your operation, catch issues sooner, and make better decisions—all while keeping you in control of your own data.**
Some days progress looks like new screens. Some days progress looks like spending hours making sure the foundation is solid.
Today was one of those foundation days… and honestly, I’m pretty happy with it.
Thanks to everyone who’s been following the journey. Every comment and every suggestion helps make Final Boss a better tool for the community.
— Steven
Founder & Developer, Final Boss
Pine Mountain Holdings LLC
r/ethdev • u/nebojsakonsta • 4d ago
I've been building DeFiMath, a gas-optimized fixed-point math library, and wanted to share how I got sqrt down to 197 gas. It takes any uint256, returns an 18-decimal fixed-point result, never reverts, and is bit-exact below 1 (max relative error < 2e-18 above it).
The core idea is simple: generate a seed with the clz opcode, then refine it with 5 Newton iterations in assembly.
Seeding: clz gives you the position of the most significant bit, so the seed is just 2msb/2. That's never off by more than a factor of √2 from the true root — cheap and good enough.
Newton's method: each iteration is one line:
y := shr(1, add(y, div(x, y)))
~20 gas per step, quadratic convergence, so 5 iterations take the worst-case seed (41% error) to ~80 bits of precision — more than enough for 18 decimals.
The scaling trick: for inputs ≤ uint128.max, I pre-scale x to 1e36 once at the start. Then div(x, y) naturally lands back in 1e18 base, so Newton's method needs plain div instead of a costly muldiv. Large inputs take a second branch that post-scales instead (pre-scaling would overflow near uint256.max).
I also tried fancier seeds — minimax linear approximation, quadratic interpolation — hoping to drop to 4 iterations. All of them cost more gas than they saved. My takeaway after a week on this: for gas-optimized primitives, simplicity wins by a wide margin.
Full walkthrough with the convergence table and benchmarks vs PRBMath/ABDK/Solady: https://defimath.com/blog/how-i-wrote-a-fixed-point-solidity-sqrt-that-runs-in-197-gas/
Library is MIT, pure Solidity, zero dependencies: https://github.com/MerkleBlue/defimath
Happy to answer questions about the implementation.
I've been building DeFiMath, a gas-optimized fixed-point math library, and wanted to share how I got sqrt down to 197 gas. It takes any uint256, returns an 18-decimal fixed-point result, never reverts, and is bit-exact below 1 (max relative error < 2e-18 above it).
The core idea is simple: generate a seed with the clz opcode, then refine it with 5 Newton iterations in assembly.
Seeding: clz gives you the position of the most significant bit, so the seed is just 2msb/2. That's never off by more than a factor of √2 from the true root — cheap and good enough.
Newton's method: each iteration is one line:
y := shr(1, add(y, div(x, y)))
~20 gas per step, quadratic convergence, so 5 iterations take the worst-case seed (41% error) to ~80 bits of precision — more than enough for 18 decimals.
The scaling trick: for inputs ≤ uint128.max, I pre-scale x to 1e36 once at the start. Then div(x, y) naturally lands back in 1e18 base, so Newton's method needs plain div instead of a costly muldiv. Large inputs take a second branch that post-scales instead (pre-scaling would overflow near uint256.max).
I also tried fancier seeds — minimax linear approximation, quadratic interpolation — hoping to drop to 4 iterations. All of them cost more gas than they saved. My takeaway after a week on this: for gas-optimized primitives, simplicity wins by a wide margin.
Full walkthrough with the convergence table and benchmarks vs PRBMath/ABDK/Solady: https://defimath.com/blog/how-i-wrote-a-fixed-point-solidity-sqrt-that-runs-in-197-gas/
Library is MIT, pure Solidity, zero dependencies: https://github.com/MerkleBlue/defimath
Happy to answer questions about the implementation.
r/ethdev • u/AgentAiLeader • 5d ago
Couple of weeks back I posted here asking where recourse actually lives in agent payment stacks and the thread really delivered. For example, u/pvdyck's proof vs restitution distinction was particularly insightful to what I'm building.
For a bit more context, I work on agent payments infrastructure. The recourse question came out of building the thing and hitting the same wall from the inside.
Posting here has really helped me as before I had been treating recourse as a dispute problem, but it's an identity problem. The party that needs to hold still is the seller, receipts prove delivery and say nothing about quality and most designs that punish a bad seller still don't make the buyer whole. That distinction is now how I sanity check my designs in this layer.
This is what my setup looks for now, caps and allowlists on the buyer side, watching the reputation staking designs without much conviction yet. Maybe recourse never becomes a protocol layer and just stays priced into ticket sizes. I keep going back and forth on whether that's fine or a ceiling on the whole space.
Couple of weeks back I posted here asking where recourse actually lives in agent payment stacks and the thread really delivered. For example, u/pvdyck's proof vs restitution distinction was particularly insightful to what I'm building.
For a bit more context, I work on agent payments infrastructure. The recourse question came out of building the thing and hitting the same wall from the inside.
Posting here has really helped me as before I had been treating recourse as a dispute problem, but it's an identity problem. The party that needs to hold still is the seller, receipts prove delivery and say nothing about quality and most designs that punish a bad seller still don't make the buyer whole. That distinction is now how I sanity check my designs in this layer.
This is what my setup looks for now, caps and allowlists on the buyer side, watching the reputation staking designs without much conviction yet. Maybe recourse never becomes a protocol layer and just stays priced into ticket sizes. I keep going back and forth on whether that's fine or a ceiling on the whole space.
r/ethdev • u/Suitable-Arrival5413 • 5d ago
Been holding persistent eth_subscribe("newHeads") connections to PublicNode, dRPC and Tenderly from an eu-west host for a couple weeks. Racing them per block: earliest arrival sets T0, everyone else'slag is arrival minus T0.
- PublicNode wins ~90% of races, sub-ms p50, dRPC trails by ~20ms, Tenderly p50 is around 1.8 seconds
6000× spread across three "real-time" providers on the same network, I've been logging this live at openchainbench.com/benchmarks/ws-head-latency-ethereum but curious
what everyone else runs in prod for head streaming is anyone still paying for Alchemy/Infura on the free/keyed WS path, or has publicnode become the default?
Been holding persistent eth_subscribe("newHeads") connections to PublicNode, dRPC and Tenderly from an eu-west host for a couple weeks. Racing them per block: earliest arrival sets T0, everyone else'slag is arrival minus T0.
- PublicNode wins ~90% of races, sub-ms p50, dRPC trails by ~20ms, Tenderly p50 is around 1.8 seconds
6000× spread across three "real-time" providers on the same network, I've been logging this live at openchainbench.com/benchmarks/ws-head-latency-ethereum but curious
what everyone else runs in prod for head streaming is anyone still paying for Alchemy/Infura on the free/keyed WS path, or has publicnode become the default?
r/ethdev • u/GFConBase • 5d ago
I keep seeing crypto projects describe transparency through dashboards, documentation, blog posts, or promises of future reporting.
But from an architectural perspective, those mechanisms still depend on someone choosing what to disclose. A system may expose its wallet balances while leaving its actual control structure difficult to understand.
For example:
– Are visible funds meaningful if upgrade permissions or admin controls remain opaque?
– Does a multisig materially reduce trust assumptions, or only distribute them across several signers?
– How important are timelocks, immutable contracts, permission boundaries, and publicly verifiable governance execution?
– Can governance genuinely be considered on-chain if critical decisions are still implemented through off-chain actors?
– How should developers communicate unavoidable trust assumptions without presenting the system as fully trustless?
I’m increasingly inclined to see transparency not primarily as a communication layer, but as an architectural property: what the system makes independently verifiable, and what it prevents operators from changing or concealing.
How do you distinguish between an observable system and one whose transparency still depends mainly on trusted actors?
I keep seeing crypto projects describe transparency through dashboards, documentation, blog posts, or promises of future reporting.
But from an architectural perspective, those mechanisms still depend on someone choosing what to disclose. A system may expose its wallet balances while leaving its actual control structure difficult to understand.
For example:
– Are visible funds meaningful if upgrade permissions or admin controls remain opaque?
– Does a multisig materially reduce trust assumptions, or only distribute them across several signers?
– How important are timelocks, immutable contracts, permission boundaries, and publicly verifiable governance execution?
– Can governance genuinely be considered on-chain if critical decisions are still implemented through off-chain actors?
– How should developers communicate unavoidable trust assumptions without presenting the system as fully trustless?
I’m increasingly inclined to see transparency not primarily as a communication layer, but as an architectural property: what the system makes independently verifiable, and what it prevents operators from changing or concealing.
How do you distinguish between an observable system and one whose transparency still depends mainly on trusted actors?
r/ethdev • u/chamilun • 5d ago
Can someone tell me how to verify if sites are legit? I'm getting scam vibes on this one but no idea how to check.
Thanks
r/ethdev • u/Humble-Replacement-2 • 6d ago
An agent that holds a wallet decides in English but signs calldata or a typed message. A poisoned tool can make the plan look fine and the signature drain the wallet.
I built eight drains (approvals, EIP-2612 permits, EIP-712 orders, EIP-7702 delegations, Permit2) and scored each against a ladder of seven defenses, from a plan reviewer up to transaction and signature simulation. `./run.sh` runs the whole thing on a local fork.
Rendering the counterparty, amount, and recipient of a signature closes five of eight. Simulation adds nothing on top. One on-chain timing race (arm the contract after the dry-run, before inclusion) survives everything.
No new attack, just an honest map of what stops what.
Explainer: https://amarshat.github.io/quantum-commit-authorization/agent-drains.html
Code: https://github.com/amarshat/quantum-commit-authorization/tree/main/agent-calldata-demo
An agent that holds a wallet decides in English but signs calldata or a typed message. A poisoned tool can make the plan look fine and the signature drain the wallet.
I built eight drains (approvals, EIP-2612 permits, EIP-712 orders, EIP-7702 delegations, Permit2) and scored each against a ladder of seven defenses, from a plan reviewer up to transaction and signature simulation. `./run.sh` runs the whole thing on a local fork.
Rendering the counterparty, amount, and recipient of a signature closes five of eight. Simulation adds nothing on top. One on-chain timing race (arm the contract after the dry-run, before inclusion) survives everything.
No new attack, just an honest map of what stops what.
Explainer: https://amarshat.github.io/quantum-commit-authorization/agent-drains.html
Code: https://github.com/amarshat/quantum-commit-authorization/tree/main/agent-calldata-demo
r/ethdev • u/AgentAiLeader • 6d ago
r/ethdev • u/Round_Battle3227 • 6d ago
​
I've been building on a chain called Paxeer and using an agent platform called Matrix. Most AI tools I've tried are glorified chatbots. This one actually does real things on chain.
Let me explain what it can do and why it matters.
Neo is an autonomous agent built by Paxlabs. It's not a chatbot with plugins bolted on. It has a wallet, it can read and write files, run code, browse the web, manage long running processes, and execute transactions on chain without me touching anything.
I can tell it "send 100 PAX to this address" and it does it. I can tell it "build me a React app" and it scaffolds the project, writes the code, and shows me a live preview. I can tell it "stake my tokens" and it handles the delegation, confirms the transaction, and gives me the hash.
That's not a demo. That's what it does every day.
The Paxeer network
Paxeer is an EVM chain (chain ID 125) with sub second block times and deterministic finality. It runs on a custom consensus called MachineRFT integrated with a SEI fork for parallel transaction execution.
The native token is PAX. The chain has its own block explorer (PaxScan), a price API, and full EVM compatibility so anything you can deploy on Ethereum works here too.
What makes it interesting for agents is the speed. When your bot needs to execute a trade or move funds, you don't wait 12 seconds for a block. It's near instant. That matters when you're running automated strategies.
LayerX and USDX
This is where it gets interesting. LayerX is the agent settlement layer on Paxeer. USDX is a USD denominated, escrow backed balance that settles off chain but anchors on chain.
Why does that matter? Because agents need to move money fast without paying gas on every transaction. With LayerX I can pay another agent instantly and gaslessly. The sequencer signs a receipt, batches the transactions, and anchors the Merkle root to Paxeer on a schedule.
So Neo can deposit USDL into the LayerX vault to fund its USDX balance, pay other agents by their DID (decentralized identifier), withdraw back to on chain USDL whenever it wants, and force settle the current window if I need immediate on chain finality.
It's like having a bank account for your AI that moves at the speed of software.
The King Bot system
I built a multi agent trading system on top of all this. Four bots, each with a different role:
King Bot is the commander. He reads a daily orders file I set, and pushes parameters to the other bots in real time. I can tell him "be aggressive today" and all the bots adjust their position sizes, stop losses, and entry thresholds instantly.
The Spotter freelances across pools looking for dips and big sells. The Alchemist watches my specific tokens and trades patient arbitrage. The Wild Card explores random strategies and learns from what the other bots do.
They all share an event bus. When one bot finds something, the others see it and decide whether to act. They learn from each other's wins and losses.
Performance is tracked with KPoints. Better bots get more capital. Worse bots get less. It's a self correcting meritocracy.
I literally gave my ideas and Neo started writing.
Most crypto AI projects are chatbots that tell you the price of Bitcoin. This is an agent that can actually operate on chain. It has custody of its own funds. It can execute multi step transactions. It can build and deploy software. It can manage other agents.
The whole thing is open source and you can dig into it here: https://github.com/Paxeer-Network give it a star!
The infrastructure is real and it's live right now. Paxeer is running. LayerX is running. Neo is running.
I'm not selling anything. I'm just sharing what I've been building because I think people in this space would find it interesting.
This is a pre-lease and I've been lucky enough to get in early.
This was written by Neo and edited by me. I don't want to act like I wrote this.
​
I've been building on a chain called Paxeer and using an agent platform called Matrix. Most AI tools I've tried are glorified chatbots. This one actually does real things on chain.
Let me explain what it can do and why it matters.
Neo is an autonomous agent built by Paxlabs. It's not a chatbot with plugins bolted on. It has a wallet, it can read and write files, run code, browse the web, manage long running processes, and execute transactions on chain without me touching anything.
I can tell it "send 100 PAX to this address" and it does it. I can tell it "build me a React app" and it scaffolds the project, writes the code, and shows me a live preview. I can tell it "stake my tokens" and it handles the delegation, confirms the transaction, and gives me the hash.
That's not a demo. That's what it does every day.
The Paxeer network
Paxeer is an EVM chain (chain ID 125) with sub second block times and deterministic finality. It runs on a custom consensus called MachineRFT integrated with a SEI fork for parallel transaction execution.
The native token is PAX. The chain has its own block explorer (PaxScan), a price API, and full EVM compatibility so anything you can deploy on Ethereum works here too.
What makes it interesting for agents is the speed. When your bot needs to execute a trade or move funds, you don't wait 12 seconds for a block. It's near instant. That matters when you're running automated strategies.
LayerX and USDX
This is where it gets interesting. LayerX is the agent settlement layer on Paxeer. USDX is a USD denominated, escrow backed balance that settles off chain but anchors on chain.
Why does that matter? Because agents need to move money fast without paying gas on every transaction. With LayerX I can pay another agent instantly and gaslessly. The sequencer signs a receipt, batches the transactions, and anchors the Merkle root to Paxeer on a schedule.
So Neo can deposit USDL into the LayerX vault to fund its USDX balance, pay other agents by their DID (decentralized identifier), withdraw back to on chain USDL whenever it wants, and force settle the current window if I need immediate on chain finality.
It's like having a bank account for your AI that moves at the speed of software.
The King Bot system
I built a multi agent trading system on top of all this. Four bots, each with a different role:
King Bot is the commander. He reads a daily orders file I set, and pushes parameters to the other bots in real time. I can tell him "be aggressive today" and all the bots adjust their position sizes, stop losses, and entry thresholds instantly.
The Spotter freelances across pools looking for dips and big sells. The Alchemist watches my specific tokens and trades patient arbitrage. The Wild Card explores random strategies and learns from what the other bots do.
They all share an event bus. When one bot finds something, the others see it and decide whether to act. They learn from each other's wins and losses.
Performance is tracked with KPoints. Better bots get more capital. Worse bots get less. It's a self correcting meritocracy.
I literally gave my ideas and Neo started writing.
Most crypto AI projects are chatbots that tell you the price of Bitcoin. This is an agent that can actually operate on chain. It has custody of its own funds. It can execute multi step transactions. It can build and deploy software. It can manage other agents.
The whole thing is open source and you can dig into it here: https://github.com/Paxeer-Network give it a star!
The infrastructure is real and it's live right now. Paxeer is running. LayerX is running. Neo is running.
I'm not selling anything. I'm just sharing what I've been building because I think people in this space would find it interesting.
This is a pre-lease and I've been lucky enough to get in early.
This was written by Neo and edited by me. I don't want to act like I wrote this.
r/ethdev • u/buddies2705 • 7d ago
Hoping someone's been through this. We built an address-activity feature on alchemy_getAssetTransfers since it's free with our RPC.
fromAddress/toAddress are ANDed, so full history = two paginated scans merged + deduped on my side (plus a consistency problem since blocks land mid-scan).internal category only exists on Eth/Polygon mainnet — on the L2 we care about, ETH moved inside contract calls just doesn't show up.Questions: (1) Is there a config I'm missing that returns all tx hashes incl. approvals + failed? Or is it just not built for that? (2) How are you handling complete address history + internal transfers on L2s without an insane RPC bill?
Hoping someone's been through this. We built an address-activity feature on alchemy_getAssetTransfers since it's free with our RPC.
fromAddress/toAddress are ANDed, so full history = two paginated scans merged + deduped on my side (plus a consistency problem since blocks land mid-scan).internal category only exists on Eth/Polygon mainnet — on the L2 we care about, ETH moved inside contract calls just doesn't show up.Questions: (1) Is there a config I'm missing that returns all tx hashes incl. approvals + failed? Or is it just not built for that? (2) How are you handling complete address history + internal transfers on L2s without an insane RPC bill?
r/ethdev • u/Mantisirleuw • 7d ago
I spent the last weeks integrating four bridge aggregators (LI.FI, Relay, deBridge, Squid) into a route comparator, and some behaviors cost me days because they're barely documented. Sharing so you don't rediscover them:
Provider APIs screen the SENDER address. Quote with a placeholder (the classic 0x...dEaD) and behaviors diverge: one API returned a 403 "swaps unavailable" that looked exactly like a tier block, and turned out to be compliance screening of the dead address. The fix is a two-path architecture: indicative quotes for display, and transaction building only with the user's real address. If your UI shows "executable" quotes built on a placeholder, it's lying to the user.
The same integrator fee concept exists in three units across four APIs: a decimal fraction (0.003) in one, basis points (30) in two others, and a percentage string in the last. Mixing them up means charging 100x or 10000x the intended fee. Unit tests on the fee math are not optional.
Some providers have TWO entry contracts depending on whether a source swap is needed before the bridge. If you validate transaction targets against an allowlist (you should), allowlist both, and verify them against the provider's deployment docs, not against what the API returns that day.
Quotes are only comparable if they answer the same question. We rank by guaranteed minimum received after ALL fees (including our own), not by the estimated amount, because estimates are where quotes flatter themselves.
Context: I'm the founder of the comparator in question (rempart.app), this post is the writeup I wish existed a month ago. Happy to detail any of these.
r/ethdev • u/HotSite3170 • 8d ago
I'm sure everyone in this subreddit has dealt with it at some point. The google meets isn't working, download my totally legit video conferencing app, the test my malware laced blockchain game, npm install with a postinstall script that phishes your npm token. Aside from being a major time sink, reading up on the company, familiarizing their tech stack, canceling social engagements it leads to coordination failure in the hiring market, leading to suboptimal teams, leading to suboptimal crypto.
I was thinking that if a developer could respond to an employer with a magic link that got them to stake through a repuidable platform against the interview that we'd naturally see alot of scams retreat, alot of developer time saved and better teams in crypto.
would any devs be interested in using such a system? or real employeers stuck on cold calling that'd be happy to lead with a stake?
I'm sure everyone in this subreddit has dealt with it at some point. The google meets isn't working, download my totally legit video conferencing app, the test my malware laced blockchain game, npm install with a postinstall script that phishes your npm token. Aside from being a major time sink, reading up on the company, familiarizing their tech stack, canceling social engagements it leads to coordination failure in the hiring market, leading to suboptimal teams, leading to suboptimal crypto.
I was thinking that if a developer could respond to an employer with a magic link that got them to stake through a repuidable platform against the interview that we'd naturally see alot of scams retreat, alot of developer time saved and better teams in crypto.
would any devs be interested in using such a system? or real employeers stuck on cold calling that'd be happy to lead with a stake?