New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Kunal Arora I Build On The Open Intent Framework With Hyperlane I ETHGlobal Taipei 2025

ETHGlobalThu, Oct 9, 2025, 12:00 AM

Learn how to build with the Open Intent Framework using Hyperlane in this ETHGlobal Taipei 2025 workshop by Kunal Arora. Discover how intents revolutionize cross-chain interoperability, simplifying asset transfers between rollups with EIP7683 standards. Explore Hyperlane’s permissionless messaging, solver strategies, and settlement contracts for seamless cross-chain swaps. Whether you're interested in building intent-based solvers, improving inventory management, or integrating with Telegram bots, this workshop provides the tools to innovate on open-source intent infrastructure. 00:00 - Introduction to Hyperlane & Open Intent Framework 00:51 - Why Intents? The Cross-Chain Interoperability Problem 01:32 - Current Challenges: Rollup Fragmentation & User Experience 02:12 - Vitalik’s Vision: Ethereum as a Unified Chain 02:52 - How Intents Work: Uniswap’s Magic Diagram Explained 03:30 - EIP7683 Deep Dive: Origin & Destination Settlers 04:12 - Open Intent Framework: Industry Partnerships & Goals 05:30 - Demo: Naive Solver & Hyperlane’s Production-Ready Contracts 06:06 - Hyperlane’s Role: Oracle for Cross-Chain Settlement 06:44 - Code Walkthrough: Intent Structs & Interface Design 07:31 - Handling Refunds & Failed Orders in Settlement Contracts 08:53 - Gasless Experiences: Signature-Based Order Submission 09:43 - Building Solvers: Inventory Management Strategies 10:34 - Forking the Filler Code: Listener & Docker Deployment 11:19 - Hyperlane’s Security Model: ISMs & Custom Trust Options 12:01 - Hackathon Prizes: Best Use of Hyperlane & Open Intents 13:20 - Project Ideas: EIP7702, Telegram Bots & Warp Routes 14:00 - Q&A: NFT Intents, Arbitrary Data & Chain Finality 15:53 - Advanced Use Cases: Lending Pools & Conditional Logic 19:31 - Closing Remarks: Where to Find Support _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 🇹🇼 *ETHGlobal Taipei* This workshop is specifically for ETHGlobal Taipei, a 3-day hackathon held April 4-6 2025, that brought together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ✅ Follow Hyperlane X: https://x.com/hyperlane ✅ *Follow ETHGlobal* X: https://x.com/ETHGlobal​ Warpcast: https://warpcast.com/ethglobal Website: https://ethglobal.com YouTube: https://www.youtube.com/c/ETHGlobal _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Are you interested in Ethereum development and entrepreneurship?_ 👉 Sign up for the next ETHGlobal event: https://ethglobal.com/events 🎁 Get exclusive access and perks with ETHGlobal Plus! https://ethglobal.com/plus 📣 Want us to throw an event in your city? Tell us where! https://ethglobal.com/city _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Transcript

[Music] Hi, I'm Kunal. I'm working on Hyperlane. Hyperlane is a crosschain permissionless protocol. Anyone can deploy it between any chains you want. Um today specifically I'll be talking about uh the open intent framework which is an intent framework built on top of hyperlane but the framework is open to everyone.

You can build any other protocol on top of it. Uh yeah let's get started. Um on the agenda first I'll be talking about what intents are. Um what EIP7683 is which is what we'll be specifically be using. uh how do the contracts work?

A solver, you'll know what a solver is um and what prices we offer and what kind of ideas we are looking for versus what you might be interested in building. Uh yeah, so I guess before starting about intents, I'll talk about why you need in intents. Um over the last couple of years, interop has been a big problem as more and more rollups have came on. I think we have more than like more than 20 rollups now over like a lot of doing a lot of volume and there's a big problem about like going between these rollups as they have multiple token standards and it's a pain in the ass to go between each rollup wait for that finality window or rely on some third party centralized solver or maybe even in my case I would just use Coinbase to go between rollups. Um yeah and all of these don't have a common interface and that kind of creates this problem and what this means as a user is you click on metam mask and you seven networks in my case it's like more than 20 now uh you have to go and pick for every app go to a different network and select that network and then connect your app so this is not ideal right um I don't know if you know this like this intersection on Dallas.

This is kind of what it feels like today. So many different routes, uh different token standards. Sometimes you go there, you don't have a pool which has enough liquidity in it. So yeah, not ideal. So I guess this was a statement from Vitalik in Denver or in in Bangkok I think where he was like uh we need to sit together until we we need to not go out of this room until we solve this problem and that's kind of what we need with uh interrupt today.

We need Ethereum to feel like a single chain. Uh yep intense. I think everyone's talked about intense. You have heard of intents at some point and people don't explain it. So I'll use unisops diagram which I feel like is like the cleanest one.

You have a user uh you sign order sign order. You could do it onchain or offchain and it's rest of it is magic. If you are just a user because you just get your assets on a different chain. What happens under the hood is you have a filler which initiates an order goes and fills your fund. Uh so you get the funds now fill now the filler has to wait for the message or you know wait for some way for the asset to arrive for them to sort of rebalance it.

And as a user you don't see any of it. You might see it if your intent didn't get filled. In that case you'll get it refunded. But in the happy scenario you are just a user. The filler has to deal with the settlement contract f the filler contract on destination chain and yeah that is it and then you have the EIP which was created like last year uh created by I think across and unis swap together and it was an interface for creating executing and settling intents for crosschain user apps And so there's uh we'll go more into depth about like the contract itself but there mainly two different interfaces.

One is origin settler and one is destination settler. And origin is the one user interacts with for submitting and then later settling on. And the destination is meant for only filling. So that's only meant for the filler. Um this is to say that this is not this is flexible to what kind of filler you use.

um what kind of strategy used to rebalance and all of those things are abstracted away like how you verify someone filled your intent we don't prescribe that there and yeah this has just received wide recognition by the wider ecosystem so I think I'll go to the next one and a few months ago we introduced this framework along with a lot of industry partners um it was basically meant as like a open source solution or like you know as solution where there's everyone can build on top of it and the problem today is people have their own intent frameworks so they have their own fillers and as a filler if I'm planning to support multiple protocols I need to custom integrate them which is not ideal and in a way to like bootstrap a strong community we sort of partnered with all of these wonderful wonderful teams and this is what we came up And if you see the repo already, you already know this, but we have a solver which is very naive which just transfers money and keeps depleting their funds. But but that's open source. We have a UI template with it. And we also have the contracts. So there's a basic contract and there's a hyperlane version.

Uh for the hackathon, you will need to use the hyperlane to be eligible. Uh and also it's production ready. I think echo protocol if you have heard of it uh uses intense in uh in prod I think on base cello mantle I think those are the chains supported uh yeah so I guess I didn't really talk much about settlement like once a filler like how does a source chain knows a filler filled your uh filled you on u the destination chain and that's where like you use hyperlane something like hyperlane which is like an oracle. So sending a message from destination to origin telling that oh this origin or this intent this order id was filled by xx uh filler and this is how they unlock the funds. Think of it as a escrow account on source chain.

Uh yeah that arrow is where the flow is. Uh look at the code here. So I think maybe too small. So you have the basics I I'll go for the the interface here. Interface would be this one.

And you see the strct. This is the main strct which we'll be using. Um you see all the things as a user need to think about your own address, your origin chain ID. Uh important note hyperlane has a uh domain which may or may not be a chain ID. Just check in case.

Uh deadline you know how long uh when is a order opened and then when is order filled. Why is there open deadline? Because some of the gasless messages uh they don't have a uh they don't have because they're not on chain yet. You could like potentially just delay them. And in that case this would be this would revert when you are creating the order.

Um order ID again we're not prescribing how you generate the order ID. Uh max spent how much are you willing how much the the filler will send and then there is a min received. So you know max send would be like something like ETH and min received could be USDC whoever is receiving it. And this is just you could provide additional instructions depend on what project you're using. Uh these things are not that important.

And this is the main contract. This is the function which the user calls or someone calls on their behalf. The for if you see the for uh that's mostly meant for someone like the gasless experience. So you give the signature of the user and you have the open and open for. You have a resolve for and resolve.

Similarly, resolve is what I was uh referring to as settlement. And these are this is the interface. This is on the destination where the uh the the filler fills or solver whatever you like to call it. I will go through the hyperlane one. Uh you can also use uh basic swap also.

Um I know I had a question. Um you can like use this as a foundry uh foundry dependency. Shouldn't be a problem. If it is, let me know. Um it's not that important.

Yep. So this is like the set. I think I should probably Yeah. So this uh this is only for like settling which is what you're doing to repay the relayer and for uh refunds. So what happens is sometimes you know your order doesn't get filled and the user should get it refunded right say you pass the fill deadline in that case you go handle refund versus you go settle and we normally check Where are we?

There you go. You check for the eligibility and if it is not eligible, you return versus um you transfer the tokens out. And this is this is common. This is not hyperlain specific. Uh you could also just you inherit it.

Don't need to implement all of this. So this is again order ID. You can do you can generate them however you want. I think in this case we might just have a kachak somewhere. Uh and then this is the resolve order.

I'll go back to the hyperlane one. So this is handle that's that was handle settle and handle refund and the same flow just now it's refund and you're transferring the order amount to the sender. So I guess that was the what was different is you have transferring the order to the receiver versus the sender versus they're essentially the same functions. Uh maybe let's go to the filler now. So the filler is a very basic example.

um it just sends money and I think one of the projects um we would like to build is a smarter filler which is uh it manages its own inventory where say I'm low on funds on base I'll refill it back uh it could be through a deck it could be uh if I have excess funds on one you just transfer it over and you know how to transfer funds between chains right so u this is very simple uh there's two parts to it one is a listener listens to events uh and one is a one is a filler. So you have you'll in all these uh all these folders you'll have a filler and a listener and you could probably just fork this code. So there's this uh by hyperlane and if you check the filler it there's this prepare intent function which is you might need something specific uh to uh prepare your intent. Maybe you need like some kind of approval on this uh destination chain. So yeah, keep those things in mind.

Uh you could also build this in a docker container. Else is there. Um yeah, I think I can go back to the slides now. I'll I'll have time for more questions. Uh these are the prices.

There's best use of Hyperlane. Use Hyperlane any way you want. You can use it on uh local node, you can use it on test net, mainet doesn't matter. Um then the open intent framework could be anything related to intense could be a solver. Uh could be a way to settle, you know, a new way to settle.

And infra infra is also catch all generic. So yep, fun ideas. I don't know if you've heard of EIP 7702. Those are these nextg accounts. You can add intents to that.

And then there's the new settlement option like success sync S sp SP1 and this is the one I was talking about smarter inventory management. Uh you could rebalance with like unis swap pools. And another idea would be a telegram bot. Um use hyperlane warp routes. Pretty simple.

Um yeah if you have any other ideas let me know. Um yeah I think that will be it. I think I'm on time. Uh if there's questions let me know. I you can reach me on telegram.

I think telegram would be the quickest one. Uh the docs are there. I don't think I linked the intents but it's open intense.xyz and the discord is pretty active. We'll have other people in the team too.

All right. Uh examples for intents. Oh. Oh, I see. Um, let's see.

Infra could be something like an addition to the CLI, like maybe if you use the CLI. Uh, see, maybe there's a problem there. Yeah. Yeah. Yeah.

Yeah. That's kind that kind of thing. So, I I mean, arguably like infra is so wide, you could just put any infra for everything. So, yeah. Mhm.

Yeah. Mhm. Uh-huh. Yeah. Yeah.

You can do like across for like filling. You can across as contracts, right? Which fill, but then you could settle. So a cross settles with UMA which is optimistic oracle but you could instead use hyperlink that would be that would work that like the so if you saw the contract it just handles like settlement and refunds it doesn't handle re like filling yeah yeah um I didn't go much into like the trust model of hyperlane uh you could swap it out you could do whatever you want we have this thing called ISM interchange in security modules. Uh you could do a like committee like a validators like a multisc validators but you could also use something like succinct.

You could use uh you could use optimism bridge. We actually have a wrapper around that. So if you want to like be the most secure as you can but that takes seven days. H yeah exactly. Um we have more than like 15 now different kind of ISMs you can pick and choose.

Yeah. Uh was there another question? Okay. Yeah. This is the that's the uh original settler.

Uh yeah, you can do that. Yeah. Yep. Um so intents are mostly for ERC20s. Um you could do this for like NFTs if you want or like any other tokens but I I don't know if that is that beneficial because given that this is you know meant to be fungeible across tokens um it's not part of this interface but you can do that with hyperlink just general messaging if you so hyperlain interface is mailbox.

ispatch and mailbox handle and in the handle itself you can do another dispatch. Yeah. Yeah. So, okay. That is if you see the interface, uh there's like this order data, right?

You see order data, that's bytes. You can do whatever there you want there. So you send something encode it in here and then on the destination chain see if I want to put it in a lending pool. Mhm. Exactly.

Uh-huh. Yeah. Yeah. So, what what you could do is you could pass that as order and on the destination chain check for your condition and if it fails, just revert the order. I don't even care what kind of amount I'm sending.

Um, so that's you'll have to implement that. Um, but you have like this uh random you could just have arbitrary data here. So you could do whatever you want. Yeah. Yeah.

Yeah. Where do we check that? Uh we don't check it right now because we don't do that custom logic, but you could add that. um like you like this this is where you'll be changing it or like this is this is not for filling but where there's a filling function you'll be doing that. Uh filling is for destination chain.

Uh settling is for origin filling is for uh destination. Yeah. Yeah, that's what the refund is for. Um 30 seconds. Yeah, it could take like a minute.

Depends on the finality of the chain because we wait for finality here. No, optimism is short. Optimism is like one block. So that that is the finality like this is the finality we like hyperled at consider safe and we don't wait for the whole window I can yeah we have configured finality for different chains yes uh I'm I'm I'll be at the booth you feel feel free to come by yeah okay then um I I think that was the last slide and thank you. Thank you guys.

[Music]

Automatic transcript — names and jargon may be misspelled.