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

Loading player…

Make a Vincent App in 20 minutes I Chris Cassano

ETHGlobalSun, Nov 9, 2025, 12:00 AM

Chris Cassano from Lit Protocol walks through how to build and deploy a Vincent app in under 20 minutes. Vincent is an open-source delegation framework powered by Lit Protocol, enabling developers to create apps that can perform automated wallet actions under strict user-approved permissions. Chris explains how Vincent leverages threshold cryptography for decentralized key management—ensuring that no single party ever has access to user private keys or funds. In this tutorial, Chris builds a new app called “Warren Buffett”, a decentralized dollar-cost averaging (DCA) investment bot that automatically invests in undervalued crypto tokens using data from the DeFi Llama API. He starts by forking the Vincent starter repo, modifying the code to target random undervalued tokens (Pendle, Renzo, Beefy), and deploying the finished app on Railway with a one-click setup. Viewers learn how to configure RPC URLs, delegate private keys, and app IDs in Vincent, as well as assign specific abilities and policies that limit what the app can do—such as setting max daily spend limits. Chris also demonstrates the OAuth-style Connect with Vincent flow, how to approve permissions, and how users retain full control and can withdraw funds via WalletConnect even if the app disappears. The session concludes with examples of how Vincent can be used for delegated trading, automated AI strategies, or even wallet automation frameworks where AI agents manage assets safely under defined rules. 00:11 Introduction — What is Vincent? (Built on Lit Protocol) 01:09 Overview of Delegation Framework and Abilities 01:34 Forking the Vincent Starter App (DCA into wBTC) 02:15 Creating the “Warren Buffett” Value Investing App 02:55 Modifying the Repo for Undervalued Tokens (Pendle, Renzo, Beefy) 03:35 Editing Code in Cursor & Replacing Base Tokens 04:55 Setting up User Permissions and Spending Policies 05:56 Reviewing Code Changes and Committing to GitHub 07:02 Deploying to Railway (Backend, Frontend, Database) 07:30 Required Setup: RPC URL, App ID, Delegate Private Key 08:26 Building and Registering App in Vincent Dashboard 09:07 Creating App Abilities (ERC20 Approvals, Uniswap Swap) 10:38 Publishing the App Version and Verifying On-Chain 11:06 Connecting Configs and Deploying Services on Railway 12:22 Linking Forked Repo and Redeploying 13:45 Verifying Deployment (Backend, Frontend, MongoDB) 14:44 Fixing Redirect URIs & Updating Vincent App Settings 15:34 Running App and Connecting with Vincent 16:03 Approving Permissions and Connecting Wallet 16:31 Using the App as a User — Adding Assets 17:01 Sending ETH & USDC to Vincent Wallet on Base 17:47 Executing Daily DCA into Undervalued Tokens 18:35 Verifying Swap on BaseScan (Pendle Example) 19:13 Sharing App Link for OAuth-Style Connection 19:39 Expanding Use Cases (AI Agents, Automated Hedge Funds) 20:01 Closing Notes — Vincent Docs, Telegram, X, and Future Ideas _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 💻 ETHOnline 2025 This workshop is specifically for ETHOnline 2025, a 21-day hackathon held October 10 - 31, 2025, bringing 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 Lit Protocol X: https://x.com/LitProtocol ✅ 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] Hello fellow cryptobuilders. It's Chris Casano here from Lit Protocol and I'm here to show you how to make an app with Vincent in just a few minutes. Uh just some background, Vincent is powered by Lit Protocol. LIP protocol is a decentralized key management system that you can use uh for private data and um automated signing. It's powered by threshold cryptography so no one party ever has your private data or your wallet.

Um and then we built Vincent on top of that. Vincent is a uh open source delegation framework that basically makes it so that you can create apps that AI agents can uh can run and users can delegate their wallets to these apps. Um the apps can do automations and the apps are restricted to only be able to do what the user has approved. um there's abilities and policies uh which you know really constrain what can be done with the application. So um to get started uh we are going to click on this quick start here and we're going to jump over to the Vincent starter app.

The Vincent starter app is a GitHub repo that has a pretty basic example that does dollar cost averaging into wrapped Bitcoin. And so the first thing we're going to do is fork this. Um, and the app we're going to make today is called Warren Buffett. And the idea here is uh Warren Buffett does value investing, right? where he looks for um companies on the stock market that have high revenue um but maybe a low valuation or they have high growth.

He buys and holds them for long periods of time. Um and so the idea here is to do the same thing with uh crypto. And I have a little script that I had Claude write that uses the DeFi Llama API to try to find undervalued tokens in the Warren Buffett style. Um, and so we're going to fork this uh repo that does dollar cost averaging, the Vincent starter app, and we're going to modify it to uh invest in some of the undervalued tokens that we have from the D5 Lama API script. Um, and then we're going to deploy it.

So, uh, we're going to make the fork here. And cool. So, the first thing to do is we need to clone this so that we can start editing it. Um, I'm going to open it up in cursor. And what I'm going to do um is I have a well so I'm going to go find the file here that's actually that actually does the dollar cost averaging.

This is it's called execute DCA swap. Um and I have a little prompt that I wrote uh for Claude or actually I'm going to use cursor for this not claude. And uh the prompt basically says you know this dollar cost averages into bitcoin wrapped bitcoin. Instead I want to uh always dca into a random undervalued token from this array. These tokens are uh renzo pendle and beefy.

Um and I'm going to do this on uh base because gas is very cheap there. Um at the end of this tutorial uh we will have a fully deployed app with a URL that you can give to anyone. When they click on that URL they will be able to uh see a screen very similar to a OOTH login screen. Um you might have seen like sign in with Google before you know and you click that um it gives you a list of permissions like oh you know do you want to let this app access your calendar? whatever.

Um, and uh, this is kind of it's very similar, but it's for crypto wallets. So, you'll get a URL you can share with your friends, anybody. Um, and they can connect to it. Uh, they can permit very specific um, abilities. They can apply policies if they want like a max spending limit per day.

Um, and then it's impossible for the app developer, for me as this app we're developing right now, to violate any of those constraints or do anything else with the wallet besides uh the various approved abilities and policies. And so Claude is or sorry not Claude uh cursor is going through and um changing up the uh tokens that we are going to buy and um it's going to put in uh this list of undervalued tokens instead of the base rack Bitcoin address. So that we're going to dollar cost average into those. So let's review Claude's changes here. Um you can see we're picking a random undervalued token using math bot random from our array.

Uh we're finding the uh token name and symbol so that we can log that when we create an entry. Uh this will um I'm going to have run on a daily basis, but um it's a user setting. So the user when they put uh assets into this wallet can set it to be daily, weekly, monthly. Uh but for this example, we're gonna we're going to do daily. Um I think this all looks good.

So I'm going to click keep here. Um, and then I'm going to commit this um, DCA into undervalued tokens. Um, and then we're going to go ahead and push this repo. Um, these are aliases that I have. This is just get add commit, and this is just a git push alias.

So, if you know how to use git, should be no problem. Uh the next thing we're going to do is go to our repo here. Um and we are going to deploy it on railway. This is a one-click deploy process. Um that should make uh it very easy to deploy Vincent apps.

Um there are some prerequisites to deploy it. Uh there's a couple things I need. Um an RPC URL for Bass. can talk to base. Um, I'll need an app ID.

I'm Vincent. Um, and then a delegate private key. And the delegate private key is a um Ethereum wallet. You will load the private key um into the back end. So, it's like basically a hot wallet.

Um, and it's able to use the abilities um on behalf of your app that the user has approved. Um, and so what's nice is that if you know this delegate private key, for example, leaked from this server, uh, you know, the hacker that that stole it, um, wouldn't be able to steal any of my users funds, right? They would only be able to do the things that, um, I'm going to approve, which is, uh, use unis swap. And let's go ahead and make the Vincent app. Uh, so to do that, um, I'm going to go here and click build.

Uh, I'm going to log in with a pass key. Let's make a new one. The Warren Buffet developer. Um, and we'll save this in our little vault. Slide in with it.

uh Warren Buffett developer and cool. Now we're in the Vincent developer dashboard. So I'm going to create an app here. Uh Warren Buffet is the name. I'll put in my email.

This app dollar cost averages into undervalued tokens. Um, and then we're going to put in a dummy uh URL here. This is because um we don't know what the URL the actual URL is going to be until after we have deployed our app on railway. Um, and then like I said, we need a delegate address. So, I'm going to use cast wallet new um to get an address here.

copy and paste this into a little offscreen notepad that I have. Um, and now we can load the address here in um, and create the app. And now at this point, we're going to set up what abilities this app is allowed to use. So, I'm going to use an ERC20 approval ability so we can approve the unis swap contract. And I'm going to add the unis swap swap ability.

so that we can actually do the swaps. Uh we're going to publish this app. Um the Vincent dashboard lets you create different app versions. Um and you have to publish them when you're ready. This you know ensures that uh you can't rub the users because they uh approve a specific version and if you were to publish a new one let's say added new abilities the user has to uh consent to the upgrade to that version.

So we're going to publish the app version. App version published successfully. Uh we'll go ahead and check our app details here. Um, the app is registered on chain. We have active version one.

Um, and so I'm going to copy the app ID. Let me go back to railway. Paste that in here. Um, we also need the base RPC URL, which I can grab from my little offscreen notepad. And then we're going to paste in the delegate private key for the wallet that I just created.

Got that? Okay, save config. Deploy. And now Railway is deploying our project for us. Um, it's going to deploy three services.

Um, you're going to get a backend, a front end, and a MongoDB database to use for um tracking the DCA jobs. um tracking like the status of those what users have added etc. um you know because users can add various schedules uh daily, weekly, monthly and you can see it's making the MongoDB database right now that's hooked up to our back end. We have a front end. The um front end uses Vit and the back end is just a regular ExpressJS back end.

Um and yeah, with the onclick deploy, it should be pretty easy to set up. Um now there's one more step we need to do here. We uh forked this repo, right? Um we forked Vincent starter app to create Warren Buff bit. But if you take a look here in railway, this is actually still connected to Vincent starter app.

So, um, we're going to want to connect this to Warren Buffett. Um, which hopefully should come up. There it is. Um, and then we're going to uh connect this the front end as well. So, you got to click front end.

Do it on the front end. There it is. Warren Buff bit. Um, and now we can apply these two changes and redeploy everything. Um, even though we didn't finish our first deploy, that's okay.

We're going to do a another deploy. Oh, the first deploy did finish, but we're doing this new one. Um, you can see it has our latest commit DCA into undervalued tokens, right? That's the um advantage of our fork here. Uh, and it should deploy relatively fast.

Um, Railway is a a pretty nice way to deploy a whole bunch of services at once. Um, and you know, it's really cool to be able to create automations that you can share with people, like wallet automations that you can share with people and so easily um, you know, modify the logic and and just do this this very simple one-click deploy. Uh so our front end is built. The back end our our new deploy here with DCing into undervalued tokens is building still. Um and what we're going to do is um load up the front end here.

Um and the back end isn't deployed yet, but that's okay because there's one more thing we sort of have to fix. Uh I'm going to click on this link which will take us to the front end. You know, you can see uh I didn't change any of the copy about wrapped Bitcoin from, you know, what I forked. Uh but that would probably be the next step is to to change that that copy so that the whole app talks about, you know, being more in Buffid and um investing in undervalued tokens. So, I'm going to click this connect with Vincent button.

This is going to show me an error, right? because if you recall, we set our redirect URIs to local host um because we didn't know the deployed URL yet because we get a random one from Railway. So, uh I'm going to copy this. I'm going to go back to my Vincent dashboard here as the developer. I'm going to click edit and um I'm going to go ahead and put this URL in um as the app user URL.

So this is like what the user will will click on when they click open app um from Vincent and the redirect URI which is where they will get redirected after they've permitted the app. So we updated our app successfully. Let's see if our backend is deployed. It is awesome. So let's click try again.

And we should see this wonderful screen that looks very similar to an ooth connect screen. Um, you can see we have two abilities here. ERC20 approval and unis swap swap. Um, and you know, a little description. I could have uploaded a Lova if I wanted.

So, I'm going to grant permissions and it's going to, um, connect me and permit this app to use any of the assets that I send it. Um, okay. So now we are logged in as a user into the uh the DCA the dollar cost averaging app. Uh the first thing I have to do is get myself some uh some assets in here. Um I when I did the deploy um there was an option to put in an Alchemy gas sponsorship API key.

I did not do that. Um and so I do need to send gas. Um, I got to make sure I'm on base mainet here because this uses bass. And uh, you know, one of the thing that's really nice about Vincent is that even if the app disappears, right? Like um, let's say this front end totally disappears, it doesn't actually matter uh, to the user in terms of getting their funds out.

You can always get your funds out with Wallet Connect um, by clicking that withdraw with Wallet Connect button down there. Um, and that means that, you know, as the user, you're really in control, right? You control what the app can do with your funds. You can get the funds out even if the developer, you know, disappears from the face of the earth. Um, etc.

So, I need to also send myself some USDC. So, we have some thing to dollar cost average with. Uh, so we're going to go USDC. We'll put in let's say $10. Um, okay, cool.

We have uh the ETH and the USDC sent. Refresh my wallet balance here. And look, you can see my uh Vincent wallet um has some funds in it. Wallets are per application. um so different applications can't mess with other applications assets.

Um and so now I'm going to uh say let's DCA I don't know 250 a day. Um and I'm going to create DCA and then uh this should um fully work. And so if we go to our wallet here um and refresh base scan, we should ideally see the swap come in. Hey, it worked. Uh and so if we look, it picked Pendle as an undervalued token.

Makes a ton of sense. Pendle is super cool. And it bought 250 of it. You can see my USDC balance dropped by 250. Um and you know that's basically it.

So what I can do you know is uh is share this link with anyone right um and you know they will get that oath connect screen oath style uh connect screen that would let them start using this app. Um so you can create trading strategies uh and share them with your friends like delegated trading strategies. Um, there's just like so much possibility that you can do. You could let an AI agent go crazy with money and set a spending limit policy so that it can only spend, you know, $25 a day, but let it build up like they use an LLM to build up its own investment thesis and uh create your own like hedge fund. So anyway, thanks for checking this video out.

Um, and for checking out Vincent, uh, and if you have any questions, um, check out the Vincent docs, uh, their docs. Vincent.ai. Um, there's a link here to join our, um, Telegram. Check us out on X.

Um, and, you know, this is just scratching the surface of what you can build with Vincent lip protocol. itself is uh what Vincent has built on top of. It's also incredibly powerful and um a little bit more of a a primitive that you can use like a crypto primitive. So um thanks for watching. [Music]

Automatic transcript — names and jargon may be misspelled.