Dave

4.5K posts

Dave banner
Dave

Dave

@I_amDavve

Research Analyst || Driving growth through insights & strategy

Onchain → Katılım Nisan 2024
476 Takip Edilen483 Takipçiler
Sabitlenmiş Tweet
Dave
Dave@I_amDavve·
A productive incentive model can be a little tough to build. You might just be on the verge of handing out your tokens to low quality users without realizing it. And umm, it's been proven over time that a large chunk of users in this category sell off within 7 days. I'm guessing that's not where you want to be, as a project, right? 🌝 But then, thinking about it, there are protocols that never did an airdrop, yet they are actively raking in tons of users and volume. A lot is going to change on CT soon. Influencers, dashboards, coins, and tokens are all shifting. The real question is, how do you attract high value users to the primitives you are building? And beyond that, how do we get institutional money to trust those primitives? Because if you look closely at the current trend, that is exactly what is coming; a massive wave of institutional money. The kind of money that will make a $100M TVL look tiny in a few months. And it has already started, particularly from the United States. Institutions and large enterprises need to trust what we are building. Any RWA platform, enterprise protocol, or stablecoin project launching today will not be doing it based on hype, they will be doing it based on trust, compliance, and proven fundamentals. That is the direction the ecosystem is heading toward.
Dave tweet media
English
1
1
11
776
Dave retweetledi
Harrie ✨
Harrie ✨@IamHarrie·
A lot of things are gradually becoming agentic. Over the next few years, we'll likely have millions of AI agents operating alongside IoT devices and other autonomous systems. At some point, these systems won't just interact with humans. They'll need to communicate with their environment, exchange information with other machines (which could be a PC), and pay each other without a human intervening. Boooth is built for just that. At its center is an autonomous AI agent that buys quality data from machines, decides for itself what is worth paying for, and records its reasoning onchain in the same transaction as the payment. Boooth is the payment infrastructure underneath that makes this possible, the open registry machines sell through and the contract that settles each purchase, letting any machine and any agent transact with each other without needing to know one another in advance. The registry and payment layer are built to be reused, or more like composable. Because both contracts are open and permissionless, the same data being bought here could just as easily feed another system's decision, or trigger a downstream action, without any changes to the contracts themselves. These payments are currently processed on BOT Chain, which offers fees close to nothing and fast confirmations. Together, they make machine to machine payments practical to run in real time, as demonstrated in the demo. Two contracts are live on the @BOTChain_ai testnet right now, several real payments have been made, and every one is checkable on the explorer. Do check it out: useboooth.vercel.app
English
1
1
3
153
Dave retweetledi
Harrie ✨
Harrie ✨@IamHarrie·
Week 10 Update for Beni One of the biggest changes was deployment. Until now, setting up a Beni wallet meant cloning a repository, running scripts, and configuring everything manually. That works for developers, but it creates friction for everyone else. So I built one-click deployment directly into the dashboard. Users can now connect a wallet, set their spending limits, optionally add an owner key, and deploy without touching a terminal. I also published the SDK as an npm package. Instead of depending on the GitHub repository, developers can now integrate Beni into their own applications much more easily. The other major addition was the Telegram bot. One thing I've realized is that "guardrails for AI money" is much easier to understand when people can actually interact with it. Instead of only existing as a smart contract, Beni now has a simple interface where users can receive spending requests, approve or reject transactions that exceed their limits, or freeze activity entirely if something doesn't look right. The smart contract still enforces all the rules. The Telegram bot simply gives users an easy way to stay in control without needing to constantly monitor what their AI agents are doing. Next week will be focused on testing these improvements, gathering feedback, and making the experience even smoother. #gimbalabs #pieceofpie #hackathon @gimbalabs
Harrie ✨@IamHarrie

Week 9 Update for Beni This week had a lot of thought processes about the people who would actually use Beni. Right now, the audience for agentic trading is still relatively small. It's an emerging narrative, and that naturally makes onboarding kind of a constrain. The SDK is not available as an npm package. Right now, anyone who wants to use it has to interact with the GitHub repository. So I thought, what if deployment happens from a dashboard. Someone should be able to connect a wallet, choose their spending limits without needing a terminal. The other thing I've been thinking about is the MCP server. I built it so AI agents can interact with Beni directly. I think a better approach is meeting users where they already are. Instead of expecting people to build around Beni, I want Beni to fit naturally into the tools and frameworks they're already using. I plan to finish shipping these improvements this new week, then testing and feedback will be made open at scale. #gimbalabs #pieceofpie #hackathon @gimbalabs

English
0
2
4
352
Dave retweetledi
Harrie ✨
Harrie ✨@IamHarrie·
Unlike traditional trading algorithms that simply output buy or sell signals, reasoning AI explains every decision it makes. An AI trading agent might say it bought Bitcoin because of a breakout, strong momentum, or bullish funding rates. These explanations sound convincing, but they introduce a new challenge. A trade can make money simply because the market moved in the right direction, not necessarily because the agent's reasoning was correct. This creates a new problem unique to reasoning AI: we can see what the model says it was thinking, but we have no way to verify whether those explanations are honest or simply convincing stories told after the outcome becomes obvious. That's why I built Glass Box for the @Bitget_AI Hackathon. Glass Box measures the gap between what an AI says caused a trade and what actually drove the result. We call this the Self-Deception Index. Instead of evaluating an agent only by its profits, Glass Box evaluates the quality of its reasoning. The system works in two stages. A paper trading agent uses live Bitget market data to make trading decisions and records its confidence and reasoning before every trade begins. Those records are locked and cannot be changed after the outcome is known. Once enough trades have been completed, Glass Box analyzes them to determine whether the agent's explanations truly contributed to successful trades, whether its confidence matched reality, and which market factors actually influenced performance. This approach offers several advantages. 1. It helps developers identify reasoning patterns that consistently fail and remove them from future versions of the agent. 2. It highlights explanations that genuinely add value so they can be reinforced. 3. It also measures overconfidence, allowing teams to calibrate AI models instead of trusting confidence scores at face value. For exchanges and trading platforms, Glass Box provides a way to compare AI agents based on the quality of their reasoning, not just their returns. This creates a stronger foundation for AI-powered trading products and gives users greater confidence in the systems they choose to follow. As AI agents become more autonomous, evaluating outcomes alone is no longer enough. We also need to evaluate how they reach those outcomes to make them more transparent, more trustworthy, and more capable of improving over time. You can explore Glass Box here: useglassbox.vercel.app #BitgetHackathon
English
2
2
6
171
Dave
Dave@I_amDavve·
Technical? Nahhhh
Harrie ✨@IamHarrie

I've been spending the last couple of weeks writing tutorials for the Midnight Eclipse Content Program. @MidnightNtwrk is a privacy focused blockchain that lets you write zero knowledge smart contracts in a language called Compact. The bounty program pays developers to write documentation for it, including tutorials, guides, and security breakdowns. This post is a summary of four submissions that have gone through the review process. Most of them had feedback applied and are. I'm writing this partly to document what I built, and partly because the individual articles are dense and technical. This is the friendlier version of what each one is actually about. If you're building on Midnight or just curious about ZK development, hopefully at least one of these is useful to you. . 1. Why ownPublicKey() can't be trusted for access control When you write a smart contract on most blockchains, the standard way to protect an admin function is to check who's calling it, something like "only the owner can call this." On Ethereum, you check msg.sender. On Midnight, the function that looks equivalent is ownPublicKey(). But ownPublicKey() doesn't work the way you'd expect in a zero knowledge context. Here's why. In a ZK proof, the prover is the one who generates the proof on their own machine before submitting it to the chain. The prover chooses what values to supply as private inputs. ownPublicKey() compiles down to an unconstrained private_input in the ZK circuit, meaning the prover can put anything there. They can read the owner's public key from the on chain ledger, which is public state, plug it into their local proof as the value for ownPublicKey(), generate a valid proof, and submit it. The chain accepts the proof because the math checks out. There's no on chain identity verification happening. This affects every contract that gates a privileged function behind an ownPublicKey() check. It also affects OpenZeppelin's Ownable.compact, which uses the same pattern. The correct approach is to store a commitment on chain rather than a public key. The admin knows a secret. When they deploy the contract, they store persistentHash(["admin:v1", secret]) on the ledger. When they want to call an admin function, they supply the secret as a private witness and the circuit checks that it hashes to the stored commitment. Nobody can fake this without knowing the secret because the secret itself never goes on chain. I built a proof of concept exploit for this against Midnight's own example bulletin board contract and wrote a full breakdown, covering the four steps of the attack, the correct commitment based pattern, and a note on how to migrate existing contracts. The reviewer asked me to add a "valid uses of ownPublicKey()" section, since there are patterns where it's fine to use, and to pin the compiler version. Both done. Read the full article: dev.to/iamharrie/comp… . 2. Why your Midnight deploy fails before it even starts I was calling balanceUnboundTransaction, the SDK function that figures out the fees and token movements for a transaction, and it was returning wrong results, and incorrect balances. The transaction would then fail downstream. The root cause was that the wallet hadn't finished syncing yet. The Midnight wallet is not just one wallet. It's three. There's a shielded wallet for private tokens using ZK proofs, an unshielded wallet for public token balances, and a DUST wallet specifically for paying network fees. Each one syncs independently from the chain, and each one has a different shape for its sync state in the SDK. The state object for the shielded wallet is at state.shielded.state.progress. For the unshielded wallet, it's at state.unshielded.progress. For the DUST wallet, it's at state.dust.state.progress. They all nest differently. If you call .isStrictlyComplete() on the wrong path, you get undefined back instead of false or true. Your sync check passes and you proceed with an incomplete wallet. There's also a known issue with the DUST wallet specifically. On idle chains, like a local devnet with no recent activity, isStrictlyComplete() hangs and never resolves. The workaround is to wrap the sync check in a timeout and catch the timeout as a best effort completion. The safe pattern is RxJS based: wallet.state().pipe(filter(s => s.isSynced), take(1), timeout(60_000)). I spent time pulling the actual syncWallet function out of Midnight's CLI tutorial code and walking through what each RxJS operator is doing because the "why throttleTime?" and "why each: instead of a total timeout?" questions kept coming up when I was reading it. The reviewer asked me to remove some duplicated text, which was a paste error on my end, soften a claim I'd made about the DUST bug being "documented" when it was actually just something I observed on a local devnet, and run through the style guide. All done. Read the full article: dev.to/iamharrie/unde… . 3. Working with Maps and Merkle Trees in Compact Compact has two main data structures for managing on chain state: Map and MerkleTree. They serve different purposes and the choice between them matters. Using the wrong one produces contracts that are either wasteful or broken. Maps are the simpler one. A Map is a key value store that lives on chain. You use .insert(key, value) to write, .lookup(key) to read, and .member(key) to check if a key exists before reading it. Reading a missing key panics, so the check matters. Maps are good for things like token balances, allow lists you want to update easily, or any state where you need to look up a specific entry directly. MerkleTrees are for proving things privately. A MerkleTree stores up to 2^n leaves and lets you generate a path from any leaf to the root. A user can then prove "I have a leaf in this tree" by submitting a ZK proof of the path without revealing which leaf they have or where it sits. This is the pattern behind anonymous allowlists, private voting, and confidential membership systems. The catch with MerkleTree is that it only validates the current root. If you're running a live registry where new members get added regularly, every insertion changes the root and every existing member's Merkle path becomes stale. To fix this, Compact has HistoricMerkleTree, which keeps every root the tree has ever held. Membership proofs also stay valid regardless of subsequent insertions. This distinction trips people up sometimes. The tutorial builds a hybrid contract that uses both, a Map for publicly queryable state and a HistoricMerkleTree for private membership proofs. It also runs both contracts through the Compact compiler and walks through the full API for each structure. Read the full article: dev.to/iamharrie/work… . 4. Compact Standard Library as a verified reference to every export The Compact Standard Library ships with every contract. It's the set of built in types, functions, and circuits that Midnight makes available without any extra imports. Things like Maybe, Counter, persistentHash, elliptic curve operations, shielded token functions, and block time queries. The official docs cover the basics but don't have working compiled examples for every export. This article was written to help with that showing every export in the library with a standalone compiled contract demonstrating it. I started with seven .compact files covering the main categories. The reviewer came back with four corrections. Block time queries. I'd documented getBlockTime, getBlockNumber, and getEpoch as the API, but those names don't exist in the library. The real functions are blockTimeLt, blockTimeLte, blockTimeGt, and blockTimeGte, comparisons rather than reads. You can't fetch the current block time as a plain value. You can only compare against a threshold. I rewrote that section entirely with working examples. JubjubPoint and elliptic curve operations. I'd noted that JubjubPoint is an opaque type, meaning you can't inspect its fields, and steered readers toward persistentHash instead. The reviewer pointed out that ecAdd, ecMul, and ecMulGenerator all compile and work fine. You can do real elliptic curve arithmetic on JubjubPoint. You just can't read the coordinates directly. I added working examples for all three operations. Counter.decrement. I'd said Counter only supports increment. Decrement compiles fine. Fixed, with a note that the value saturates at zero rather than wrapping. MerkleTree in ledger. I'd described a workaround using persistentCommit because I thought MerkleTree couldn't be stored in a ledger field. I tested against the current compiler, v0.31.0, and it works. I dropped the workaround and replaced it with a clean example. After fixing all four, the repo grew from seven contracts to eleven. I also wired up GitHub Actions so every .compact file compiles on push. Then I ran through the full style guide pass with sentence case headings throughout, British spelling, and an updated quick reference table reflecting all the corrections. Read the full article: dev.to/iamharrie/comp… _________________________ A few things I noticed across all of this Writing for Midnight is different from writing about most blockchains because the ZK layer introduces a whole class of bugs that don't show up in normal smart contract development. The ownPublicKey() vulnerability is a good example. On any non ZK chain, checking the caller's identity is trivial and safe. On a ZK chain, the caller constructs their own proof, so checking the caller's identity requires a completely different mechanism. Another Is, if you're building on Midnight, the main habit I'd suggest developing early is compiling everything and testing assumptions at the API level, not just reading the docs. Several things I thought worked didn't, and a few things I thought didn't work did. It was altogether fun though. #MidnightforDevs

Čeština
0
0
1
8
Dave retweetledi
Dave retweetledi
Harrie ✨
Harrie ✨@IamHarrie·
Conversations around AI on-chain usually revolve around a trading primitive. We have agents managing portfolios, executing swaps, rebalancing positions, and growing capital autonomously. Initially, concerns around autonomous agents were largely about risk. Over time, better guardrails, permission models, and execution frameworks have made people more comfortable letting agents act on their behalf. Companies are now being built around this idea, capital is flowing into it, and it's becoming one of the defining narratives in crypto AI. But I don't think that's where blockchain becomes most valuable to AI. Agentic commerce is undoubtedly a massive opportunity. As AI begins participating in the global exchange of goods, services, and digital assets, blockchains provide an efficient settlement layer. The bigger opportunity, however, may be verification. As AI becomes responsible for creating content, making decisions, representing people, and interacting autonomously, the priority is likely to shift from execution to trust. • How do we verify that an agent acted within its permissions? • How do we prove where a piece of content originated? • How do we distinguish authentic identities from synthetic ones? These are problems that align directly with what blockchains were designed to solve: immutability, transparency, verifiable history, and cryptographic proof. For years, we've viewed blockchain primarily as a financial primitive. I think AI gradually pushes it towards something much broader: a trust and verification layer for the internet. The commercial layer will always be valuable. But over the long run, proving what's true may become even more valuable than moving money.
Harrie ✨ tweet media
English
10
3
13
148
Dave retweetledi
Dima D
Dima D@heydyago·
The fastest growing AI companies right now, and the founders behind them: Mercor - @mercor_ai (@BrendanFoody, @suryamidha) Cursor - @cursor_ai (@mntruell, @amanrsanger) Midjourney - @midjourney (@DavidSHolz) ElevenLabs - @ElevenLabs (@matistanis, @dabkowski_piotr) Wiz - @wiz_io (@assaf_rappaport) The company account and the founder account are two very different feeds. The company posts the news, the founder posts how they actually think about the problem. If you build in AI or care about growth, that second feed is usually the earlier signal. (illustration: @supbroe1)
Dima D tweet media
English
3
3
15
7.4K
Dave retweetledi
AdaLink
AdaLink@AdaLink_io·
Challenge 11 - Official Winners Announcement 🏆 The results are in! Thank you to everyone who participated, submitted videos, voted, and helped support the creators throughout Challenge 11. This challenge brought amazing energy, creativity, and real-world Cardano promotion from our creator community. Here are the official winners: 🥇 Top 3 Winners These creators will receive $ADA rewards, Creator Gear valued at $800 USD, and @Explore_Cardano Cardano Merch. 🥇 1st Place: @owen_chido66349 29 votes - 26.6% Reward: 2,550 ADA + Creator Gear + Explore Cardano Merch 🥈 2nd Place:@wellbornofweb3 24 votes - 22.0% Reward: 1,500 ADA + Creator Gear + Explore Cardano Merch 🥉 3rd Place:@doncurrent 18 votes - 16.5% Reward: 850 ADA + Creator Gear + Explore Cardano Merch 🏅 4th to 11th Place Each of the following creators will receive 100 ADA + Explore Cardano Merch: 4th: @annythefirst 5th: @LoneRogue8 6th: @0xGIDHUB 7th: @Hauntedbymany 8th: @shaun_sososo 9th: @OlaWhale_ 10th: @kikeliving 11th: @Wisweb3 And you will all receive a Frenchie Founders by AdaLink NFT so you can join our community and continue growing with us. Congratulations to all the winners! 🎉 Rewards and prizes will be distributed this Friday. We’ll be contacting you soon to coordinate the process. Please make sure you send us all the required information by then so we can process everything smoothly. Voters, please head over to Discord for instructions on how to claim your voting rewards. 👀 Thank you again to everyone who participated. We’re incredibly proud of the creators who helped introduce #Cardano to new audiences through this challenge. 💙
English
15
3
22
881
Dave
Dave@I_amDavve·
Stablecoins are not exactly products. They function more like primitives; the foundational layer that other applications are built on. And at this point in history, we're looking at the most exponentially recorded protocol layer for moving value.
English
0
0
0
13
Dave
Dave@I_amDavve·
Across nearly all modern AI systems, from language models to recommendation engines, progress is shaped by three interacting components: 1. Algorithms, 2. Data, and 3. Computing power.
Harrie ✨@IamHarrie

x.com/i/article/2062…

English
0
0
2
26
Dave
Dave@I_amDavve·
While building a guardrail system for an agentic wallet, you must know that the moment a transaction goes onchain, it’s done. If safety rails are going to be implemented, it has to be enforced at the intent layer before execution begins.
Dave tweet media
English
0
0
1
11
Dave retweetledi
Dave retweetledi
Circles
Circles@HeyCircles·
Heartbeat check.
English
1
2
5
76
Dave
Dave@I_amDavve·
@MovePayApp So I just need to show up, and I'll get paid? 🤔
English
1
0
0
23
MovePay
MovePay@MovePayApp·
Get real people to show up at your physical store. With MovePay, you can track foot traffic when you partner with us. A better, more guaranteed way to run marketing campaigns.
English
8
1
30
583
Dave retweetledi
Explore Cardano
Explore Cardano@Explore_Cardano·
THE FUTURE OF DIGITAL IDENTITY 🫆 The internet was never designed to answer one fundamental question: Who are you? Everything that followed has been a workaround. KERI by @Cardano_CF offers a different path forward. ↓
English
1
2
8
226