Build and Use Agentic Recipes with Bazantic | Tom Hay at ETHOnline 2026

ETHOnline 2026 · 10 Sept 2026 · 29:53

A hands-on hackathon workshop shows how to turn an API into a payment-enabled gateway and then compose its tool calls into a reusable, publishable recipe. Creating a gateway from an OpenAPI or OpenRPC spec generates an MCP server and a pay-per-request layer using x402 or the Machine Payments Protocol, with USDC pricing that can be zeroed out while testing. The demo builds a gateway for an Ethereum RPC provider, then has an AI agent assemble a recipe that fetches the latest block number and the logs for that block. Two of the three hackathon tracks require recipes that chain ingredients from several gateways.

Speakers

Topics

From ETHOnline 2026, hosted by ETHGlobal.

Transcript

Introduction to Bazantic Recipes

[music] >> Hi everyone. I'm Tom Hay. I am the chief product officer for Byzantix. Um, really excited to talk to you today about making recipes within Byzantix and what that means. Um, and thank you for participating in um, the ETH Global online hackathon. This is really awesome. It's something that participated in in years in the past um, in different roles and always get a lot of value out of it.

Meet Tom Hay and Prize Categories

So, for um, those of you who are building on our tracks, we have we have [clears throat] three three prize categories um, that are available and all of them require you to uh, create a recipe. And so, what we're going to do in the workshop today is actually uh, show you how you get to building a recipe so you can win those prizes um, and be uh, competitive in in this hackathon. Um, so what's a recipe? To start, the way we think about a recipe is it's a reusable outcome that's composed from model context protocol tool calls. Um, so you have an

What Is an Agentic Recipe

MCP server, model context protocol server. You take those tool calls, you compose them together. Uh, and that is a recipe. If uh, tools are called from from multiple servers, that's also a recipe as well. And so, it extends the the MCP server concept and allows you to make um, these tool calls in repeatable ways um, that the outcome might not necessarily be the same because you might be querying some information, but the process of of doing so is um is repeatable and composable.

MCP Tools as Recipe Ingredients

Um instead of calling a tool a uh a tool call or a tool call, we actually use the term ingredients cuz that completes the metaphor. Also, you know, in computer science, tools uh that there's a ton of collisions with that name. So, we would uh we chose to do a different name to uh prevent always saying like developer tool, tool call, MCP tool. So, ingredients go in a recipe.

Creating a Bazantic Account

Um we're going to build a recipe. So, to start, I'd ask if you want to follow along, you can go to byzantine.com and you can create um an account or log in to an existing account. Um I just want to point out everything I'm going to do here is going to be very hands-on um and live, so hopefully the demo gods are good to us. But, I can tell you that you can use our existing skill to do many of these steps in a way that should uh be just plug and play into your um into an AI agent that you might already have. Um so, when you go and hit log in,

it's going to ask you to put in an email and you'll get a a um not a magic link, but like a code sent to that email or you can use GitHub or Google. I am already logged in. Um I have uh a version of one of my accounts here where I'm already logged in and you can see some of these gateways already created, um already live, and you can look and and check them out. These are gateways from some of our our partners at at Bisantyc as well as some of the the APIs that um exist um from the hackathon sponsors. So I I went ahead and already created some

Dashboard and Existing Gateways

of those. Um a quick just walk through of the site. You have on your dashboard, you can get gateways. Uh the recipes tab we'll be spending most of our time on one and two today. Um but I'll also uh point out how API keys work, the playground, talk very briefly about spend grants and balances, and then um you know, talk about your your uh your account that gets created with it. Um we're going to do four things today. We're going to create a gateway is the first thing that we're going to do and that is part of every hackathon um prize here you have to to create account and create a gateway. Then we're

Gateway, Recipe, and Publishing Steps

going to just test if that gateway is live. So I'll walk you through that process. Then we'll create a recipe and we'll publish that recipe. Um so let's start with the create a gateway process. If you're logging in for the first time, what you're going to see on this page will be this big new gateway button. It's going to prompt you to create a gateway. When you create a gateway, it actually does three things. Um so a gateway, what you see is is after you create it is it's a a URL path. But behind the scenes, what that is is there's actually a X402 an MPP uh machine payments protocol payment

x402 and Machine Payments

gateway. So you can take payments per API request in a configurable way at this time on uh using base USDC um or uh uh uh the uh tempo like USDC. So, you're able to take off to to take payments on those two networks. If you're interested in having that exist for for other networks, please please reach out to me or reach out to the team at Bisantek. We're always interested to hear from you on that. The next thing it does is we require a um an open RPC spec, which you'll see when I click on new gateway. This will this will require you to uh input um an

Generating MCP Tools From API Specs

an open API or open RPC spec, and we actually generate from that a an MCP server. So, your initial MCP server that's going to get generated today will have like the tool calls will all be the methods created in that specification. And um that allows you to make these tool calls that become part of a a recipe. Um those are the ingredients, right? And then um the final thing it does, which I'm not really going to talk about too much, but if this is interest to you, we actually have some compliance checks on addresses that try to make payments through XPRL2 or MPP.

Um so, if compliance is very important to you, um please reach out to us because we we actually do have those in place, and we can talk more about it. Um so, I have this account. I click um create gateway. So, what I'm going to do, I need to put in the the base URL docs, which is optional, but this information will be parsed by our uh gateway creation wizard and a spec URL. Um so, I'm going to go ahead. I'm going to highlight one of our partners um that we've worked with a bunch is uh is Lookpify. Um they are an API provider. They uh provide access to many RPC APIs and Ethereum and and many

Gateway Configuration

others. In this case, we're going to set up their Ethereum service, right? Um so, that's our goal for for creating this gateway. I'm going to go ahead and just drop in their base URL URL is uh is gateway.liquify.com. Um then I also have their docs. You can see them right here, but they have some docs um that are are built using uh GitBook. And if I can copy that, I also want to copy over here.

Go ahead and copy that, and I'll drop that here. That's that's optional. You don't have to necessarily do that. For example, if you built your own API and you want to go through this process of creating a gateway for it, you don't need docs. It just helps us to understand how the API works and to add some documentation um when we create the the the gateway for you. The final part you will need, and if you don't have a open API or open RPC specification, it's something that we're very happy to to help you generate one, work with you to do so.

You can just reach out in the support channel um in the the ETHGlobal uh Discord. Just tag me. I'm I'm in there. Um at uh at twa five. And uh you can see me, Tom Ham, answering all the questions, but um we can help you create that spec for you for you to be able to put into here to create a gateway. Um one Some services, you know, if if you're integrating an external API, which is like part of one of our challenges, a lot of the docs will um be built off of an open API or open RPC specification. So, what you can do is

Finding OpenAPI and OpenRPC Specs

actually go and um look in the doc site and look for a {slash} open API.json or openAPI.yaml or openRPC.json, openRPC.yaml. You can also create your own and paste them in. For example, if you wanted very specific tool calls to be made. So, in this case I'm actually going to show a really simple version of the Ethereum open RPC and then like a way more advanced one and kind of show you how that that works. Um please be good demo gods cuz I'm going to have to go back and forth. So, here's a really simple one. I just created it where it's just publishing um very simple information, a subset. You

can see Ethereum execution JSON RPC. It's a subset of the methods. There's like a really big one, but we're going to create a really small one then I'll go back before we publish it and do the really big one, see how it works. It's going to analyze this. What we're going to do is just parse the docs. Uh we're going to parse the that information. We're going to pick up that this is a positional JSON um API. You can go in and we need to send an API key. For those APIs that don't require off, you can just go no off, no credential is set. But if you need an API key as part of it, we support API key with header, bearer token, query parameter, or URL path. We can also do basic off. Um

Parsing and Testing an API

and then we allow you to put in information optionally about the request paths to test that this works. So, in this case, based off the docs that we have for Liquidify, I already know this in advance, but we have we're we could send this key as a header or as a URL path. URL path is a little bit more, um, advanced in how it works, but uh so I'm just going to show you how it works. Um, for this particular RPC provider, this is what it, um, it looks like for that URL path to pass in an API key. It's going to be API equals and then the API key secret here. We're going to put the

secret in here where I'm not going to make it visible, um, for everyone, but that is, uh, what we can do to to pass in that. And so we've added this functionality in case you ever have to to do it in a in situation when you're presenting like this. That's in there. Now, if we were to test this, I actually already know some some, um, APIs, you'll find they will just accept if you send an API key even if you don't send a request payload, they will accept that request payload and give you, uh, a valid response back. Um, not everyone does that. In this case, uh, it's rejected because, you know, even though the key's the correct, we might

Validating JSON-RPC Requests

need additional information. We do. We need, um, a We actually need a response body. In this case, cuz it's JSON RPC, it's going to go in a request payload. Here, I'm going to use the same one that's here. And if this works, okay, it works. We have the connection. We can go back and and and confirm that. If it does error for you, you actually can go ahead and just say confirm connection, like force push through. Um, it's not recommended, but we do do allow that even if you're getting errors. And, um, if you once you send that request, you can look at the response details. So you can actually see this information.

So if you have any issues debugging, we have some debugging tools right in there for humans. If you're using the skill or the CLI, and that's part of your workflow. Obviously, um, your AI agent, no matter what you're using, is going to help you go through that process and prompt you to do that. I'm not going to walk through that flow because that's very It's very wizard-like in its own, but this is if you're doing it manually, this is this is how you would be You would be doing it. So, if we confirm that connection, we would get all the methods that I put in. I only put in a subset of methods to just sort of keep this simple.

Reviewing Generated MCP Methods

And I'll I'll create this and we'll we'll we'll work with this gateway, but I have one where you could feed in every single uh method um to build a tool off of, which would create upwards of upwards of 100 um API uh tool calls, ingredients for this this recipe. We only need these for the recipe that that I'm doing. Um but you can see them here. Couple key things to pick up on. You should be able to test all of these.

Um so, whether it's a RESTful API, JSON-RPC API, you go in and you should be able to hit the test button and get information. Um it's going to send a real request uh and it's going to send information that um you know, that that you'll get back and make sure that these these tool calls work. Obviously, if you're using a RESTful API, you can put in get, do all this information. This will be When you pass in the um the open API or open RPC spec in JSON or YAML format, this all gets created for you.

However, if you want to do some custom uh creation of of a new method, you can go ahead and do that, a new a new tool to be used, um a new ingredient in your MCP server. So, I'm just pointing that out. Another thing you'll notice is that we default all pricing to 1 cent and USDC. That is just as a as a way to default it, but you can zero this out. If you wanted this to to just be zero for everything, you could do that. And then you could just select all of all of those and apply to all 12, and then they would be zero.

Pricing API Calls in USDC

Um I'm going to set it to you know, just that same that same in this case it's a it's a millicent. So it's going to be 1 cent. I'm going to apply it to all the resources just for this test case, but what I would actually ask you to do is when you're going through the process of building this for the first time, just zero it out. So that way when you're doing all your testing, uh that's not an issue. And then if you want to make it externally facing, you can go ahead and and do that at a later time. Just makes it easier. We'll still do the X402 and MPP challenge, but in terms of having to go back and forth, you won't have to do that. At this point you could save the draft if you just don't want to like proceed ahead. I'm going to go ahead and

uh confirm resources and and create this. And so we have this. We can make any edits, and then we're going to go ahead and activate gateway. This is going to stand up our gateway. It's going to create our MCP server. Um and we're going to we're going to see this process to to to do so. It's going to start provisioning. Just going to walk you some things. You could actually publish this. So if you've actually built your own API that you want to put out there and just see if people are interested in, go ahead and publish this to the marketplace. Just know that um you know, then people can actually send requests to it. They can they can send you

Activating the Gateway and MCP Server

payments. So um once you create that that API um gateway here, um we're actually going to drop you some funds. So, you'd see your balance and here if if you go to this to balance and and check it out, it should go and you should see that happen. If you actually want to go and then see, you know, hey, do I you know, what are my balances? Where is my account? You could actually see this by clicking uh balances and then you could see the account details. You can see where the we dropped some USDC on base.

Gives you that ability. You can also add funds. Um like I said, you can go ahead and zero this out. Um additionally, if you want to just bypass it all together, this is this is in the skill, but um you can create JWT. So, the JWT you can pass as a header and it will just skip having to deal with the whole payment side. This is really good when you're building or testing something. You have that JWT credential to be able to do that. So, the JSON web token will allow you to do that. You can hit new JWT, create it for a while, revoke it, whatever you want to do, but that's that's really useful.

Testing Paid Gateway Requests

Once we've created that gateway, we can actually like go ahead and test to see if it works. Um here we have the liquefied gateway. Um hopefully you know, it says we have the it shows all the information that we have. Let's go ahead. Uh we'll check price on this first. It's 1 cent per request for this ETH block number. Hopefully this all works. Sent. Complete. Settled. I'm sending to myself so you're not seeing an increment, but we give you this um uh advanced debugging functionality that allows you to see the payment protocol, bit payment um payment payload, all of that information so that you can can see

what what happened here. One of the questions is like, do provide programmatic access to the observable logs, like hotel or rest format for agents to do something sub doing some white box testing? Actually, during this hackathon, so we will have visual access to that very soon and we would be interested in knowing your your use case because that's something that we can can work with you through. So, feel free to reach out. Like I said, in in the channel, you can also send an email to support@byzantine .com. My whole team gets that email, so that will help us, you know, figure out your request and and see if that's something that we can can build for you because if it is

if you do want programmatic access to observable logs, you know, that's something that that we can we can work with on you. So, very interested in in your use case there and would love to explore more. Okay, we got about 10 minutes left, so let's just jump in and do the the the recipe. and so we're going to go ahead and just hit recipes. When you hit recipes, you're going to get and you can see I already have some drafts here. I have a published one, which is actually for our for the hackathon. There's actually two two ones that was trying out. Um so, just talk through these real quick to

Sponsor API Integration Example

give you some ideas for the hackathon. As one of our tracks is that we want to integrate a hackathon sponsor API. So, this this specific one it's it is published. If you go to byzantine.com/recipes, you you would see it. Uh byzantine.com/recipes, I believe it should be Yep, it's there. You can see some of the other ones that we that we published out.

We So, you could see this here, but um what you'll see is that you have this account verification balance check. This one we totally made up. Um but we thought it might be interesting for folks to to try out. The idea of it is that it was going to verify a world ID proof to confirm agent is acting for a unique real human. That's going to check that agent's USDC balance on the Arc network to ensure that it actually has sufficient funds. If both of those checks pass, then it will retrieve the Hedera account balance and token holdings for a specified account ID. So,

this is very like you know, we we just kind of we're stringing things together here as an example. Um I believe the way I've written it is this actually will fail because one of the account IDs is wrong. But like when you when you test it, it's going to do this check, it's going to try and go through all of them and see if they work. And then it would it would Yeah, it should it should fail. Um yeah, because it's verifying that the the the the proof wasn't wasn't existing, so it it didn't it didn't it didn't verify it. It it it didn't work. So, that that that was good. But let me show you what you can do to

Building an Ethereum Logs Recipe

create a recipe. So, if we wanted to create a recipe, we're going to click new recipe. And we're basically going to get this reminder of what an ingredient a recipe is and then run and publish. This most of it it's going to try and build it for you itself. So, if I wanted to do um plea you know, please use my Liquify gateway to build to check the latest Ethereum block. Uh get the number.

Block Number and Log Tool Calls

And then get the logs for that block. Um what it's going to what we're going to try to do is, you know, use our own agents here to actually do this Ethereum block logs retrieval. This is a very simple one. This is a very simple call uh sequence that, you know, if if you've worked with any sort of blockchain, you know, get Eth block number, Eth get logs. Um so, it's going to basically hit that um and try to it it it will pull that information back. Um we can specify the the Liquify gateway that has been built.

Here's the one that I just built, and then we have our tool calls here. And we say Eth block number, and then we'll say um Eth get logs, and it will use those um those gateways. If you're doing multiple call like gateways at a time, you go in and you add gateway, and you So, one of our tracks, you need to have multiple gateways, you're going to go pick that gateway, you're going to add it, and any of the published ones you can see um and get in there and and start using that gateway. You can add inputs. Um this could be a gateway URL. We don't need a gateway URL. Um we could say what network to look for. That's a good one, too. We could also say like get logs. Um

Combining Multiple Gateways

it's going to draft this for you. You don't have to use any of these pulse controls, and then we have some advanced information about which like model you would want to use. Um so, we're going to go ahead, and we're going to and then you can see like, "Oh, here are some other things that have get block by number, get logs." These are suggested. You can just go go and say dismiss that. We had some other RBC provider partners in their validation cloud. So, um we chose not to not to put in that information, but we delete it there.

Let's create draft. So, this should have the live preview go away. Um once we create the draft, we got rid of that. Yep, cool. Ba ba ba ba ba. We're going to pick that gateway. We added it. Create draft again. We have this information. So, now we have this. Of course, you can test it. As we're kind of coming up on time, what you can do then is go ahead and publish. This will publish out. And if you want to make this public, you can make it public to everyone. Like I said, if you've built your own API, that's a great thing to do. And then once you do that, that should now update and show on the recipes page. So, you can view the recipe. It will show who it's published

Publishing a Bazantic Recipe

by, which will be, you know, put with your your your address. Um so, for our tracks, you know, whether you're doing a continuation track, it's a great opportunity to integrate one of your your APIs. And for the continuation track, we really want to show like how your performance has um improved by by using um you know, these these tool calls, these uh these ingredients to build recipes to get better results. So, you're going to be comparing those um against each other.

Hackathon Track Requirements

and we want you to do a screen capture. If you're doing the other two tracks, um you're integrating APIs and building um either either using APIs that we've we've published out um from the uh the sponsors or from uh partners that we have that you can use, or you're integrating your own. And you're making recipes that have ingredients from uh multiple multiple gateways. Um so, uh with that, uh, the I'm going to just share out some information based off the questions. Um, if you need to get in touch with anyone on the Byzantium team,

Bazantic Support Channels

uh, the best way to do so can be support@byzantium.com. We'll get that, um, we'll get an email there. I dropped it in the chat for everyone to see. and then additionally, if you need to, uh, actually like reach out on on Discord in Byzantium, you can find me there. I am, uh, at Tom Hay 5. So, I'll also just drop that in there and I will be hanging out, uh, pretty active, all day. I'm pretty good at response time, except for when when I'm sleeping.

Um, so, um, with, uh, 2 minutes left, I'll just point out where the Byzantium skill is again. Um, and if you have any suggestions, like if there's anything that you see with this, um, we will we're definitely love feedback. We're taking feedback. We're in a spot right now where, um, you know, we want to make sure that you're having a great hackathon experience. If you have any issues creating recipes, if you're getting errors, if there's something that's going on, we're very happy to talk with you, to, um, you know, ju- jump on a chat and figure out what what we can do to help make this work

Skill Files and Product Feedback

for you. Um, so, like I said, just reach out, but, um, this kind of gives you a sense of of how our platform works and, uh, what you can do with it. Uh, so, go create some some recipes. We'll continue add adding ones there for you to, uh, to marinate on and and and and see that are interesting you. We've also created one. Here's one that's just like a a sensor. You we we were doing a little work on purple air and you can drop in a sensor index and get information about the air quality at that sensor. So to just give you a sense of like, you know, obviously there's there's a lot of crypto use cases of this, but you could

Agentic Recipes for Any API

use this for really any API that you might interact with, whether it's a a mapping API, a real estate API. So, we'll continue to publish out those examples. But, thank you for joining me for this session. It was a quick 30 minutes, but hopefully that gives you a sense of how to use Byzantium. Reach out if you have any questions or issues and you know, very excited for all the hackers to um to I'm very excited to see all your projects and to you know pick some pick some winners.