All right, looks good. Let's go.
Here we go. All right.
All right. So I was basically going, who knows when I'll see you again?
Might make the best of it.
Yeah, I appreciate it.
Every time I see Cali, I want to talk cashew.
So talk cashew to me, baby. Talk cashew to me.
I'll share the nuts.
Sure, let's talk some nuts.
So, and kind of, I have a specific question.
I saw you, I saw you on, like with pen and paper, drawing Merkle trees.
Oh, yeah.
Trying to solve a problem.
Yes.
Tell me about the problem and tell me about what you have in mind.
Okay, you want to go in real deep?
Yes, let's start deep.
Okay, so I'll start with...
Fuck the noobs.
Fuck the noobs, all right.
Well, I'll try, no, no, no, I'll try to get the noobs in.
So, simple concept.
The way a cashew mint works is it issues e-cash tokens as blind signatures,
and then it gives out to the users,
and then those tokens are at some point spent back to the mint.
And so the mint has kind of, let's say, one major list,
and those are the spent e-cash tokens.
Typically, this is a normal database.
It's like a table.
You put every single token into a table.
And another way to organize the list instead of an ordinary table,
you can also organize it as a sparse Merkle tree.
And a sparse Merkle tree is basically, you know, you have a Merkle tree.
Let's say you have all the possible e-cash tokens in the world, like 32 byte, right?
It's like a massive space.
And imagine them all in a line, starting from 0, 0, 0, 0 up until like 1, 1, 1, 1, 1, 1, 1,
the 256-bit full ones.
So this is all in a line.
And if you organize them all in a line, then you can start to build a Merkle tree out of them.
So it's a one-dimensional line in the bottom,
and then you go up and up and up and up, and that makes a Merkle tree.
And at the end of the day, you get one Merkle root, which is the top root of the Merkle tree.
So you can think of the root of the Merkle tree, of the sparse Merkle tree,
of all the spent e-cash tokens a mint has ever seen as like the state of the mint.
So the Merkle root, the root hash at the top,
says which tokens have ever been spent in that mint encoded in a single hash.
Yeah.
So once you do that, you have like a super compact representation of what the database of the mint looks like.
The state of the mint.
Like I say the state of the mint because that's the main thing that evolves over time.
Yeah.
From time now to time now, you spend a token.
I add it to the database, which I would insert in the bottom of this tree,
and that changes all the hashes on the top, and then the Merkle root at the top changes,
and that's the next state of the mint.
Yeah. Maybe explain the minting spending thing.
Like you wanted to say, let's bring in the noobs.
Okay.
So let's maybe take three steps back.
Okay.
Usually a mint has a lightning gateway, and the idea is to have e-cash on top of Bitcoin,
and with Cashew, the awesome thing about Cashew, not only can you send Cashew tokens around,
you also can just pay regular lightning invoices and the blinded signatures that you mentioned.
The awesome thing about that is the guy who runs the mint, which is basically the banker,
doesn't see anything.
Like who pays whom and who holds how much money, he doesn't see.
That's what blinded signatures brings.
So it achieves that basically through cryptography, but what you end up,
as you already started explaining, is the simple idea is you send Bitcoin via lightning to the mint,
and the mint issues you e-cash tokens.
And if you want to go into that process a little bit more, the real process is I send you Bitcoin as a user,
I send the mint Bitcoin, and with that, I generate a random secret.
It's called the e-cash secret, and I blind it.
So it's kind of like an encryption.
I blind it with an encryption key that only I know as a user, and I give that encrypted secret to you.
And once you receive the Bitcoin on lightning, the mint, it says, okay, I received the Bitcoin,
and then I sign that encrypted secret I sent to you, and I send it back.
We call that a blinded signature.
And the last step is now that I receive the blinded signature back as a user,
I unblind it with that encryption secret from the first step, and now I get an unblinded signature,
which is that e-cash token itself.
So that thing is a token, and I can now carry that.
The mint doesn't know what that secret looks like, that this unencrypted signature looks like.
It has never seen it before, but the mint will be able to know in the future when I want to spend it again,
so I can come back to the mint and say, here's a blind signature, here's a secret,
look at the signature you made, that signature mint, and the mint can verify, yes, this was me,
but I don't remember which one of those users you were when you first created it.
So at that point, when I come back to the mint and want to spend that token,
that's when the mint needs to insert that token into the database to prevent the same token from being spent again.
So the main goal or the main job of the mint is essentially preventing double spending
by remembering which tokens have been spent.
Keeping track of these tokens.
Right.
And so that lands on mint state.
Yes.
Mint state is the issue you were trying to solve with pen and paper, with the Merkle tree.
Well, it goes a bit deeper, so now let's go back into Merkle trees.
So for a normal Merkle tree, you can make something called an inclusion proof.
So if I know an entry at the bottom of this tree and someone has the whole database,
basically the mint, can give me the data I need to traverse from that entry that I know up until the top.
So I can ask the mint, so I know this one entry that I just added to your database,
can you give me like the parent or the sibling of the level above,
and then the sibling of the level above, and sibling of the level above, so on and so forth,
until you reach the very top of the hash.
And with that data…
And the neat thing about that is you don't have to look at everything,
you just look at one branch of the Merkle tree basically.
So it's very inexpensive to do.
You just need a couple of entries of the Merkle tree for me as a user to be able to verify
that that hash that you have at the very top of the Merkle tree
is actually corresponding to the entry that I just gave you.
So the mint has your token.
Right. This is called an inclusion proof.
So I can prove that this entry is part of the Merkle tree without knowing the entire tree.
And this is super powerful.
And now when you go to a sparse Merkle tree, which is like the one that is even bigger,
I just tried to really like in a short way explain it in the beginning,
but essentially it's again a Merkle tree but just organized a little bit differently,
but that one also allows you to create something called an exclusion proof.
So you can prove that an entry is not in the database.
And an exclusion proof in the context of like an e-cash token
where the mint carries this entire tree as the state,
an exclusion proof proves that the token that I have hasn't been spent yet.
So why would that be interesting?
Now the idea you saw me sketching on a piece of paper was just basically trying to think a little ahead,
although all the thoughts that I have are not complete yet.
Like it doesn't work fully in my head yet.
But imagine the mint would kind of commit to the Merkle route on the Bitcoin blockchain.
It doesn't really work on a Bitcoin blockchain because we cannot do Merkle proof on Bitcoin yet
because we would need like an opcode like opcat or something.
But we could do it, for example, on arcade or other like more expressive scripting languages on top of Bitcoin.
But the idea is that if the mint would say this is the current state of the mint
and I imprint it onto the Bitcoin blockchain and I add a script on top of it which says
any user who can prove that they have an e-cash token that is valid,
which was signed by the mint, and can prove that the e-cash token is not included in that Merkle tree,
so with an exclusion proof, might be able to, let's say, unilaterally withdraw from the mint.
So you could build a script that lives on-chain that the mint uses to manage its reserves
that says anyone who can produce this exclusion proof can withdraw from the reserve of the mint.
And why is that interesting? Because it, at least in theory, opens like a way for a unilateral exit for e-cash mints.
So even if the mint goes offline, even if the mint doesn't want to cooperate with you,
you can just go on-chain and say, here's the exclusion proof, give me the Bitcoin back.
Alright, awesome. I'll go three steps back again.
So, CashView is awesome, mints are awesome.
The two main issues, one you just mentioned, which is basically a full, I don't want to call it a rug pull,
like the mint goes offline. Because I said rug pull once and you objected and basically it's like a DDoS.
It's like denial of service. The mint cannot rug pull you, that's where the blinded part comes in,
because you can't be targeted, the mint doesn't know about you.
But the mint can go offline and then you can't access your tokens, which means you can't send anything.
I want to make that a little precise, just for completeness.
The mint can rug pull everyone by stealing the Bitcoin in the current paradigm.
Yeah, we'll come to that later.
But it cannot rug pull you specifically.
I'll ask you about the TESF later.
So, the two main criticisms is basically right now, let's make it three.
The mint can go offline, the mint can rug pull you and the mint can inflate.
Right. Fractional reserve.
So, to simplify, there's inflation risk and there's rug pull risk.
Right.
And you're trying to tackle both of them.
Right.
And so, the exclusion proofs of the sparse miracle trees?
Yes.
If you add unilateral exit to the system, then you kind of solve almost the entire problem.
If you could couple that on-chain anchoring of the mint state tightly to the mint's operation itself,
you might be able to solve both problems at the same time.
So, I call it the slow rug pull and the fast rug pull, actually.
So, the slow rug pull would be the inflation risk, where the mint prints tokens slowly at the sides.
No one really notices the mint.
Sometimes it withdraws from the mint itself.
So, the mint operator pretends to be a user and withdraws some.
And then at the end, the last guy still holding the bags is basically the one who's rug pulled.
And then the other one is the fast rug pull.
The mint just says, you know, fuck this, I'm closing down, taking the Bitcoin and going to Cuba.
That would be the fast one.
So, if you could add unilateral exit to Cashew,
and if you could guarantee that the mint honestly represents all the issued tokens and the burned tokens on the blockchain,
you could solve, in theory, both of these problems.
Again, asterisks, this thought is not fully complete in my head yet.
But I think it kind of makes sense.
Yeah, I see.
So, all right, let's switch gears to the TE stuff that I just alluded to.
So, the issue right now is also, or maybe describe the problem that running a Cashew mint in a trusted execution environment would solve.
So, if you run a Cashew mint on an ordinary server,
then you as the operator of the mint generate the private keys for the e-cash itself,
so the e-cash issuance, that is the private keys to make blind signatures,
which creates e-cash tokens, that creates the supply.
The key to the mint.
And the same key can also be used for the Bitcoin on-chain reserve.
So, we can think of it as a single key that is used for both operating the mint and for securing the Bitcoin.
So, if you run that server on a normal server, obviously, you can just SSH into the thing and then get the private key,
rock everyone and run away.
So, a TE is called a trusted execution environment, sometimes called an enclave,
but it's essentially a server where you as the operator don't have access to the server itself.
So, it's like setting up a server in like a full self-driving mode.
You start the server, you install, let's say, CDK mint, the mint implementation that we have for Cashew,
and when you start it, it generates the private keys for the first time,
but from that moment on, you never have access to the server again.
So, if you start the server with a verified version of CDK,
where you can like verify on GitHub and look at the code and see it does exactly what it says it will do,
then at that point, the mint just keeps running,
and theoretically, no one should be able to break into the mint and steal the Bitcoin
because the operator himself never sees the private keys.
It's generated inside in a sealed box.
Yeah, same idea as the secure enclaves we have on our phones.
Right, secure enclaves we have on our phones.
Some hardware wallets have that, Bitcoin hardware wallets have that.
There's like a bunch of shit coins that run on the same premise.
Essentially, hiding away the private keys from the guy who's actually operating the server.
So, why is that very useful for the Cashew case is because now you can essentially rule out
that the fast rug risk and the slow rug risk of the operator,
because the operator doesn't have access to these private keys.
He cannot mess up with it.
And the nice thing about secure enclaves is you don't have to like,
trust me, bro, the operator is actually running a real version of CDK,
but the client himself can connect to that server
and get like a signature from the actual hardware of that server
that says I am running this software and nothing else.
So, before you connect to the mint, before you send Bitcoin to the mint,
you can verify this is CDK.
I've reviewed it on GitHub.
This is the right version.
Yeah, this is the release.
This is the tag.
It was a signed release and so on.
And it's running exactly that code and it has exactly that hash.
This is amazing because it reduces the risk by a lot.
So, it's great for the users because users know that the mint operator cannot steal the Bitcoin.
The mint operator cannot print more e-cash.
But it's also great for the mint operator because…
Plausible deniability.
Creates this beautiful scenario where the mint operator can actually say I have no access to the Bitcoin.
I cannot run away with them.
I have no access.
I don't have unilateral access to the reserves of the mint.
Yeah.
So, what some people might know about is like with VPN providers and those types of services,
if a government comes knocking and says give me all the user data
or also for encrypted messaging, encrypted emails and so on,
what you're describing is what some of those guys are already doing.
They can literally say I don't have any user data.
I can't do anything.
I can't give you anything.
Well, this is on top of the privacy that the e-cash mint provides you anyway.
So, the mint itself, the whole blind signature part already gives incredible privacy whether it's in TE or not.
Yes.
But on top of that, you can even like if the police comes knocking,
they wouldn't be able to get the private keys and take the Bitcoin, for example.
Or even the protection for a hacker.
There's also another thing like an independent risk that you have is even if you're a good guy,
you get hacked, someone gets a private key somehow.
Exactly.
There's always a possibility that someone breaks into your server and just starts printing Bitcoin, for example.
So, you can also reduce that risk basically to zero by running it in a TE environment.
All right.
Fantastic.
How far along are we with this?
So, we have mints running in TE.
So, we are there.
It works.
I'm like one of only two, three people who have tried it so far because it's not ready to roll out yet.
But we've shown it works.
It works great with on-chain Bitcoin.
One complication is…
So, instead of a Lightning Gateway, you have an on-chain Gateway.
Right.
You cannot really run a Lightning Node inside.
There is a beautiful project called Lexi.
There's actually a technically huge achievement who have managed to run also Lightning Node inside a TE.
Okay.
But it's nothing like that you just do on the side job, right?
Whereas on-chain, if the mint is backed with on-chain, it's very simple.
You have a BDK wallet.
You generate a private key.
You just talk to the blockchain.
That's it.
It's super simple to run an on-chain wallet inside an enclave.
It's not so easy to run with Lightning.
But that's not a big, big problem.
We can still find solution for Lightning.
That still works.
But you can think of it like the easiest way, the simplest way is having an on-chain wallet that backs the mint.
And so, that works.
I've sent on-chain Bitcoin to a server where I would never be able to take out the Bitcoin again,
except if I send back e-cash to the server and withdraw.
And you go through the actual, is it called melting actually?
It's called minting during creation and melting during the destruction of e-cash.
So, no funny business, just the official path to get the sets out again.
You mentioned briefly before with the exclusion proofs that it would be possible on Spark using ArcScript, right?
Yes.
Tell me more about that.
That's still something I barely understand.
So, I said Arcade because Arcade is one of the two Arc implementations that we have.
So, there's second called Bark.
And then there's Arcade from the Arcade guys.
And they both take very different approaches on how to implement Arc.
I would say Bark really focuses on payments and Bitcoin.
And Arcade tries to build something like a virtual machine that can run in an Arc-style system.
And they want to enable basically all kinds of computation that you could run.
Instead of running Bitcoin script, you could run other scripts that can be enforced on the Bitcoin blockchain eventually through that unilateral exit path of Arc.
When you say all kinds of computation, like what level of computation are we talking?
Are we talking Turing-complete?
I cannot really answer that question because I haven't looked that deep into it.
But I would assume that it's Turing-complete because it can essentially do what Ethereum could also do.
All sorts of computation.
And that's the nice thing about it.
It doesn't change Bitcoin, but it still allows you to make those complex computation.
Why it's necessary for this particular problem is the exclusion proof itself.
So, on the Bitcoin blockchain, you cannot execute an inclusion proof or an exclusion proof for Merkle tree.
You mentioned we would need that.
Yes.
So, with Opcat, we could do it on-chain.
But it would be extremely expensive to still just do it on-chain.
It would take a kilobyte of data just to prove an inclusion or exclusion proof for a 256-bit deep Merkle tree.
So, that's a bunch of money that you would have to spend for a unilateral exit.
Whereas on Arcade, it's essentially for free.
So, you can do it very fast, very cheap, and then unilaterally exit from Arcade back to the Bitcoin on-chain.
Okay.
Given all that, what's your best guess for the next...
I know it's impossible to say.
And in the world that we're living in right now, I was about to say near-term future, 6 to 12 months.
But that's super futuristic.
12 months out, we'll be living in a different world.
Exactly.
I have no idea what's going to happen in 12 months from now on.
But in terms of what you want to ship next, so to speak, or what are the people that you work with that are all pushing this forward?
Yes.
Where is the puck going?
How do you see it evolve?
A bunch of super smart people have been nerd-snapped by this, which I love.
It's beautiful to see that there's a bunch of people I really respect in the Bitcoin space who have contributed brainpower to this idea.
Luke Childs has done it.
Hooks has also been nerd-snapped by this topic.
I think Waxwing also looked at it, right?
Waxwing was also super interested in it when I explained it to him.
But there are a few challenges still remaining.
So the TE part, we solved it.
CDK works.
Yeah, proof of concept is there.
We know that this works and we know that this will work.
But for example, there's still some risk remaining.
The biggest one is you shut the mint off.
So there's still this issue that even though the operator cannot steal the Bitcoin, they can still just turn off the mint.
Basically, if they don't pay their Amazon bills, then the mint goes offline.
What happens then?
There is one very simple and elegant idea that I really like about how this can be managed.
Instead of just storing the funds of the mint in a simple on-chain address, you could store it in a little bit more complicated script of on-chain.
Which says the mint can control the on-chain funds, except if you wait two weeks.
Then another multi-sig quorum, like a third party.
So you have a time sig triggered.
Right.
So if the mint goes offline, you wait two weeks and then another entity then gets control of the Bitcoin.
And they could then help, let's say, the users of the mint that just went offline.
They could help them to withdraw.
Take the latest state that we know and tally it up.
Exactly.
So a requirement for that would be that this other third party needs access to the database of the mint.
Because they need to know which e-cash has been spent already.
And so after two weeks, the mint is offline.
After two weeks, you go to the third party and say, here's an e-cash token I haven't spent yet.
Check your database.
They're like, okay, this is true.
The mint is offline.
You get your Bitcoin back.
I see.
Awesome.
That's cool.
That's a good use of time locks and multiple spending paths and those kind of things.
Fantastic.
All right.
What else?
Those were the two biggest question marks for me.
Where I was like, if I have 20 minutes to pick your brain, that's what I'm going to ask.
But lots of other things have happened.
Obviously, we're still at the Freedom Forum.
AOS convergence happened before.
What are some other exciting things that are currently happening on the Cashew side?
So one thing that is a pretty big change that we're working on right now is we're changing our entire crypto.
So I'm sorry for everyone listening right now.
We're making it again.
But we feel like as long as BlackRock hasn't bought Cashew, we can still make changes, basically.
So what we're doing right now is currently we're using SecP256K1 as the curve for Cashew.
It's a very simple cryptographic scheme invented by David Wagner in 1996.
It's funny because he invented it because David Chaum himself, he patented RSA blind signatures.
And because no one was able to use that, David Wagner just used an elliptic curve paradigm to make blind signatures.
Why do you think these people like patents so much?
Like, you know, Schnorr was also...
It is terrible.
I mean, Schnorr is a good example because Satoshi couldn't use Schnorr signatures up until he was gone.
And then we could use them as Schnorr signatures.
Why they do it? I don't know.
I think they live in a sugar world reality where they think like this idea, if I protect it, I can make money off it.
And others won't be able to do it.
But, you know, I'm absolutely not a big fan of patents at all.
I would rather want to live in a world where ideas cannot be protected by intellectual property.
Shout out, great book against intellectual property.
Absolutely.
I mean, for me, I think like we need to tear down this entire system of intellectual property.
I think information wants to be free, should be free.
And not like the idea itself isn't the main important part, it's the execution.
Yeah, in the cypherpunk future, like where we are going, we don't need no roads.
So the roads are intellectually property, right?
100%.
Anyway, so we use that scheme from David Wagner, which is a very simple blind signature scheme.
And it has a couple of problems that, you know, for example, the biggest one is, it is technically speaking, not a blind signature scheme.
It is a blind MAC scheme.
And a MAC scheme is Message Authentication Code for the crypto nerds out there who understand.
A signature scheme is defined as you can verify the signature with a public key.
And in Cashew or with any MAC scheme, you can verify a signature only with a private key itself.
So if I, like as a third party, you would not be able to verify if a Cashew token is really signed by the mint or not.
Because you don't have the private keys of the mint.
And for this, we have used a construct called DLEQ proofs.
It's a discrete log equality proof.
And it's like we're doing yoga to make something very simple possible.
And it's not the ideal solution.
We've been building way too complicated solutions for a very simple problem that should have been just verify the signature with the public key.
Done.
But we don't have that because we chose this very simple scheme.
Now, we are tired of it and we want to go to the next level.
And the next level is a pairing based crypto called BLS signatures, which are also very simple math, very well studied.
It is not the Bitcoin curve, but it's a different curve.
And with this new crypto, we'll be able to verify e-cash also with public keys.
That makes everything that I just explained with like the third party helping you to off board and so on and so forth.
Way, way simpler.
So at the end of the day, what we will have is new crypto that is simpler and easier to verify publicly.
And it will allow us to build way more security solutions.
But like you said, that's obviously a breaking change.
So what version are we going to be at with the new cryptographic scheme?
It's going to be like the second version of the crypto, but we have prepared an upgrade path already for these kind of changes.
So it's not going to affect your experience at all.
In the best case, you will not even notice anything.
So we have something called keysets in Cashew.
And keysets are the set of private keys or the set of public keys that the Mint uses to sign these tokens.
And from our perspective, we just add one more version to this keyset.
And in the next version, you will use a different curve with different crypto.
Again, from your perspective as a user, nothing really changes.
From our perspective, everything gets a little simpler.
Yeah. Awesome. Awesome.
What's the timeline on this switch and on this upgrade?
We've already built it.
We just need to press the merge button, but we want to do it like in synchrony.
So we're going to upgrade all the wallets that we're maintaining and then press on the merge button altogether.
And then hopefully people will start deploying these new keysets in mainnet.
And then we'll see hopefully all the wallets just seamlessly continuing to work.
So I would say two weeks.
All right. Two weeks. CM. Fantastic.
You say you've already built it, but that's a bold-faced lie.
No. Go to GitHub.
No, no. What I mean is like your agents have built it for you.
So that's something else I want to dig into with you just for a couple of minutes.
Yes. Let's go there. But I want to be fair.
And, you know, we have a whole team of people working on this.
When I say we built it, then I don't only mean my agents, but the agents of my colleagues.
I was about to say, but everyone is using agents by now, including Ege.
Shout out Ege. Last man. Last man who fell. Last threat caller that got converted recently, I've heard.
Yeah. We've been pushing extremely hard on this.
So I've been like on this whole agent decoding thing from day zero, basically.
And I saw very early, as everyone else said, this is going to be the only way that we're going to work.
So all of us in the team are super AI based.
We make a big difference between what is critical code that a human must edit or at least review thoroughly.
And then there's a bunch of code that is just wallet side, UI, business logic stuff.
That is where, you know, you cannot break anything because the underlying library does everything for you.
And everything like the sugar coating, we just do it completely in AI.
The old paradigm still holds, which is don't roll your own crypto. Right.
And it goes further than that. Like don't vibe your own crypto.
The more things change, the more they stay the same.
But talk me through your setup. Like how does it compare to Marty Malmy's setup, for example?
Which to me is like, you know, other people are merely experiencing AI psychosis.
He was born in it, molded by it. He was running around with the laptop open at all times, basically.
Shout out to Malmy as well. He's an inspiration to me.
But my setup is changing all the time.
So first of all, I have no allegiance to any of the providers or models at all.
I see them as like arbitrary exchangeable products.
So I'll use any model at any given time.
I don't make a difference between an American model and a Chinese model. I don't care.
I run local models as well. And I wish they were better.
But at this point in time, they're still not useful as coding agents.
So you need to go to one of the providers.
My setup personally is I use open router, which means I can use all the models all the time.
I don't need to select one and just keep that.
My life happens in open code.
So this is a coding harness that runs in a terminal.
I spend most of my days in open code inside there.
And yeah, I've developed many different workflows over the year or the months in the recent months.
What I really am fascinated by these days, though, is kind of how can I get even better?
What does it mean to be a really good agentic coder?
What are the tricks and tips that make it work better?
So I'll make one example that I learned from Peter Steinberger, for example.
And this completely blew my mind, although this is such a simple fact.
He said when you watch your agent code a function and the agent gives the function a simple name that you don't like,
then don't tell the agent to change the function name.
Because just because you like it doesn't mean it's the better name to choose.
Because you're going to kill that agent and you're going to create a new agent tomorrow that is supposed to find that function again.
So you have to think basically like them.
You submit to the agent and say, okay, agent, whatever you think is right probably is the best way
because tomorrow another agent will have to continue to work.
So this is one simple factor that you pick up during this entire crazy development.
So what I'm really trying to dig every one single person that I meet who is a coder using AI is what are your tricks?
What are the things that you've discovered?
I believe we're in a special time where there is no written knowledge, no systems, no formalizations.
It is basically like from mouth to mouth.
We're back to the Middle Ages where knowledge spreads through colloquial conversations.
And this is crazy to me because it's already like a billion trillion dollar industry
where the smallest optimizations of how you work with AI could have massive impact on your output.
And also on your cost.
One form of retard maxing is token maxing.
And I see a lot of people do that just like spending endless amounts of tokens.
Another one is that it just makes sense to understand how these machines work.
For example, what I see noobs do a lot is they start a conversation with an agent
and then they go in one direction and figure that's not the right direction.
And they tell the agent, no, that's not what I mean.
Just do something else.
In that case, what I see is you're loading up the context with bullshit that the agent doesn't need.
So instead of trying to navigate the agent back to where you want to go, just kill the agent.
Create a new one.
Make a better prompt from the first one and try to one-shot everything that you're doing.
That's my goal.
I'll tell you two of my tricks.
As you know, I'm a big fan of dialogical development and dialogue in general.
And like you said, we're in the age of dialogue right now.
Word of mouth kind of pro tips and so on.
And obviously, the whole idea of Sovereign Engineering itself was to build something
that evolves around and revolves around dialogue.
And so what I do to build up context is I always basically use the Socratic method before I start.
So, fresh session, new context window, and it's like, basically, let's say on the search,
I want to basically modify some substitutions that the search does.
It's like, are we doing any substitutions in our search?
And it's like, oh yeah, here's how we do it.
And it's like, okay, what are the things that we substitute?
Yeah, here's the things we substitute.
Would it make sense to add these two?
And then, yeah, it would make sense.
Okay, let's add it.
What else do we need to do?
And then I always end on questions also.
And one is like, what's something that we should refactor?
On the code we've just touched, on the branch we're on, what's something that we,
like low-hanging fruit, that we should refactor?
Give me the top three.
Awesome.
Give me the top three.
I always do that.
And if I disagree, like if all top three are bullshit, we don't refactor at all.
Yeah, you know you're finished.
Yeah, exactly.
And so I have macros for all of these and all of these questions.
And so on the conceptual side as well, it's like, you know,
give me the top five ways of how we could do this.
Often what I do is I let the agent implement something complicated.
And at the end of the whole implementation, even if it works, I ask it,
now that you've done it, what would you have done differently?
Because now it has seen all the context.
Exactly.
And only after doing it, it knows what the mistakes were that it did.
Yeah, just like us.
It's like, oh, now if I would do it again,
I would probably factor this function a little bit differently and put this there.
And it's like, okay, just do it.
And it just fixes the problem that it just created by itself.
Yeah, I do that a bunch as well.
And what I work with is multiple models and a fresh context window
or another agent, those kind of things.
I think this is something that, you know, everyone should realize listening,
is context window is precious resource.
You should not fill it with useless stuff.
Because the models even get worse at doing math, like basic simple math.
If you ask an agent what's 3 times 5,
it will answer that question with a higher probability correctly
in the beginning of the context window than at the end.
So if you fill it with a bunch of bullshit before
and then ask a math question, it makes more mistakes.
So this is something to understand.
You keep it as short as possible and create like the –
you essentially like need to help a newborn baby
to catch up to the thing every single time.
And maybe that's also one of the biggest optimizations
that we could do in these harnesses.
Because I spend so much time just explaining the same thing over and over.
Like we're in a project. We're building this thing.
We're currently in this feature.
And this is what we've done so far.
And it's like get back to me when you understand what I'm talking about.
It comes back and it's like, okay, I'm ready.
Now we execute.
I mean, I think what a lot of people are working on right now
is exactly these memory systems that will just like keep certain bits of context
over sessions and will have like an easy way to access the memory.
And like something that's better.
Like obviously OpenCLAW went the way of MDFiles.
But there is OpenCLAW plugins already that use vector databases
and stuff that kind of makes a little more sense.
And I think what we were just talking before, right?
Like lots of people have their OpenCLAWs and so on.
And what I was explaining is like what I found for me,
what works best for me is like if you have multiple projects,
one agent per project.
And then like if you have one, I use OpenCLAW myself,
if you have one agent for every single side project,
every little thing you have, then the context and the memory
and everything and the tools as well builds up over time.
And that works wonders.
Like it's so much better than having one assistant that does all of your six projects
at the same time.
Much more aggressive compartmentalization of it.
And, you know, all the things that you let your agent do,
they influence all the other things that you want it to do.
And because context is so precious, they're not able to do everything at once.
So it basically makes it worse on everything else.
Yes, exactly.
That's exactly what I wanted to mention because from the cognitive science perspective,
we know that there is an inherent tradeoff relationship between being a generalist
and a specialist.
And so you can't be both things at the same time.
And so what you want to have is you want to have your specialists
and maybe you want to have one big model overarching generalist
that knows a lot about cashier, that knows a lot about whatever,
you know, lightning, art, Bitcoin and so on, all those kind of things
or elliptic curves and cryptography and so on.
But on the confusion part you mentioned, I think, is really important
because if you want to stuff everything in one brain, so to speak,
if you want to stuff everything in one...
Just like you want to stuff everything in one person, you know?
Like not even Elon can do absolutely everything.
It's like that's just not how the world works.
That's just not how cognitive structures work.
Cognitive structures can't work that way.
And I think like everyone who's like deep in the rabbit hole,
I would highly encourage everyone who studied just a little bit of cognitive science
and how the brain works and how, you know, we as humans do these kind of things
because you will... That's what the AI people are figuring out right now.
You have certain trade-off relationships that you just...
You can't... Like no matter how much computer you throw at it, you can't fix it.
You will never have a model that is as good on a specialized task as a specialized model.
Yes, but it's interesting because we are still in that paradigm though.
Like if you zoom out, not from a user's perspective,
but I mean from the Frontier Labs perspective,
that their bet still is that the generalist scales more
or it makes more sense to create one big generalist than multiple specialists basically.
So it's an open question.
It's really an open question that no one can answer so far
Trillions of dollars betting on this question is whether there should be like one GPT that does everything
or, and you can see Google already moving a little bit away from that target,
saying maybe we need a special model just for medicine.
Maybe we need a special model just for writing.
But whereas other Frontier Labs just say like we have one big model,
it can do everything and it increases its ability in all these different areas at the same time.
But we really don't know whether it would have made sense, for example,
to create like one coding agent that does nothing but coding and excel at this single task,
whereas being worse than others.
Not all, like what the cognitive scientists would say about this,
and at least those that I respect, is that not all skills transfer to other domains.
Some skills transfer to other domains, but let me give you a very simple example.
Like if you are a world-class baseball player, you have a really good baseball swing,
and you know how to ruin your baseball swing, you start playing tennis.
Those things are in a trade-off relationship with each other.
You can't be a world-class baseball player and a world-class tennis player at the same time,
because the nuances of your baseball swing will get ruined by how much more you will train tennis and so on.
This is exactly the conundrum that the labs are into, basically.
Yeah, so they'll face reality.
You start teaching the LLM to be a better writer, for example,
and it becomes a worse coder at the same time.
It's one of the things that the lore of GPT-4.0 is beautiful,
because there are still people being completely degenerate and wishing back GPT-4.0.
Yeah, because it's sycophantic, it loves you so much.
Extremely sycophantic. People love that model.
The number of AI psychosis generated by that model is way higher than, for example, GPT-5.5 or the 5 series,
because the 5 series is super dry, gives you short answers, it's on point,
and it's better at completing tasks, it's better at coding, but it's not as engaging as the other ones.
So OpenAI needed to answer that question.
It's an economic question for them, because what they actually want is to get as many users as possible,
but if you make it more engaging on a narrative side, conversational side, it becomes a worse coder,
whereas the coders say, I want that model for coding, what are you guys doing?
I don't want a novel to come out of that thing.
So they need to make that decision.
It seems like they leaned towards more the application, the professionals, GPT-5.5 is clear.
I mean, coding is what pays the bill right now, right?
That is true, but there are, I don't know the numbers, I don't want to guess on a podcast, but there's a...
It's a dialogue, not a podcast.
I wouldn't even guess on a dialogue.
A very large portion of the world uses LLMs.
It's an incredible, it's the fastest technology in history.
Many, many people just use it for conversation.
Most people don't code.
Absolutely, but they are not the paying bunch, usually.
I think from the economics side, we'll see.
We'll see how it shakes out.
I think it's still an open question how these things will in the end be able to monetize.
Do you think the addiction for a coder is stronger than for a conversational person?
I mean, people end up marrying their chatbots right now,
and actually divorcing their husbands and marrying their chatbots.
So I'm not sure.
I'm not sure if I'm brave enough to answer the question.
But on a kind of enterprise side,
large software companies are willing to pay a lot for replacing their engineers.
I've never seen any product so far where an individual is willing to spend $200 a month
to get access to a cloud service.
And we know people who have five of these accounts at the same time.
Some people spend $1,000 per month to get as much...
And in Silicon Valley, those numbers are way higher.
Token maxing.
Yeah, token maxing.
As I said before, I think it's a form of retard maxing right now.
Should we also talk about beyond LLMs?
Yeah, let's hit it. Let's hit the world model.
Okay, so I believe LLMs are kind of a scam in a sense.
I mean, they're obviously extremely useful.
I will keep using them forever and so on.
But what the AI companies are forced to convince us of
is that this is like the best of the best and this is the crown jewels of AI.
And there are many people, especially doing AI research,
who believe that LLMs are not the end of the answer.
One of the biggest problems of LLMs are that they're essentially just token prediction machines.
So they take a set of tokens and they predict the next token.
That's all they do.
And everything that they've trained on is language-based.
So it is fascinating for me that language encodes so many truths about reality
that you can extract almost things like emotion from language,
sometimes even like how the world really works.
And just to bring one example, just to drive home that point,
because I think when you hear that, some people will think,
oh, that's all we do as well.
And that's completely untrue because when you start to learn to ride a bike,
you don't use words.
No, absolutely not.
It's a different thing.
Learning that 2 plus 2 equals 4 or the Eiffel Tower is in Paris,
that's what we call propositional knowing.
And there is other types of knowing, like knowing how to ride a bike,
which is very, very different, which is something that LLMs can't do.
Everyone who has a child understands this because you watch your child learning its motor skills
and being able to control its limbs and balancing, throwing things, catching things.
None of this has anything to do with words.
So we know that there is a large category of knowledge and skills in the world
that are important for the world, have nothing to do with mixed token prediction.
And people plug LLMs into robots these days.
Like there are robots where someone just basically pulls an LLM into a robot
and says, I'll put this JSON if you want to move the arm to the left,
I'll put that JSON if you want to move it to the right.
And the LLM does something,
but it has no conception of what the joints are of the robot,
how things will react in your action, as a reaction to your action, and so on.
So another category that a lot of people are focusing on right now is something called world models.
And Jan LeCun is one of the proponents of this.
And there is a model category called JEPA models,
Joint Embedding Predictive Architecture, if I remember correctly.
And they work on a completely different premise.
And I think it's worth explaining here a little.
So what a world model does, and you will hear that buzzword a lot these days.
You just want to propose, just ignore it when you hear it in many contexts,
because it's used wrongly.
It has a specific academic meaning, and this is what it means.
So a world model is essentially a model that is trained on action conditions.
So what does it mean?
The input to a world model is most of the time, for example, a video stream.
So you can think of it, for example, a robot arm.
And you film the robot arm over a long time, where it makes movements of the robot arm.
You just film it with a camera, and you record the actions of the robot arm.
So it says, joint goes to the left, upper arm goes up, and so on and so forth.
And what you do is you train a neural network where you input the image plus the action that the robot does.
And then you force it to predict the next image, so to speak.
So to be correct, it's not the image, but it's an embedding of the image, like an abstract version of it.
But that's not really the most important point here.
The important point is that you train data plus action leads to next state of data.
Or world, current world state plus action is the next world state.
And when you force a neural network to learn to predict what the action in this current state will produce as a next state in the world,
you force it to learn the underlying rules of the world.
And that's why it's called a world model.
So what people see is when you take the example of a robot arm,
you embed the image of the video recording of the robot arm plus the joint actions.
After doing this for a long time, you can find that the model starts to encode physical laws,
like Newton's conservation of momentum, energy conservation.
It encodes gravity.
It starts coming up with the real physical laws of the world that it interacts in,
because that's the only way to predict what the outcome of its action would be.
And so this is super cool because it allows us to build AI systems that can actually plan ahead.
So instead of having an LLM that needs to hallucinate what will happen when I move my arm,
this is forced to predict what the outcome of the action will be.
So this is super useful for robotics these days, for self-driving cars and so on.
But I guess and I believe that we will make more and more use of this in other modalities,
like maybe controlling your desktop computer or any kind of where the model is forced to make an action.
And since we're talking about robotics,
you also have an empirical way to see if your prediction turned out to be true or not,
and you're actually in touch with reality.
This is, I think, important to point out,
because my main criticisms of LLMs right now, or one of them, is that they are two steps removed from reality.
It's like they are working on data that is one step removed from reality itself, like written text.
Human-generated text that was from observation of the world.
Exactly. And then the models are actually just a bunch of numbers,
which are again one step removed from the actual data.
And so LLMs are two steps removed from reality and are actually not in touch in reality and cannot be.
And that's kind of the point that the cognitive scientists have made.
If we want to bridge that gap, we have to embody the cognition itself.
We are embodied cognitive machines, basically, if you want to use that term.
Beings, if you want to be less mechanical about it.
And so we need to put brains into robots and let them be in touch with reality and learn about the world like children.
Yes, this is how to do it. This is really how to do it.
At least this is one of the ways how you can make that happen.
And the nice thing about this is that the data is almost limitless,
because right now we already reached a point with LLMs where the corpus, we've talked about this before, is already fully used.
There is no more text in the world that hasn't been used for LLMs already.
You have to make up new training data on the spot.
Yes, and most of the text generated these days is AI-generated,
and it's like a big, big no-no to put the AI-generated text back into the LLM, because that's going to just collapse everything.
Yes, but that's what's happening.
And it's also, just to make the point, because I put out on Nostra, like I just shitpost still all the time,
and I wrote like over and over again, like, taste and values, taste and values,
and like taste, taste, taste, taste, taste, taste and values.
No one knew what it means.
What it means is like what data to generate, what data to focus on depends on your taste and values.
And like US versus China and so on, and like we talk about research taste, so it all leads back to taste and values.
And the thing about reality itself is like, it's actually reality, your taste and values don't matter.
So if you, you know what I'm trying to say?
Right, yeah, absolutely.
I mean, again, like a robot that is free to move in the world, for example, can just like move as long as the battery dies or the robot dies.
You can learn from any experience.
If you can observe what you're doing, and if you know that you're doing that, that is enough to train a world model.
The cool thing about it is world models are like, I don't know the number, but I've trained them on my own laptop.
So I know how hard it is to generate an LLM.
It's like basically impossible to do something useful on your laptop with a single graphics card,
but you can train a world model on a single graphics card, it works.
So it opens, finally, it opens up a possibility of AI that can do lifelong learning.
You could put it in a robot, you could put this machine that I just explained into a robot with a single GPU,
and the robot would literally while, you know, it would be born stupid.
And while moving around in the world, falling over, getting up again, trying to grab a glass, grabbing wrong, grabbing right,
this time, slowly learn, oh, this is how gravity works.
Oh, this is how my joints actually work.
Every time I do this, then, you know, the glass actually can be lifted from my arm.
So all these things, the robot would learn.
And even, you know, once it breaks the arm, for example, the actuators change their properties during use because they get older and so on.
It would be able to adapt in real time to the new conditions.
And then getting back to the brain, this is how the brain works.
So I think of this in a simplified view.
The LLM is your prefrontal cortex.
It is the thing that generates language, planning.
It's really good at long-term horizon.
It knows, like, if the human tells me, do this, then it can reason about, like, why would I do this?
This is ethically good.
Should I do blah, blah, blah, blah, all this, like a stream of consciousness that a robot can generate.
But as soon as it needs to move around, it could activate something like a robot.
It goes to the animal brain.
And yeah, this is like the cerebellum in the back of your brain, which is essentially doing the same thing.
If you try to grab a glass and you fail to do it.
You know how you often catch something, like something falls down like a glass and you catch it before you realize you caught it?
That's your animal brain at work.
Perfect example.
It is exactly how a world model works.
You see the glass flying and what your brain does, it auto-completes the trajectory of the glass.
It knows the physical laws of the world.
It knows in a few milliseconds the glass will be around in my hand.
I will probably put it here, close it in real time.
And it does before your prefrontal cortex even caught up.
It needs to do it faster.
Exactly.
Now, I have one more thing to say about the world model stuff and about the embodiment stuff.
Because what will happen and what we know from the animal kingdom, for example, is like your world model will depend on your body shape.
The world model of a spider is very different than the world model from a fly.
It's very different than the world model from a bat.
Absolutely.
It's very different from the world model from a human.
Or 20th century apparatus.
100%.
Two eyes, eight eyes.
If you don't know what I'm talking about, just read like what is it like to be a bat by Thomas Nagel or something.
Yes.
However the guy was called.
But we've known this for a long time.
And just think about, let's say you want to learn about water.
If you are a warship, your view of water will be very different.
Or like a speedboat or whatever.
Or like a submarine.
It doesn't matter.
If you put a brain into a submarine and let it learn what water is and how it behaves,
it's very different from a tiny, tiny, tiny, like microscopic insect that lives inside like a droplet of water or on the outside of droplets of water.
On the order of magnitude of water.
Yes, exactly.
Water tension suddenly becomes insanely important and all those kind of things.
It's completely unimportant for like a submarine or like a tanker and so on.
And I think that will be fascinating because I think it's unavoidable that we'll have humanoid robots.
Like too many people are working on it.
We'll have specialized robots as well.
And we'll have robots that will probably look a little bit like spiders.
Like window cleaning or whatever.
Like I don't know what.
And so they'll have different world models in terms of...
So in the end what I'm trying to say is like you can't run away from values because basically like your shape dictates what you will have to value about the world in some sense.
You know, what is actually important for you.
Yes.
Yeah.
So that will be interesting.
Will be interesting to see.
But again, like back to cognitive science.
Like all the 4E cognitive scientists people will tell you all about this.
It's so funny that we're just basically recreating everything that we've learned about the brain in the last 20, 30 years, right?
Yeah.
I mean...
It all comes back.
And it all comes back to the inherent trade-offs of how to interact and be in touch with reality.
And I think it's...
I mean this will get very metaphysical.
Let's go.
But in the end you can't run away.
There's a great book.
It's called The Blind Spot.
And so what's funny about physics right now, or it has been for a long while, we have two edges of physics, right?
Quantum physics, relativity.
Both depend to some degree on the observer.
Yes.
And so what this tells us, I'm like compressing a lot now, but our view of reality is out of necessity participatory.
So you can't remove the observer and have a God's eye view of reality.
And like it comes back to the world as well.
It's like it depends on who you are, where you are, how fast you're going and so on.
Observation is action.
Yeah, exactly.
You cannot look at something without touching it.
Exactly.
Your finger needs to push the thing in order to feel it.
Exactly.
And even the photon arriving in your eye was at some point reflected off an object.
So that photon interacted with the object itself.
And from the photon's point of view, zero time has passed.
I don't know what that means.
The photon has no time.
It moves at the speed of light.
I hope it doesn't have time.
No, no.
But that's what I mean.
It's like from the point of view, zero time has passed.
From the point of view of the photon, it just happened.
That's true.
Yeah.
Amazing, right?
It all comes together.
It's just incredible.
Yeah.
Yeah, and like you say, I mean, again, like evolution of the brain,
like the evolutionary process that we are participating in figured all this out,
and now we are rebuilding it.
And also, like, you know, just to talk about kind of the current AI psychosis
and the structures people build,
organizations are cognitive machines that deal with these tradeoff relationships as well.
And there's a reason why you have hierarchies and different responsibilities
and all this kind of stuff.
We are in the process of rebuilding those kind of hierarchies and systems
just in an agentic world.
I think that should be obvious to anyone.
There is like this, you know, I ask myself,
do we rebuild nature because it's the inspiration for all the things that we make,
or, and, is nature just the best optimized system that we have?
Yeah.
Nature found what works.
And it found the best solution already for us.
However.
So it could, like, converge to the same solution.
However, there is a difference between a bird and a jet.
There are two optimal ways to do things.
They all use, they both figured out the same physical principles.
But we still build humanoid bots, right?
Yeah, yeah.
We build bots in our image,
whereas a bot with eight legs is probably the most optimal way to move.
I think, I think there, like, science fiction is to blame for that to some degree.
But to make a generous argument for all the road people out there,
the world we have built and the, like, take Amazon warehouses or whatever.
Like, the stuff that we've built is purpose built for humans, for humanoids.
So it makes sense to replace the existing human, like, meat and skin robots
that are in an Amazon warehouse with something that, like, doesn't need to go pee.
You know?
That's probably true.
But I think we will, you know, see also many things that will surprise us.
So we will see maybe in warfare that, you know, where this question about, like,
you don't need any kind of connection to the thing.
It doesn't need to fit in your humanoid world view or something like that.
Whereas maybe the war machine will be something like a dog or like a spider.
I mean, we see it already.
Drones, right?
Drone warfare.
It's not a Terminator style robot that comes and kills you.
It's a fucking suicide drone.
So, like, we're living through that already.
The last thing that you will see.
Yeah, pretty much.
And it's live stream.
Great.
Brave new world.
Let's end on a positive note.
Okay.
Let's try.
So, what was the most hopeful thing outside?
Like, we talked to a lot of people.
We saw a lot of stuff the last 10 days or so.
What is something that gives you hope for the future?
I have my answer already.
Well, I'm ambivalent of my answer.
Because, like, what gives me the most hope is the uplifting of human spirit through these developments.
Right now in the world, there are more people than ever who realize that they can do more
than they thought that they can do.
And I think that's the biggest, like, human-level upgrade that we've seen for a long time.
It is, like, I've seen so many non-technical people who suddenly build things that I, as a coder,
even kind of, like, have a blockade in my head.
I'm, like, thinking, how would I even start building this project?
And I see, like, a non-coding person build this incredibly complex dashboard.
And in my head, it's like, wow, like, how?
How does this even work?
Why does it, you know, how can they keep working on it after three months?
And this is not complete spaghetti and, like, blah, blah, blah, all these things that I thought, like,
you need a computer science degree and blah, blah, blah.
No, it's just the willpower.
So for high-agency people, it's the best time to be alive.
It is incredible.
And I think that is something that, you know, I hope maybe not in terms of GDP impacts that we will see,
but probably we will, but just in terms of how much you believe that you can do.
And I think that's one of the most powerful things because we need to surprise ourselves with the things that we can do.
So that is the great equalizer of the abilities.
And that gives me incredible hope.
I'm just so happy that many, many more people are joining the high-agency kind of pack of people who know that they can change the world.
Yeah, you can just do things.
And you have, like, an uncountable amount of superpowers at your fingertips right now.
It is just incredible.
Yeah.
I'll give you my answer briefly.
So, obviously, I have to say Bitcoin and I have to say Nostra, but it's literally true.
It gives me a ton of hope.
I know everyone's bearish and depressed, but that's just, like, because everyone's retarded.
It's amazing.
It's amazing that Bitcoin exists and is alive and well and works and scales and does all the things.
And that we have it and that it provides, you know, for me, it's still, it's the thing.
For me, even with all the AI hype, to me, Bitcoin is still the most important thing because what we are facing is lots of our troubles are of economic nature.
Yes.
And I think Bitcoin is literally the antidote.
Like, I've always thought that, still think that.
It gives me a lot of hope.
It's still around.
It won't go anywhere.
I don't think it has any big issues or big problems or anything like that.
On Nostra, obviously, like, we talk a lot about it.
I just told you before we started recording my setup.
Like, NIP17 only.
Every agent just has an MPAP.
I don't use anything else.
I'm in a fully permissionless world.
This podcast goes right through your agents on Nostra.
It will be uploaded automatically.
Exactly.
Like, yeah, that's just like all this stuff already works.
And on the AI side, shout out to Austin.
He did a lot of measurements and research on this and explained this really well to me.
The local models are actually catching up, getting better, getting smaller.
It gives me so much hope because I was a bit of an AI doomer in the beginning
because I was like, okay, everything was centralized.
Everything would be terrible.
Maybe let's walk up here.
It might be a little bit more quiet.
Let's see.
Let's end up there.
Okay.
And it's just like, if you look at the graphs, where things are going,
every single fucking smartphone, even old hardware potentially,
will have extremely smart, extremely small models that are extremely powerful.
That's where things are trending.
It's undeniable.
And that just gives me all the hope in the world because it's like this stuff will just be free
and available to basically anyone who cares to use it.
So, it's amazing.
Best time to be alive.
Once in a lifetime.
Yeah, let's see.
Let's see.
Let's not jinx it.
Let's see where things are in six months from now.
It's weird times.
So, the one prediction I can make is I'm sure it will remain to be interesting.
I'm sure that volatility will come in all sorts of ways.
And, yeah, I'm sure that, or I hope, I hope that we'll do this again sometime soon, next time I see you.
Let's see where cashier is.
Thank you, Gigi.
I appreciate it as well.
Big hug.
Thanks for making the time.
We'll go sleep now.
I'm still sleep deprived as fuck.
It's dead bright here outside in the middle of the night.
Bye.
Yeah, well, no wonder I'm tired.
Guess how late it is.
Oh.
Let's call it 1.21.
1.21.
Good night, everyone.
Good night.