So, are we doing a Chia space tonight or what?

Recorded: Aug. 26, 2025 Duration: 3:16:36
Space Recording

Full Transcription

Thank you. Thank you. Hello. Thank you. I just changed it to the room.
Welcome to speaker video.
Hey, Josh.
Hey, hey, how are you?
Doing well. How's it going?
Going well, going well.
Just doing a little gophering.
I was hoping you'd come up.
What's the plan?
What's the subject tonight?
Pretty much anything and everything, but
I have a couple things I'm
launching soon. I think everyone already knows about them, though.
Yeah, I saw the Dexy stuff.
That's going to be exciting.
That and Theme NFTs are pretty much the new hotness.
Yeah, what about you?
Any updates on Go4Me?
Nothing crazy.
I've been working on a few views.
We've got 300 Spartans been helping me me with some of the wallet connect stuff.
We got that working.
We got, he got a view up for current offers
like on your page.
So you could actually see all the different offers
that people have put out for you,
not just the, like the new one, the new copy.
So you could see like secondary trading,
but we ended up taking that down because we we had a bit of a performance issue there so we're
refactoring that so that we don't spam Dexys API with with lots of calls from
the client side and we'll get that back in there and then we've got I've got
another view I want to put up which shows you on your collection page, you'll be able to click a
button or a filter or something that shows you in line with your current collection all the ones
that you're missing kind of like grayed out in the same order as like the leaderboard so that way
you'll be able to see like the ones you do have will be colored in but the ones you don't have
will be kind of a grayed out, a gray scale kind of color.
So you'll be able to quickly see which ones you're missing
from the top lists.
So that'll be kind of a nice view.
Does every Go4Me, like lineage, I guess you'd call it,
have its own collection ID, or are they all the same one?
They're all the same collection ID.
And then it's not even,
in my database, of course, I'm keeping track of everything by user ID, by Twitter user ID.
Originally, I was actually doing it by Twitter username until I found out that Twitter lets you
change that. I actually didn't even know that you could change your Twitter username, like the actual,
you know, alphanumeric username, not just your display
name. So since you can change that, I keep track of everything by user ID. But unfortunately,
the NFT itself does not actually contain the user ID in the metadata. I didn't put that in there originally, I just put the username. So each Twitter user ID has its own lineage,
because I do keep track of your aliases.
So if you change your user name, I keep track of an alias table,
or I have an alias table in my database.
So I know all of the different names that you have switched to
because your user ID doesn't change.
And so your PFP is all based on your user ID.
So you can change your username as many times as you want,
but it won't reset your copies counter.
It'll just keep going up.
So yeah, it's all the same collection,
but each user ID has their own little series counter that counts up from one.
You get the number one to your wallet, and then two through X counts up on your user ID as people purchase them.
So if they're all in the same collection, I guess you can't just look up every offer for the same username at once on Dexy?
Correct. Not on Dexy.
It would be nice if they had a little search feature or something, like a filter at the top or something,
so you could even just search by username.
But no, you can't do that on Dexy.
That's one of the reasons I did some more stuff like that on Gopher Me, the actual website,
gopher.me.
You can go there and there's a nice search bar at the top.
You can search by username, lots of different filters and views that you can use to sort
and filter.
Oh, that's the other thing I want to add is people really like the little badges because
there's a rarity badge at the lower left corner of each one that's
based on just random number generator whenever it's created in the first place.
And so that's another view I want to get out there is filtering by those different, there's 10 different little icons that you can have going from like most common to most rare.
And it would be cool if you could uh filter on those when you're looking
for um you know other pfps if you want to just get like the the i guess it would be the either
the lucky hat or the there's a diamond um it's like the most rare so you'd be able to search
and filter by those as well whenever you're looking for
good deals. Looks like all three of my number ones have a crown. Is it just the same for every
number one? Oh, yeah. So the crown is definitely just for the number one. So the number, the crown
is technically the rarest. Although if you just go by numbers, it might not be just because there's
a lot of, a lot of number, you know, everybody
gets a number one. But not necessarily everybody. Like if you only have three or four copies,
you may not have a Diamond at all, which is the ninth most, or I guess the second most rare. So
the Crown, theoretically, because it only is on the number one PFP is the most rare.
Diamond would be the second most rare.
But what I'm saying is there might actually be less diamonds than crowns
just because everybody gets a number one,
whereas not everybody generates lots of copies
and you may not even have a diamond in your collection.
If there's go-for-me's out there
with three or four copies still,
then scalpers need to up their game.
Yeah, exactly.
Yeah, it's funny.
I still have, well, I was looking at the queue earlier.
It looked like it was about an hour long earlier.
People were going crazy getting, I guess, just for the airdrops and the badges and stuff, the cheaper ones.
And then, of course, I'm doing the auction thing, which is kind of neat where it was expiring offers.
So I offer it first for XCH.
And then if that doesn't sell within a certain time period, then it goes to GAM tokens, the G4M tokens, call them GAMs.
And then if that expires, it gets relisted for even a cheaper amount of GAMs. And then if that expires,
it gets relisted for even a cheaper amount of GAMs.
So it's almost like an auction.
If people don't buy the copy,
it keeps getting cheaper and cheaper over time
until somebody does buy it,
at which point it's regenerated for the next full price
and we start the whole process over.
So the neat thing about it is I'm trying to get the timing right so that there's pretty
much always new, there's offers expiring and new ones being generated pretty much constantly.
I would love that to just be kind of a constant thing where you can go and look in the new
offers indexing and see new stuff all the time.
That's the thing.
When I regenerate these,
if they expire and I regenerate them,
we actually reroll that rarity badge.
So somebody, you know, the seedling is the most common.
You see a lot of seedlings out there.
People don't buy them because they're the most common
and they give you the least amount of points. But once an offer for a seedling out there, people don't buy them because they're the most common and they give you the least amount of points.
But once the offer for a seedling expires, like let's say the number three has a seedling
on it for one of the PFPs.
It expires, we're going to re-roll that rarity badge and we're going to create another number
three with a different, possibly a different badge, possibly a diamond, but it'll still
be the number three because the previous offer expired
and we never even minted that NFT in the first place, technically. So we can actually change
the metadata on the regenerated copy of that NFT to be a different badge because the previous one,
even though it was offered, it never actually existed on chain because no one ever accepted it.
actually existed on chain because no one ever accepted it. So this gives it kind of a constant
refresh of the store, you know, of your product stock. You know, it's like we have a constantly
refreshing stock of PFPs with different rarity badges all the time. So it's kind of a cool thing.
So I know the way that this is all tracked back to
the DID is that you have like at most 10 coins between the NFT and the DID and the lineage.
But how do you like make that work if you're minting on demand? Do you just like pre-generate
thousands of coins that are tied to your DID and then use them to mint the NFTs or something else?
It's so funny you ask that because I would love to know the answer to that question.
I have no idea.
That's all MintGarden Aceville magic to me.
But I've actually wondered that exact thing because, yeah, theoretically.
So I go through a process on his site where I'm connected to my wallet through WalletConnect.
I go to a special dynamic mint page on his site signed in as me,
and then I can create more of these dynamic mint credits. And I do that by signing a transaction
through my wallet that he puts up for me through Wallet Connect. And I know that that is actually,
I have to sign it with the correct, with the wallet that holds the DID that I'm
sign it with the correct uh with the wallet that holds the did that i'm going to be issuing from
and so yeah i i assume exactly what you're saying is that he's creating a bunch of these coins
behind the scenes that i've well i probably signed the one coin initially and then he splits them up
into thousands of coins i'm guessing yeah um that he can then use to mint the whenever i ask for an
offer he grabs one of those that he knows that I've signed already and uses that in the
offer file is my guess.
Well, that's how I did Fancy Fauna.
I log into the garden and then like uploaded all the images and then signed a
single transaction, which created a coin and then he split it on the backend
automatically. Yep.
But I know that's for like a fixed number of NFTs,
like a thousand, like if.
So if you're constantly minting more on demand,
do you have to log in periodically
and generate new coins to mint from?
See, that's part of the magic.
And that's what I love so much about it
because even think about that with expiring offers.
So his system, when an offer expires,
I get that credit back to use on the next offer.
So I don't know how he's, I mean, he's keeping track of all that, obviously, in his database.
But yeah, and I guess since that coin was never spent on the expiring offer, it's easily reusable.
But still, there's a lot of magic there that he's just hiding from that it's really nice for me to just pay for and not worry about yeah i guess in a way you kind of have to um like trust mint garden
in that regard because you know if the nft can be changed after the initial coin has been created
without you having to sign something again i guess it's just mint garden deciding what gets minted
I guess it's just Mintgarden deciding what gets minted.
Yeah, that's true.
I mean, yeah, I've basically delegated authority
to Mintgarden to create whatever NFT,
if somebody took, let's see,
if somebody stole my Mintgarden login credentials,
then theoretically they could just go in
and use my pre signed key, my pre
signed coins to create any NFTs they want. But I guess that's kind of I mean, you know,
if they're going to steal my credentials, they probably have my wallet key at that point,
somehow too. So at that point, I'm kind of screwed. You know, it's a matter of keeping
all of that safe for sure. But yeah, you're right. It is a, I am delegating that authority over to MintGarden
to create offer files on my behalf
for coins that I've already signed.
That's a good way to put it.
I guess for the majority of collections,
it wouldn't even be an issue because it's like,
if you're minting a thousand NFTs,
you would only give it the ability to mint 1000 things.
And then after it's completed, you know that it can't do anymore.
Correct, yep.
Yeah, and that's also kind of funny.
People have actually offered to, like, give me the address,
and I'll just send ASPIL a bunch of some tokens,
and that's how I'll support you.
And it's like, no, we can't really do that.
I actually have to sign them, you know, as my DID.
So it's kind of a weird thing, but yeah,
it's pretty neat, pretty neat setup.
Yeah, I'll need to do something very similar soon
for minting Steam NFTs on demand.
I think I'm going to do like 100 of them per theme at first.
But I don't want to mint them all up front.
I want to have MintGarden just spit them out whenever people buy them.
Yeah, that's a really nice way to do it.
I will say it is nice to go ahead and put an expiration on them
when you're doing them through this way because, well,
I guess unless you just really don't plan on, on yeah I guess in your case it'd be fine in most cases it would be fine because you
really do just plan on putting them out there once and then waiting for people to buy them
until they mint out so to speak but um I was just going to say the expiration thing is nice because
I don't know that there's a way to cancel your dynamic offers by yourself.
I think you'd have to, because again, you're delegating that to Mintgarden, so you'd have
to ask Acebill to cancel those coins or spin them back to you somehow.
You know what I mean?
You can't really cancel the offer yourself, or at least he doesn't provide a way through
the API to do that.
So when you mark them as expiration or expiring offers, then they kind of cancel themselves.
You don't have to worry about it.
Yeah, I imagine you could technically set up something where you can unreserve a mint
credit and have it automatically assigned to something else, which would then cancel
it once something else gets minted in its place.
And in fact, yeah, now that you mentioned that, we did talk about that
because some of my early offers I did not mark as expiring and I wanted to basically reclaim them,
reclaim those tokens or reclaim those coins that I signed and create other offers. And that was his
exact worry was that if someone accepted the older offer before the newer offer, then
the older one of course canceled the new one and vice versa.
So he was just like, be aware of that sort of thing.
So yeah, I think that would be fine.
It's just like in your wallet, you can create multiple offers from the same coin and it's
kind of like first one wins, whoever accepts it cancels the others.
Yeah, and that's really all the cancel button in wallets does is
they're spending all the coins yeah I remember finding that out myself I was
like oh that makes perfect sense when you when you think about it yeah it's
funny one of one of the things that I just recently changed in cloud wallet
was that it was when you cancel an offer it was cancelling every single coin in the offers bundle instead of just one of them, which is not necessary.
Because in most cases, the wallet has already linked all of the spends together, and so if you cancel one of them, all of the other coin spends are effectively invalid.
Nice. Yeah, that makes sense.
In fact, isn't there, I was, you know what,
now that you mentioned that,
that was actually a bug in Dexy that I found
that was kind of interesting.
What was it?
This was probably a year ago maybe but it was
um it was something to do with their with their uh reward system where you get you know dbx for
uploading offers um i'm trying to remember the exact details of it i've already forgotten but
basically you could use the same coin as the fee coin so
you know when you create an offer you can actually you can attach a fee yeah so the way that I kind
of exploited this was I I used the same coin for the fee on multiple different offers and that way
when one of them would be accepted the other ones would also be canceled. It's not that we're offering
the same coin, which they were checking for, but I was using a duplicate coin as the fee.
So I was getting paid for multiple offers, but if you accepted one of them, all the other ones would
get canceled automatically. So it wasn't really in the spirit of giving out rewards for liquidity
because I was getting paid for like 10 offers,
but if you accepted just one of them,
then all the other ones would get canceled,
and I'd regenerate them at a higher fee for the next block, right,
or a higher offer.
So anyway, I told them about it,
and they gave me a nice little reward for it, and they fixed it.
Yeah, that's definitely an interesting one.
That's definitely easy to make some mistake because most of the offer parsers have a separation between input coins and I guess offered coins or the settlement coins themselves.
offered coins or like the settlement coins themselves yep there was another dexy little
thing that i i'm trying to remember there were two little dexy things that i found kind of next to
each other like in the same within the same few weeks and they rewarded they gave me like a bounty
for both of them it was kind of cool um but it was both related related that the Dexy reward system
yeah and then of course we had to throw a wrench
into everything with fast forward
and poor Yak remember that
he was like wait wait wait wait
what are you guys doing wait hold on
that's not going to work with DimitSwap
yeah like now just because a coin is spent
doesn't mean it's actually spent.
Well, it is spent,
but the offer is no longer canceled
because of it necessarily.
Yeah, that's where I was.
I was actually learning quite a bit of Chilis
by looking through TibetSwap's puzzles,
and that's something i noticed was i could not figure out why he was doing he was doing this weird thing where he
would basically create a coin and then spend it immediately in the same in the same puzzle
and i was like i don't know why why are you doing that i don't get it and and finally i talked to
him about it and he explained that that was actually an RBF kind of trick,
where that way someone else can't basically snipe you if they see your offer that gets accepted by Tbetswap.
They have to RBF and add their own on top of that, where they can't just take the offer.
They have to actually kind of get in line, so to speak.
I thought that was brilliant.
Yeah, he's got some crazy stuff.
I definitely think that just removing the superset rule on its own would be disastrous,
but I think the cooler thing to do would be to make a new mempool that is aware of these things.
It can actually aggregate multiple to bet swap transactions together without replacing
the other that would be cool is that so yeah i guess that makes sense a custom mempool could
definitely do that yeah so would you be would you be i guess you wouldn't be necessarily breaking
consensus you would just be like adding to it so to speak yeah the mempool is uh lives outside of
the consensus layer so you
can change it however you want and that makes sense because each farmer kind of gets to choose
transactions to include anyway so yeah um if they win so yeah the trick is just getting
consensus on what the mempool rules are right because if you have most of the farmers on the
old mempool and some of them are on the
new one, then you're going to have trouble propagating anything that doesn't work on
the old one.
And that could be infuriating trying to get your transactions through.
And there's just like an infinitely complex number of things that you might want in a
custom mempool.
So it's kind of a hard challenge, I guess.
It would almost be easier just to have an API that you can call to get the most optimal spend bundle,
but there's obviously problems with that, too.
I kind of like the idea of having that as a primary method and then having the original memple as a fallback.
How would you fall back, though?
What do you mean by that?
If the transaction that the API gives you is invalid
or it takes too long
or has lower fees than the one that you would get by default.
Gotcha. Yeah, okay, that makes sense.
Yeah, okay, that makes sense.
So tell me more about, I know that this is more like Michael and Yaks thing,
but I know that you've been talking about them too,
the Chip51 stuff with the streaming puzzles and the,
are they still calling it a streaming puzzle,
or is that something different entirely?
I think you're talking about the Dig Reward Distributor. Yeah, the Reward Distributor, I think, is what I should be calling it a streaming puzzle or is that something different entirely? I think you're talking about the Dig Reward Distributor?
Yeah, the Reward Distributor I think is what I should be calling it now.
I think the streaming puzzle is separate.
It's still being used but it's just a simpler pay this person this much over this period of time.
But the Reward Distrib distributor lets you add and remove addresses and
change the rates that they're getting paid over time whatever you want which
is what they're gonna use for distributing rewards for dig as you can
let it and that's the name but it'll also be used for kindaking NFTs, I think.
You think you stake your NFT and then you get paid a certain amount of a cat over time based on the number of NFTs you have staked.
Yeah, so speaking of that, I don't know if you saw the thread with Michael, but initially it was just going to be relatively simple in that you could specify an amount that the person gets for staking in NFT, and it had to be from a specific DID.
So it might not even be per collection.
It would actually be by DID that created it because, of course, you know that that's accessible, whereas the collection really isn't accessible on chain.
accessible, whereas the collection really isn't
accessible on-chain. It's all in the
It's all in the metadata.
So anyway,
that would be
cool, of course, but it wouldn't really help me,
which is all that matters, of course,
MonkeyZoo, which want to pay out
different amounts based
on attributes within the NFT.
I want to actually give out
based on the rarity of that badge,
for the gophers and Monkeezoo has similar things
with the Monkeezoo NFTs that he does.
So it would be nice if we could specify,
hey, if you get an NFT with this specific attribute,
then you get this amount and vice versa,
you know, for different amounts
or different badges or different attributes.
I think that might be possible with kind of a Ruba Goldberg machine.
Like you could make a slot machine registry that has each NFT as a key,
and then it's assigned to however many points that entity is worth,
and you could go through every NFT in the collection and create a slot for it, which gets expensive. That's exactly right. And I think that's what he's proposed. I saw some
discussion with Yak and Michael on that. And I think that's what they're doing, or that's what
they were thinking of doing. So we, MonkeyZoo and I threw in some XCH to the pot, but Michael said they actually already decided to do it.
So they're going to be adding that feature to that reward distributor.
So that would be super cool for Go4Me and for Monkey Zoo
and all kinds of other projects in the future, I'm sure.
But yeah, you're exactly right.
So what you do is when you mint the NFT,
you would also mint, or not mint, I guess,
but create another slot or
he didn't really call it a slot. I know that he's got this whole slot machine, so he may be
thinking that, but he just kept saying he just called it a singleton, just a special type of
singleton verification or validation singleton. But it's basically exactly what you said.
So when you meant the NFT, you also meant this other singleton that points to that NFT and says, how much do you get for that thing? And then the reward distributor trusts
those singletons to kind of report to it how much it should give out. And then people can just do
it all self-serve. So you can just ask for your payout whenever you want, and it should know how much you're owed up to that second,
and you get your gams whenever you want,
based on how much you're owed.
So that's kind of cool.
I think a slot is just a coin that has a value attached to it,
but I think in most of the registries, if not all of them,
that value is just a launch or ID of a single gem.
That makes sense so in this case that could just be the nft itself right i think it'd be the
verifier singleton although i i do worry though that like you're chaining together like six seven
coin spends at once and multiple singleton spends for these things. I wonder how expensive it is to do this on chain.
That is something I'm worried about too,
especially in the case with the...
So I like this model because from my perspective anyway,
it's a single thing, right?
Like when I meant the NFT,
I meant the coin that tells the reward distributor
how much that NFT is worth and I'm done.
So I have an extra coin to spend,
but that's not horrible. I don't know how it works after that. What other coins have to be
spent? I mean, obviously, yeah, you're right. It has to do like a lineage thing to go look at the
stuff and spend those coins to tell it what it needs to do. So it may be more expensive when you
are getting a payout,
like doing the self-serve thing and asking for your payout.
Maybe you only do that once a week or once a month or whenever you decide to do it.
But, yeah, it'll be interesting to see how that works with fees for sure.
Well, when you create a slot, you have to spend each of its neighbors as well
and then also spend the registry.
So that's one singleton spend for the registry.
You have the two slot spends,
and then you have the pre-registration coin
for the slot as well, I believe.
And then the singleton that you're creating for the slot,
and then you have your NFT mint,
and the evepend of that.
It starts adding up really fast.
Maybe that's why he didn't specifically mention the slots in the discussion I saw. It was more of an author.
He called it an author or verification singleton or something like that.
So maybe it's not.
Because I don't know that you would need the features of slot machine for uniqueness.
Because you already have the NFT singleton launcher, which is unique itself, of course.
So you really just need to put a little coin out there that kind of holds the state of that reward for that specific NFT.
It doesn't need to exist in a big list of other things or check uniqueness or anything like that.
So maybe it doesn't have to be that complex.
Well, if you think about it, the name in XHandles, the name is already unique if
you hash it. I think the uniqueness factor is for making sure that you don't have multiple
verification singletons for the same thing. Oh, that's a good point. Yeah, I can see that.
Although, I assume, well, I guess I shouldn't assume, but I'm assuming that that singleton could only be or would only be trusted if it was created by the same DID or I guess in the same lineage, maybe kind of like NFTs are treated.
So then like obviously not anybody can create this singleton and just attach to that NFT.
It has to be the original mentor of the NFT themselves somehow.
But then, yeah, you're right.
I think what they were talking about is the ability to change that.
So, like, for example, if I did want to update the scores of NFTs, then theoretically I could
create another verification coin that would, I guess, not over right but i guess be just be checked first
maybe because it's newer i think you would just be spending the singleton and updating it
oh right right right of course yeah that makes sense so just spending the original one and
updating that yeah so there probably wouldn't be so so your point is that the slot machine would
allow or would at least um kind of like a database that would check to make sure that there's only one of those verification singletons in existence at any time, even though you can update it.
Yeah, I mean, I guess it just comes down to what the trust model is here.
Like, are you trusting the issuer or the mentor of the NFTs in perpetuity?
Or are you kind of hoping that when you stake your NFT, you're guaranteed
to get a certain portion of the cap? And you know, that's why I'm glad you mentioned that,
because part of the conversation was that if you as the mentor change that reward,
that wouldn't actually be in effect until the staker unstakes their NFT and then restakes it.
So if they're already staking their NFT,
you can't change the reward out from under them.
You can change it for when they unstake and restake later.
But yeah, it would stick as long as they have it staked,
from what I saw.
There's a lot of different areas here
that you have to possibly have trust in or make trustless.
If you have a cat that you're distributing,
you'd have to make sure that it's a single issue
so that the issuer can't just create more of them out of thin air
and delete everyone else.
And you would also have to make sure that they don't
mint all a bunch of new NFTs that can be given out for free
and dilute people that way.
There's a lot of different attack factors.
That's a good point.
You know, I think we talked about this at one point too,
making, you almost need like a,
there's the launcher coin for NFTs.
You almost need like a pre-launcher for like the collection.
If we had a way that you could mint a collection coin that says, okay, this collection will only ever contain 10,000 NFTs,
and then you minted from that collection coin
to make your NFT somehow,
that would be kind of cool
because then, yeah, you would know
that no more NFTs can ever be minted out of this collection.
Yeah, I definitely want to do that.
I just have to be given enough of an excuse
to design an NFT2 standard because
right now...
That would definitely, yeah, you're definitely getting an NFT2 at that point.
And by the way, when you do, let me know, because I want to add editable metadata to
That'd be a lot of fun.
Well, that's possible NFT1.
Yeah, I know.
I've tried several, well, yeah, I've tried a few hacks and I know that we can do like
just custom the metadata
puzzle itself.
It's just that it's not well, obviously it's not supported at all in any of the current
marketplaces or anything like that.
So we'd have to do some work there.
Well, yes and no.
I think if you use a custom metadata updater, unless the display service is explicitly
checking for it, it should allow it by
default well i guess that's true because the metadata itself uh they would just ignore metadata
they don't understand i'm sure anyway yeah but i guess that'd be an attack that you could do like
you you meant an nft that has updatable metadata and if the display service isn't taking that into account,
it might show it as if it were static.
Yeah, you almost need a way,
like with the clawbacks where it's like a brand new thing
and it's not really,
you can't claw, like a new wallet can't claw back
an old wallet's funds without the old wallet
knowing about it somehow.
Because it just doesn't see the coin at all, right?
Yeah, although it's not as serious, I guess,
because the owner is ultimately who has control over the metadata.
And maybe that's the thing that you wanted to have to find.
Did you want to update the metadata as the author of the NFT
or as the current owner?
Well, in my original thinking with that chip that I came up with,
kind of the hack with the query string variables on the backup URLs,
that was all, of course, current owner.
So only the current owner could update the editable metadata.
And furthermore, in the little spec that I threw together,
the original mentor had to specify
which attributes were
available in the first place.
So you couldn't just update any metadata.
From the very beginning,
it would have to be minted with the idea that
there are only a few things that
might that could be editable possibly.
Yeah. I do think the easiest path forward would be to
just make a new updater puzzle,
create a chip for it, and then kind of rally for support from basically me and Dennis?
I originally went down the path of thinking, you know, let's not, my original chip was like, we don't have to change anything.
Like, we could just do this and not have to change any of the specs or anything.
I really like that.
It's all backwards compatible.
Marketplaces just wouldn't display the edited metadata if they didn't want to or they didn't have to, whatever.
That would all work.
But what really killed me was the fact that there was no, I assumed naively that the backup URLs that you can add to your NFT, how I assumed that work was each, the current Singleton held the most recent data URIs.
And if you wanted to go look at other data URIs that had been added, then you would just look up its lineage.
And so you'd be able to tell by the history
of the NFT's lineage what data URIs
have been added over time.
But I found out what actually happens is
you just add more to a list
and the current NFT singleton always has that entire list
and it could get bigger and bigger
until it wrecks itself basically.
Yeah, I mean the list that you're talking about of URLs is part of
the on-chain so if you had a custom updater you could override the old ones
yeah and then and then to your point that's just the updater so the
marketplaces wouldn't care about that at all they would just see a list of
URIs to the show right yeah I'm not sure I'd have to ask
but like if Mintgarden and Dexy are specifically checking the updater half to make sure that it's
the standard one and you can't update them either the afterward then they might not show the NFT at
all they might show it with a warning I'm not sure how that would work but i'm guessing that they don't have
that level of restrictions on that yep i bet you're right i'm that would probably be a little
bit of overkill for now at least uh unlike entirely custom puzzles the default is that it
is that it would be supported and you have to actually go out of your way to not support it.
would be supported and you have to actually go out of your way to not support it right
Yeah, I really liked how the NFT standard was put together with those little kind of hooks
where you could inject your own little bits of functionality.
Not just parameters, but like literal functions almost.
And like, you know, this is like the program to use to transfer it,
or this is the program to use for metadata or whatever, the metadata updater.
That's pretty cool stuff.
Yeah, that's the thing I think no one has ever even thought of exploring before is the custom NFT ownership transfer program.
And there's so many cool things you could do that.
I remember talking in the originally, like you could, I think you could do things like, theoretically, you could interact with the offer puzzle and limit NFTs to only be traded via Space Bucks, for example.
That's the only way you can trade them, right?
Like, is to use Space Bucks.
Or other weird things like that, right?
I mean, I think that's right.
You could.
But yeah, that is one thing that every display service has to standardize on is the transfer
So if you change that, it wouldn't be compatible with anything. Yeah. thing that every display service has to standardize on is the transfer program so
if you change that it wouldn't be compatible with anything yeah that's the
problem so it'd be basically the same as making an NFV2 at that point yep
I've got some of the speakers up here.
What's up, guys?
Mojuice, Atticus.
Or Mjuice.
How do you find your name?
Oh, yeah, Mojuice.
I see your username.
Or Morinjuice.
I've been enjoying listening to y'all
carry the conversation.
It's been interesting.
Yeah, I'm really thankful that
people actually shut up. Sometimes I'm just
here talking to myself for 10 minutes
and then I get embarrassed and end the space.
Josh is a talker, so he can keep you going.
Yeah, as long as he's here
it's usually stream of consciousness if anything else
just kind of
I can be the same way but I kind of cut myself off
halfway through and I'm like man I sound awkward
and stop talking
I think that's a yeah I sound awkward and stuff that makes.
I think that's a blessing and a curse.
I have no sense of embarrassment usually, so I'll just ask really dumb.
I remember early on talking to Bram a lot in the spaces and other people would be, it
felt like reserved or they didn't want to appear like they didn't understand something.
I'd just be asking the stupidest questions. He'd be like,
I don't even know how to answer that question because it's so basic.
No, I've had some stupid questions in my time,
so I feel bad.
What's up, guys?
I'm so sorry. I had no idea
I was up here in the speaker panel.
I have no idea how i ended up
here i'm also in this other space really big night for us tonight in the tang gang we have to world
meme championship but then i saw rigidity and jaws and steve and everybody in the same room with drag
so i had to come and you know listen with one ear so i totally love what you guys are building very
excited rigidity for the space box very Very excited for the puzzles, you know,
that you maybe want to lean into the gophers.
And, you know, this roots and dig notes towards this.
So I prepared for that.
And honestly, I'm really, really into the gopher economy, Josh.
Love what you're doing.
I think you all do an amazing job.
And it's very exciting for me as coming, you know,
to cheer just recently, really.
And, you know, what, Josh, what most people do not understand
when it comes to the golf economy, just participating as it is a game,
like you would play GTA 5 or 6 or something like this.
I learned so much about the Chia ecosystem.
The other day I created 60 offers and then I wanted to do something
and the Sage Wallet said, well, you don't have any coins available anymore.
And I thought, well, what do you mean? Like I have like two XCH at least.
And then I realized every single time you do an offer,
your coin is locked in the offer.
So I clicked the button that we never had before, cancel all offers.
It was so easy to do.
You know, just redid them, all of them, coin splitting before.
So now all of my offers have like this, you know, 0.0001 XCH locked in,
which is totally fine.
And this is what I'm saying.
Like I could have only known that by participating in the Gulf economy.
So thank you so much for everything you're doing there.
That's amazing.
Thank you for telling me that.
Yeah, that means a lot.
That's really cool.
Yeah, and Sage makes it so easy.
In the old days, we had to send ourselves coins. So before the nice Sage coin splitting feature, the easiest way to do that was to just send yourself smaller and smaller coins over and over to try to get everything split up so that you could do multiple offers.
I can imagine that.
Thank you, Rigidity, for that feature.
That's really nice.
I can imagine that would be infuriating if you're trying to split coins that way
and then it ends up combining the ones that you split.
Because you can't...
Well, the other thing is you're trying to beat the chain, right?
Like, if you send yourself, like, a few coins,
if those confirm before you've sent yourself the other coins
and then it'll use those again
and you just get yourself in a big...
Yeah, it's infuriating.
Yeah. Well, I mean... But i but yeah split coin is nice just give me 100 coins i'm done
love it i know that even the way it is today is integrating for some people like
even having to split the coins to make offers at all is um kind of confusing to people
so it is yeah the best way to explain offers and and the change
in the splitting i've found is just explain it like you're going to a store and you hand somebody
a five dollar bill for something that's 450 and you have a moment you have to wait for change
best way to explain yeah i think i think it gets confusing when you're like imagine you're doing
yeah that's a very good example imagine you're doing an ebay listing and you you know you're doing an eBay listing and you're offering an item and then you have to wait until someone buys it in order to get your money back. That would be completely unexpected.
you actually have right like it didn't show anything so this is how i see it today sage
makes chia actually usable before sage and everything you did just recently basically
chia was not really usable you know where you could like do a lot of things with like the
you know casual thing take it off you know and make an offer yes but now with sage you know are
able to have an entire inventory of your things and have a good overview and you can change things up,
which this was not possible before.
So great job on Sesh and all your updates.
It was like using you with two left hands before all the time.
You can get it done.
I don't know if you guys have been around long enough to remember
how slow the old wallet would get
as you get more and more transactions and offers and everything, or even just cats.
That was terrible.
Original SeedSnap, I was sending out or minting thousands of these silly things,
and every one of those was a different wallet address and a different transaction and a different this and that,
and it just got my wallet.
Then you started making new wallets and derivations.
I had to re-sync that thing all the time.
Oh, it was so bad.
But yeah, man, Sage is like a dream compared to all of that.
And I remember someone who said that they were canceling offers in the reference wallet and they had a derivation index of 200,000.
Yeah, I was in the tens of thousands for sure
in some of my bigger wallets.
Yeah, there was a bug, though,
where when you canceled an offer,
it would just double the number of derivations you had
or something like that.
That's crazy.
I like the new option I added where you can just specify a single address as your change address and no more.
Speaking of, that makes gophering a lot easier for anybody who doesn't know.
In the new Sage, I think, where is that?
Bridget, in the advanced settings?
I'm looking right now.
It's under settings, wallet.
I think change address is what it's called.
Yeah. Wallet. Settings, Wallet, I think Change Address is what it's called. Yeah, Wallet, yep, Change Address.
So if you go to Settings, Wallet, Change Address,
and if you use your Go4Me XCH address there,
then whenever you get new NFTs,
then they'll all go to that address,
and you don't have to transfer them if you
don't want to do that.
It's just kind of a nice little shortcut.
Yeah, makes anything relating to airdrops a little easier or interacting with Gobi.
Yeah, it uses like, I really did like the Gobi model of kind of like, in my Gobi wallet,
I had like five or six Xch addresses and that was it and i i kind
of like knew them like i would play like like the farmer i did the farmer verse thing for a while and
i that was like one of them and i was able to just keep everything on that one address and i like
that and then i use it for a few other things like that, too. So I like that model. It does, of course, the caveat is that it's not as privacy-oriented
because the whole point of a different XCH address every transaction
is it's harder to track you and things on the blockchain.
But on the other case, that should be your decision.
I don't care if somebody knows my silly games or gophers or whatever,
but maybe I don't want people to know my main XEH address
bag, so that's a different thing. But anyway. Yeah, I think I found that the reference wallet
made the assumption that everyone would care about privacy more than usability, frankly. And
kind of backpedaling it the other direction a bit has helped a lot with making the wallet smoother and easier to work with.
Yep. Now, the counterargument, of course, is I think I would rather them,
I certainly don't regret them doing that or upset about that.
I think I would rather them start with privacy and then go the other way versus trying to bolt it on later, right?
That almost never works.
So I do like that they started with that and then we had to kind of work around it
and make things easier exactly where we wanted them like for usability.
But we're still starting with a base level, like a base understanding of this is the default is privacy.
And I think that a lot of people use their TRIO wallet as like the opposite of private.
They want every single thing that they do to be public on Mintgarden.
Well, especially for NFTs or like collecting, obviously that's a big deal.
So I think giving people the option is important.
Probably can do more on the privacy side of things in Sage in the future.
Right now, it'll only ever use
the last change address as
the default rather than generating new ones for you.
Yep. I can see that.
I suppose it would be nice maybe to have
the Gobi model where you could you could like have multiple change
addresses or multiple uh known addresses i'm not sure what you would call them like main addresses
or something um whoa we gotta i don't know about that yeah yeah i think the ability to label addresses and select between that would be cool.
Is there multiple?
Uh... Don't move like my heart's dead, pide, mom Ooh, no
All right, well, I'm not enabling that again.
That was really something.
Can you get rid of...
Oh, you're getting rid of him.
Yeah, I thought I would just let everyone come up as a speaker
and say things that they want,
but that did not work out like I planned.
Yeah, you learned not to do that.
Just ruin it for everybody, man.
Am I rate-limited?
Are they all gone?
I think so.
It's just broken on my side, I guess.
Here, let me...
Yeah, there we go.
They're all gone.
It's gone here, too.
Anyways, we're...
I mean, I'll never unsee it, but it's gone from the top.
What were we talking about?
Um... What were we talking about
back doors
I have sage
in the front end
I'm so happy
oh you finally got it working?
Yeah, it was completely stupid.
Mr. Dennis came in and swooped in and was like, let me have at it.
Two minutes later, he's like, it's fixed.
And I was like, oh, no, this is one of two things.
Boathead move or just overlook? Anyway, I had everything right except for
wasn't passing the connection
from Wallet Connect after that.
I got to go in and look more, but
basically said I missed the last step.
Everything else was already there.
So, I don't know.
Anyway, it's working.
It's all I care.
So the LLM didn't work out then?
I feel like now I've got Sage
on the back and the front, and it's like I'm dual-wielding
golden pistols now.
Like 007 stops.
It's like in Deadpool.
Yeah, yeah, yeah.
Yeah, yeah, yeah. I basically feel like John Wick now.
I basically feel like John Wick now.
There we go.
I'm going to add the multi-send endpoint to WellConnect next update, I promise.
Man, it's so nice. I'm using that every day for my go for airdrops, the game tokens.
Yeah, dude, it's a single click.
I mean, I generate the XML or the JSON file, of course,
but then I just drop it into Postman and click send,
and it just sends out hundreds all at once. It's beautiful.
Isn't the multi-send already in there? What am I missing?
It's in the RPC, but not wallet-connect.
Yeah. So see, on your Gopher page right now,
you can go to your owners and there's
a button to download the XCH addresses.
But I want to turn that into an actual button that just pops up wallet connection.
You need it on the wallet side, on the client side.
Otherwise, you'd have to proxy it or whatever.
Gotcha. Ooh, that's fun. Yeah.
Ooh, that's fun.
And you guys could not imagine like how the panging would use all of these things, you know, like we're doing it already in Discord, right?
Like in all of these places, but now when we can do it directly on Shia, that would be so much fun.
But hey, I have a quick question.
So like, would it ever be possible on Shia, maybe it's like an infrastructure thing or whatever,
that I make a general offer for an entire collection?
Let's say I make an offer and I have 3XCH.
But you get out of here, Abit.
You get out of here. Stop scooping everything up.
I just want to have any fancy fauna that somebody wants to sell for 3XCH
and I don't want to make an offer for every single you know of those 2000 fancy funnels that there are so will it be possible to make general offers for collections because on EVM chains that's already normal practice.
Yeah I think you can do it manually by generating like programmatically going through each NFT ID in the collection and making an offer for it. But making a single offer that can be accepted with
any NFT in the collection isn't
possible right now. So you'd have to
make a new offer standard for that, which
I do plan on doing eventually, actually, but
I haven't had enough reason to yet.
Again, I think
isn't the problem that that data is
in the metadata and not...
It would kind of necessitate having NFT-tube as well.
Yeah, unfortunately. You could do it with a murk for you, but it gets really expensive fast.
That was my feeling that it had to be with some kind of logic or, you know,
infrastructure thing that it's not possible, because then otherwise you guys would have
already done it, right? Something like this would, I think, bring pretty good liquidity to an NFT collection
if something like this would be possible.
Yeah, it's definitely been a common last thing.
I think it'd be nice to have in the future.
Yeah, the problem, I think it would be solved by making the collection itself
a first-class citizen on-chain besides just the NFTs, so that way we can reference that.
That's kind of what we were talking about earlier.
I guess you could make an offer where you,
kind of like what Yaks said,
you can buy any NFT that's owned by, or minted by a DID.
That's true.
There's a lot of false positives there
if you're trying to just buy one of someone's collections
rather than any of them.
Yeah, that would kind of necessitate us to do a different DID per collection instead of per artist, which is...
I really like that, that a single artist can have multiple collections under their DID.
That's kind of a cool feature.
Yeah, I think collection singletons are the answer.
Yeah, I think collection singletons are the answer.
And I guess technically they could be added as an augmentation of NFT1.
I'm not sure if anyone would really want to do that, though.
Like you could just use a collection singleton as the mentor of an NFT, I guess.
That's kind of how I imagined it.
And then you could obviously follow the hierarchy back up and prove things from that.
Yeah, actually, you could...
Maybe this is the way to do it.
You could have a DID and then use that to mint a collection and then use the collection in the nft and then you
can jump between the nft's launcher coin to the collection launcher coin and the did launcher coin
to trace the lineage that way or maybe even just have sub dids and make it hierarchical
it would be kind of cool if nTs, or at least I guess the collection coin that you're speaking
of could mint other collections.
So then yeah, you could form a complete hierarchy, almost like SSL certificates, right?
Like this one minted that one and that one minted that one, and then you can follow the
trust chain all the way back up yeah and each uh collection
singleton could have its own rules for when it can mints and that could be like a customizable
program that can default to any any number of mints or you could say this fixed number of mints or
and so on it's like the tail for cats that's true we could just just make NFTs cats and go on to the next.
Well, see,
a long time ago with Go4Me,
when I started, I said that we need KFTs
instead of NFTs. We need kind of fun people
tokens. There you go.
Maybe that's what this is.
Indigo token was
a 1000 Mojo supply cat.
So you could just do like a one mojo or 10 mojos or whatever,
make that your supply, and then that's the number of additions that you can have.
There you go.
Seems like a flawless plan.
Seems like a flawless plan.
I guess you could even do kind of like what Aceveld does.
Couldn't you...
Well, I don't know if you would need to do that, though.
I was thinking you could almost use that collection, Singleton,
to mint a bunch of coins that could then be used as dynamic NFTs
from that collection.
Yeah, you definitely could.
And then use them to create the dynamic NFT offers, yeah.
That's kind of crazy.
We'd basically just be ripping off the concept of a DID
and calling it a collection.
Yeah, and I wonder if you could...
Yeah, that's a good point,
because it's like the collector puts things in the DID when they're collecting, or when you're buying them, but you could also start them from the DID and then use that lineage from the creator's DID.
Yeah, that makes sense.
I mean, I guess a collection could even be used as a DID in that case because
um, NFT entities are assigned to singletons, they don't have to be following the DID standard.
So you could mark a collection as the owner of an NFT or the minger already.
So I think it might actually not be that much of a lift to support
this with NFC1.
interesting.
So basically pretend that
the DID is this collection
coin that we're talking about.
No, I mean, you still have the new
tree list for the collection, but you
kind of treat a collection
as if it were a DID on display services.
Oh, I see. So that we just,
yeah, the existing stuff out there would treat it like that.
Yeah. Because all the logic is already like
a lineage and not checking and all of that's already there.
So interesting.
Yeah. So there's enough demand for it, it might end up doing it.
So, yeah, so that would enable the, or possibly enable the offers where you could just say, I'll offer, basically sweep the floor type offers where I'll offer X amount for any of the NFTs in this collection.
X amount for any of the NFTs in this collection.
Yeah, that's the thing.
You'd still have to have GLISP that would
check the lineage of the NFT to find that collection
to validate it.
So you might end up wanting a new NFT standard
anywhere where you could specify in the NFT itself
what the collection ID was.
And that GLISP would enforce that it could only have that assigned if it was minted from the collection and got an announcement from it.
And then you could do a really quick lookup when you're checking an offer to make sure that the collection ID of the NFT matches the one that you're requesting.
And you wouldn't have to, as the taker of the offer, you wouldn't have to spend that collection coin in any way for an announcement or anything, would you?
You would just be checking it, right?
Well, you'd have to spend the collection to do the minting, but after that, to check it on train, you would just literally compare the bytes.
So that's efficient, too.
That's cool.
That wouldn't work with NFT1, because there's nothing enforcing that the collection ID was valid at that time.
Like someone could just spoof an NFT and say it's part of that collection when it's not.
I actually wondered the same thing because, you know, you specify the collection ID in the metadata.
So I wondered that initially.
Why can't I just claim that I'm part of the ChiaFriends collection?
Theoretically, you can.
You can put that you're the collection of this,
but of course that's where the DID checking comes in.
Well, the collection ID is a hash of the DID ID and then
the off-chain collection ID.
Right. Even if I put in the metadata that I was
ChiaFriend's collection ID from their metadata,
it wouldn't hash the same because our D IDs are different.
Yeah. The COL string that you see on
Dexy and MintGarden is the hash of the Minter and the collection ID.
That makes sense.
Yeah, so it would be completely different.
Even if I put an exact same collection ID in my metadata,
my COL number or ID would be completely different.
Yeah, that's why I don't even think the off-chain one
is displayed anywhere on its own because it's kind of useless.
It's just a unique identifier that you use as entropy to make your collection different if it's the same inventor.
I use a GWID in my stuff, but I always, not always, I don't actually generate a GWID.
I put in some weird characters.
I think one of mine, what was it?
It's not the Gopher.
I think it's the SeedSnap one.
I actually try to spell out SeedSnap with some of the letters,
even though I don't have all of them,
because it's hexadecimal, not for the Gwid anyway.
Yeah, the Gwid's hexadecimal. So I can't, I don't
have all the letters, but I tried to like do some funky stuff with the GWD. So yeah,
not that it matters, but I think I don't know if technically the trip seven spec specifies
that you have to use UID or if it's just any string. I think it's any string, but I think
like you said, it gives a little more entropy, I guess, just to that, since it's hashing it anyway.
Technically, you could just use 0, 1, 2, and 3 as your collection IDs, because it's not actually meant to be unique globally.
I think an early version of Sage used to parse the metadata very strictly, and one of the things it did was
parse the collection ID as a UUID object, which if it didn't follow the UUID spec, it would just
completely fail to parse the metadata file at all. Of course, that's been changed.
Yep, that makes sense. Yeah, that's the main reason why half the NFTs at first were showing up as blank or unnamed or whatever.
Yeah, that's funny. I didn't even think about that.
But yeah, that makes perfect sense.
That's not actually in the metadata spec anywhere.
Yeah, and there's some things that are in the spec that people didn't end up following,
so you have to account for that as well.
Oh, yeah? Like what? I didn't know that.
Like the addition number and addition total fields are supposed to be numbers,
but some of the monkeys do NFT has had them as strings.
Oh, weird. Oh, like JSON.
No, wait, not JSON strings, I guess.
Or is it JSON inside the metadata there?
Yeah, it's JSON.
They had a, instead of like the number zero,
they had the string zero.
I see, with double quotes or quotes around it, yeah.
I guess the thing they were using to mint it
output it as a string unintentionally.
There's another thing around that.
So when I minted gophers, I
did the addition number, I put in the addition number,
but I didn't put in an addition total.
I just left that blank because I don't
have it. It goes forever.
But Aceville told
me later that he actually expects to see
a zero there if it
never ends.
So I screwed that up. I think he had to fix it for me but um yeah and that's yeah that's the on-chain
metadata so yeah exactly i have a much about that i have a parser for for that in the wildest let me see what I do there nft
let me just do the
yeah so it just has like an
does it use
oh yeah it has a default value for all the parameters.
So if the addition total is missing, it assumes it's one.
You have to be really careful with
the on-chain metadata because you really can't change that effort.
Exactly. Yeah.
Yeah. So I think maybe the first,
I want to say 50 to maybe up to 100 even of the first Gophers,
where I didn't actually even put the addition number in there.
So the addition number was just one for all of those.
But then I fixed that.
And then, like I said, I didn't actually put the total in there because I don't have a total. But I think Aceville fixed that on his side to say if it's null, he also considers that a never-ending collection.
Yeah, maybe I should update my parser to allow it to be null instead of defaulting to one
because i think if you look at the nfts and sage and you hover over them next i can test this right
now i think it might just show it as like 21 of one rather than 21 period. Hmm, interesting.
How do you see the...
How do you see that and say... I should know this.
Maybe it doesn't show the edition number anymore.
Yeah, I don't see it either on mine.
Problem solved, I guess.
We fixed the glitch.
In fact, if I just make it a black screen,
there'll be no bugs.
That's like what I was saying the other day.
I was working on optimizing a nasty SQL query,
and all of a sudden it worked a lot faster, and I was happy,
but then I realized it was returning zero rows so that that didn't help at all. Query is
faster good but it doesn't work anymore so that's bad.
Or the query is faster and it's because you deleted the entire database.
Yeah or that yeah that's not good either. I have good news and bad news.
Our performance issue is solved.
Bad news is all the gophers are gone.
So we've got to do on chain collections we have to do an nft2 we have to do offer v3 what other major standards are coming up with space events events and that and that
you might as well add farming and like plot singletons into this too.
Let's do everything.
I already have a GitHub issue for that.
Don't worry.
Are you going to add farming, really?
What do you mean by add farming?
Well, I don't know.
Full farming?
Why else would you need the plot singleton support?
I'm not going to turn it into a full node, if that's what you're asking.
Yeah, I guess that's what I'm asking. Yeah, I'm not making it into a farmer.
Why would you need plot singleton support then? What would you do with that?
I'm not really sure to be honest. I don't know what they were for.
I guess you need to be able to spend them to join a pool. Is that right?
Yes, that's true. But again, I don't know why you wouldn't just do that from your farmer.
Well, I mean,
you'd have to use the reference wallet if you're doing that, right?
Yeah, that's true.
I'm trying to
replace the reference wallet in that regard.
that's true, yeah.
Theoretically, you could not even be running
a third-party farmer, I suppose,
like no SSD or one of those things,
and not even need the GA reference wallet at that point.
But I guess at that point, you're not using PlotSingletons anymore either,
if it's no SSD anyway.
But regardless, I mean, I guess that's...
Yeah, to change pools, that's definitely a functionality thing.
That would be nice.
Yeah, or to mint new .
I always thought the way that they were stored in
the reference wallet was weird.
They're part of the config file instead of the database.
I remember that.
And initially, at least there were some bugs around that,
and you could get into all kinds of funky wallet states because it like didn't quite like,
it wasn't synced yet all the way to your,
to the point where it recognized your plot singleton.
So your farming didn't work until it got to that point.
And it was like weird stuff.
So I don't know.
I don't really know much about plot NFTs,
I don't know about plot NFTs, but I'm assuming that I could support them.
but I'm assuming that I could support them.
I remember way back when Gene was mentioning that third parties could use the plot NFTs,
like different chains even, like theoretically, which I thought was kind of a weird...
I don't know about other chains, because it's obviously like a coin on this chain.
Right. And well, I think, well, that's true.
The discussion back then was probably was more related around different forks of Chia,
which we don't really talk about much anymore because there's just not much interest in that.
But yeah, back in the day, like after mainland launch, there were like, what,
like 50 forks or something crazy where you could get all these different fork coins by running.
Well, and this was also before GPU farming, so it was relatively possible on modern CPUs to run, like, I think I had, like, 20 or 30 forks running at once farming because it was
all just CPU based, so, you know, you could do that.
Yeah, I mean, if you make mean, if you're on a fork,
most of the time they have a different genesis,
and all of the coins have a different ID,
so you're not going to be able to reuse the same NFT
over on a different fork,
unless it starts from a common fork point.
Like if the fork started at block height 8 million,
then you'd be able to use all the coins before that. a common fork point. Like if the fork started at block height 8 million,
then you'd be able to use all the coins before that.
Well, you could, well, on that chain anyway.
So let me think, how did this work?
It was, oh, if you use the same seed phrase on the other fork,
then you could... What was it?
There was something weird.
Because your plots were all joined
to your singleton,
your farming singleton, right?
Your plot NFT.
But on forks,
they would still recognize those
as long as you use the same seed phrase somehow,
even though they were different genesis, like you said.
But the coin wouldn't exist.
The coin didn't exist.
I think maybe you're talking about self-pooling,
where I don't think you even need a plot NFT for that.
You just use your public key.
Maybe that is what it was.
Because, yeah, yeah, it was definitely for self, for solo farming, but it wasn't.
But you still could use your plot NFT and you had to go claim it.
See, that was the thing, because you were your own pool at that point.
So you had to go like every week you had to go claim that out of that single.
But yeah, you're right.
Where did that single thing come from?
I'm trying to remember now. It's been so long.
There was definitely
there was a third party tool
that would help you go claim
all of your winnings from your different
I think MatterHead just linked it.
All the blocks NFT recovery.
Is that the one?
Yeah, that's right.
I don't really understand.
I don't get this, though, because one chain doesn't have insights into the coins on another chain.
So how would that impact?
And, yeah, I'm trying to think, how did that work, too, now?
Now I'm confused, because I know more now than I did back then, so I didn't know to question it back then.
But now I'm thinking, wait, how did that work?
Because, yeah, I specifically remember I would use the same seed phrase across all the chains,
and somehow that magically made it so that I could still pull in my winnings.
Maybe it had nothing to do with the plot, Singleton. Maybe it was just that...
Actually, I don't know how that worked. Maybe it had nothing to do with the plot singleton. Maybe it was just that.
Actually, I don't know how that worked.
How did that work?
Because they were in the config file,
the singletons, or at least the references to them,
but not the singletons themselves, obviously.
But I didn't copy the config file stuff.
I don't remember anything like that man that is weird
that's going to bother me I don't know how that worked
but at the end of the day
you could use the same plot files across
all chains and
they would all reward you over time
just like normal
I really don't feel like looking into the reference wall code right now
well and like I said it's not really I don't feel like looking into the reference wall code right now.
Well, and like I said,
it's not really, I don't even know if any forks are still going out there. I think especially the
ASIC Time Lords kind of killed those off
pretty quick because
you can really
run a fork safely. Yeah, exactly.
So yeah, I don't think that's even a thing anymore.
I know that if you're, at least I think that's even a thing anymore.
I know that if you're, at least I think that if you're self-pooling or solo farming,
I don't think you have a pool address or signal tonight.
I thought you just used your actual BLS public key in the block.
Maybe that's what it is, but because... But there was still something
about the seven-day limit. You could only claim
your winnings after seven days, because
remember, in the original pooling singleton,
that seven days
was when the pool would come along and claim
their winnings. They had seven days to claim it out
of your singleton
to distribute it amongst their own
pool. But in the forks, you basically had to wait that seven-day period
for a pool that would never come because you weren't joined to a pool.
And then once that seven-day period expired,
then you could claim them out of your own singleton
as if you were the original owner of those, so to speak.
So maybe it's probably a coin on chain that has a puzzle that can either
be spent by the pool's singleton or after time passes, it kind of bypasses that completely and
doesn't check the singleton. Right. So, so you, that's exactly right. So you basically set your
reward when you, when you join a pool, what you're really doing is setting your reward address to that singleton address.
And so the singleton is getting paid, not you.
But then the pool can come along and claim their part of the payout as long as they also pay you your part.
But they can only do it for seven days.
After the seven days, you can then go and claw that back basically and say, that's mine and I'm taking it.
So on the forks, you had to wait that seven days because there was no,
you weren't joined to a pool.
So there was nobody ever coming for it, but you had to wait anyway.
And then once it timed out,
you could go claim your winnings with that all the blocks utility thing.
Okay. Now I think it makes sense.
You just had to talk through it.
Yeah. But yeah, that was the first, my first expo. I think it makes sense. You just had to talk through it.
But yeah, that was the first, my first exposure.
I think everybody's exposure probably to Chialist.
Like, holy crap, this is cool.
Like, you know, because everything up to that point was just sending each other transactions or cats. I don't even think we had NFTs at that point early in the blockchain.
But the idea that this concept of multi-spend like like two two parties can
spend this coin based on different rules like that's when it like was really like hit me how
cool this technology was yeah there's so many cool things you can do i've been fascinated with
what people are doing with options recently.
Oh yeah, tell me
more about that. I know
you've got the Sage support built in now.
I actually haven't even played with that.
What would I do?
How does that work?
I get so confused with options, by the way.
I don't know why.
I think I'm normally a smart
person when it comes to this stuff. But for some reason,
it's like, you know what, it's like when I built the RB line middle arbitrage bot,
trying to figure out profit between Tibet swap and Dexy. And it broke my brain so bad that I
forced myself to write code to solve it so that I never had to think about it again.
And that's what the RB came out of that. So I it's the same with options. I have a hard
time like I understand in principle. But I still have to think through like every single time I
think about it, I have to think through all of it again. Yeah, I don't really understand the
like market making and pricing aspect of options. Like I'm terrible at actually creating and like
purchasing them. But as far as the tech goes it's fascinating to me
it's basically just an offer file that is like kind of encoded on chain can't be cancelled until
the expiration and um can only be exercised by the current owner that's kind of the way i look at it
the current owner. That's kind of the way I looked at it.
That actually makes a lot more sense to me, yeah.
So it's an option. So I could create an offer file
to you, but I can't cancel it. That's interesting because now, yeah, that's the whole
option part of it. You have it until a certain time period to
what's it called? Exercise the option, I suppose.
Yeah, and then it can be traded itself as
an asset in offer files. So you could sell the option to I suppose. Yeah, and then it can be traded itself as an asset in offer files
so you can sell the option to someone else
for some amount of XH.
That's making sense. But the thing that I didn't expect to happen
was that people would start using them for loans.
That's what I was about to say.
So that's where my brain
starts breaking, like, wait a minute.
This is a really fascinating thing.
So you're creating an option that locks up a certain amount of XCH inside of it.
And then the strike price is the amount of USDC that you're loaning plus the interest.
that you're loaning plus the interest.
And then you're selling it in an offer alongside the USDC that you're lending
in exchange for the same amount of XCH that's locked up inside the option.
And that way, the buyer is essentially paying XCH, locking it inside of an option,
receiving USDC, and then at any time they can pay back a little bit more of the USDC
to unlock the XCH again.
And if they don't, they get to keep the USDC,
but their XCH gets forfeit to the lender or lindy.
So it's a really complicated way of kind of loaning someone USD for their XDAH without trust.
I see the mayor's down there.
He basically invented this with the alpha-lispermative.
Yeah, I feel like I need a whiteboard every time I try to understand this stuff.
Hey, Josh for Jizzy, this is PD, Paul.
How are you doing, guys?
What's up?
Hey, I wanted to ask a question earlier, but I was fascinated.
And then I was getting, you guys were getting deep.
So did, Regidi, did you call, what did you call the product?
Did you call it liquid loans?
Or did you call it?
I haven't really given it a name.
I think the mayor did
so i'm just saying there is a product that i was invested in or i still am and i you know uh
on pulse chain and it's just called liquid loans ll and it's actually having a 24 month unlock
which they did they launched two months after Pulse Chain. It's been 20,
you know, whatever. I'm just, I just, I heard the word liquid loans. I just,
not sure if you're aware of their product, but they have one on Pulse Chain. I thought
that's what you said. Yeah, it's probably similar. I think the term that I was kind of using behind the scenes was like over collateralized
loans or I don't know. I'm not very creative person. No, no, no, no. I love, I think I get
what you're saying. I love it because if you look into liquid loans, I just would not be
careful at all because, but they're a very large company that did a big raise right at the end of Pulse Chain.
But I love the over collateralization.
I had hopes and dreams.
You know, if you can provide that type of product, you can actually use your crypto to like buy a house or use real world stuff.
So I'm very interested and I,
you know, wish you all the luck I just heard the word liquid
loans. If you look up ll.io or liquid loans.io. They have a
full company or, you know, presence and such. Hey,
Richard I also I'm and I'm sorry, this might be a simple
question. But I did look it up and
grok and everything else but um as the market increases and whatever um just vaults um is
there any integration on the sage for uh cold wallet or should someone on the chia network stick to the new vaults or um just high
level just real quick just i i'm on board someone and i just want to make sure that they just don't
want to look at it for like three six months a year or something yeah i think cloud wallet would
be the best option right now there's also tangium if you just want a hardware wallet. But I'm planning on adding support for Vaults and Sage in the future,
but it's not in there yet.
Okay, no problem.
So I'll just kind of go to the Vaults thing.
I saw the Tandem I interacted with a little bit,
and I just tried to keep a long password.
So thank you.
That was really all I did.
You're the man, so i appreciate you guys drac
josh what's up i see mojos thank you guys appreciate it well thank you
the mayor himself is up here now
how's it going?
Unless my UI is bugging out.
No, I don't hear him either.
I know that Silicon is planning on doing something with options.
I think they're planning on maybe giving out loans on GPUs.
Like you could buy a GPU and then pay it off with the earnings and stuff like that.
Okay, my ears just perked up.
I don't know how much they've said publicly, but i know that they're planning on having loans on jps yeah rigidity and drac there's a lot of derivatives
that are coming out because finally people are taking on their books i mean you just saw that uh
i think the um uh roth and iras are allowed up to 13 18 so they're trying to find any creative way to place
it so um you guys are extremely smart you can see her but oh i forgot rigidity you're like and also
drac you just like i don't know these coins you're so valuable you have no idea and i think you're
so valuable you have no idea and i think you're becoming aware of it but like these derivatives are
like two or three times our almost potential our market cap of our entire three or four trillion
where i mean we're we're looking at hopefully 10 or 12 right as an entire so i don't know derivatives are crazy they create for God the just huge whatever
reminds me of that scene in Wolf of Will Street yes yes yes and I remember you're on a call
like a while back you're like I don't know they just tell me and I just do it and you're I was
like oh my god he has no idea and I think maybe gooey or somebody else but gene wasn't on the call but it was just maybe a month or two ago and you're like i don't know i don't and drac
reminds me a lot of that but i think drac's getting pretty keen because he's he's just in
the space of some of this stuff and um i remember meeting rigidity in toronto and thinking to myself
and saying it to some of the people i was with, like, this kid has no fucking clue.
Like, what's coming for you, dude?
The fucking world is going to be your oyster.
Drac, I'm going to also address and say the same thing to you.
You have no idea.
And I remember the story.
I was on the call when you're like, I'm about the whatever point.
I remember I was there. And you as well, sir. and i remember the story i was on the call when you're like i'm about the whatever i remember i
was there and um you as well sir just just realize that like just not good at selling myself as well
but uh you're you're all everybody's there and everybody in the room right here probably is
well ahead of everybody in the curve and i mean i i put this guy on to
20 30k of chia and i was like selfishly or hopefully i was like keep a little polstein
or ethereum and then rotate a little later but um i'm just concerned because i've told some people
and they've come on board i just don't know how to protect them. Some guy got all mad and I was like, unless you pay me to come up, I'm not like
babysitting your wallets like it's too much exposure or risk.
But there's people coming on really asking questions. I just
don't know how to protect them. And so anyways, you guys are
studs. And I'm telling you, Jack, you're included, brother. So
Virginia, thank you for answering, you're included, brother. So, Rigidi, thank
you for answering it so directly. Thank you.
Hey, John.
Are you up here or are you phantom up here?
Are you up here or are you up here?
Actually, I was helping the mayor talk about his loans.
Yeah, me too.
Let's see.
Can you guys hear me?
Yeah, so it's really just a simpler way to do over collateralized loans.
The lender has to kind of front both halves of the loan first in order to kind of build it, get it sold.
Trying to work on a website to get options listed and viewable and purchasable, but it's going slow.
I know that Dexy is going to have support for it in the future, and I think that'll include
NFT options once they're supported, but it'll be, like, hidden unless you have a direct link for the NFT one specifically.
I think for regular options,
it'll just be like a separate tab on Dixie.
Okay, that'll be nice.
What do you think an NFT option would be for?
Like what's the use case?
You could use a GPU as the underlying
and then loan on that.
You could also do loans against the
Sol's Lots NFTs
for the real estate.
Basically you could
either as the lender or
borrower start leveraging up
quite a bit.
Basically either as the lender or borrower start leveraging up quite a bit. Basically,
buy a Saul's lot,
sell kind of a midpoint strike price.
So you basically get half your cash back.
and the buyer gets the option to buy it at slightly less than what they would have earned if they bought it directly,
if that makes any sense.
Yeah. Also, I was thinking about it, and I think there's a way that we can do it
so that you don't have to front the underlying as the minter of the loan.
You'll just be able to directly mint it as part of an offer file that requests the underlying.
That way only the buyer has to fulfill that.
And then you also don't lock up any assets until the offer is accepted by someone.
That'd be useful.
I don't know what the timeline on that will be, but sometime.
I found it a, like, it's an interesting way to do lending that's mostly secure as long
as there's no attack
vectors for the option itself.
I've had it like internally
reviewed in CNI but
I haven't had a formal audit for it yet.
Though I do wish I could
always see the options that are outstanding in the wallet, because
they kind of disappear with the offer file.
Yeah, I can add a view where you can see options that you will have the ability to spend the
underlying coin of in the future if it expires,
ones that you've minted.
Yeah, right now I have to track that separately
and it gets, you know,
I've only got three options out, I think, right now.
But I would have no idea kind of how much outstanding risk there is without
tracking it separately.
The data is all there.
So I should just be able to add it to the UI in the future update.
And if you resync your wallet, there no risk of losing either it'll resync it
the uh one thing i was thinking when the guy was talking about um buying up or offering anything for the NFT.
It's not quite the same,
but if you could basically get a search,
the NFT collection of Dexy and find the cheapest one,
and then just have the wallet send an offer out based off that,
that might, you know i don't know if the wallet will prompt for offers probably not probably doesn't know about it unless dexy sees it yeah i could
add like a way to have the wallet scan for offers for nfts that you own and technically you could have it so that you
can make an offer that requests every single nft in a collection separately so you'd if it was a
collection of a thousand nfts you'd have to make a thousand separate offers and upload them to not really scalable, but it would work.
Yeah, I think I tried that. I had a splash node point right to Dexy
and auto, or no, right to Sage wallet
and had it auto import everything it saw and the wallet
just exploded after a couple hours.
I don't think it'll work anymore because the,
you can't import offers that weren't created by you anymore.
I did notice that.
I did notice that.
It got really confusing just looking at your offers list
and seeing offers that you've created and offers that you've taken next to each other,
and the side in which you were paying was dependent on which party you were in the offer,
which wasn't represented in the UI, so it would show that you were paying the wrong asset.
So it was just a whole lot easier
to remove accepted offers from the list.
Is there any way to see because i if you take an offer but tell it not to auto submit it it returns a spend bundle is there any way to see half the spend bundle from an offer file
to get underlying coins or do you have to
spend it before you can see anything um well if you have an offer parser it can tell you what the
offered side is the requested side and then you know for for options you'd have to
manually do like on chain lookups to find the underline coin.
I guess it would depend on the use case.
Really trying to figure out an easy way to track when an
option offer
of my own wallet.
I guess the Dexy
API would probably be the best way once they have support
Because they basically already, like, have a splash node and stream all the incoming offers from it into their database and provide it via the API.
but if you're trying to avoid using any apis other than splash then you'd have to
write all the code yourself
yeah that's kind of how it was cheating before um i think sage would know when the offer disappeared
if it were tracked in the offer section of the wallet but that didn't scale at all yeah
yeah because the problem is that's doing like um every few seconds it's doing a lookup in the
database for every single offer that you have
imported and then looking up each of the coins on chain and say it scales fine if it's like 10
or 20 offers but if you have hundreds of them it's it's slow fast yeah it started taking like 30 seconds to like click between anything.
Is there a way to point Sage to your own full node?
Is that already a thing? Do you just add that as a peer? Yeah, you can go to settings under network
and disable automatic peer discovery
and then go into the syncing in the bottom left
and then you can remove all the old peers and add your own.
It's kind of a tedious process.
Maybe an option to just put in a single peer
and have it force that one to be the only one that's connected would be good.
So technically possible, but not that easy.
I've had weird issues in the past where I'm connected to a bunch of random nodes and I
come back to my laptop after a few hours and they're all behind or out of sync or something.
Especially on testnet, I think people's testnet nodes are on average less reliable than mainnet nodes?
I think I was, like, for those option loans,
I'm planning on trying to get a set of rolling loans going out. So maybe one expires every week and throw some new ones up.
Cause there's,
I'm sure a lot of people that want to attempt some leverage.
I'll have a way to use, to mint optionset Connect in the next update, I think.
Wallet Connect would still take the offer though, right?
That has an option?
Yeah, you can have it take offers with options right now,
but you can't have it create new ones or transfer them. Or you also can't create an offer with an option i think you can only take them Yeah, if you're setting up a website, just let me know what kind of points you need, and then I can create them.
partially the
reason for the question on Discord
about pointing
Sage to new offering points.
So people could
like, so you could choose to post to different types of websites,
but have it manually configured by the end user,
so you don't have to enter 20,000 of them.
Yeah. it's getting late where I am.
So I'm going to jump back down to listener.
Yeah. Thank you. You guys still up here?
Are you...
I'm still here. I'm just doing some goofering behind the scenes.
So how much of that is using that online tool that you were talking about in Toronto?
Oh, in Aden. Yeah, a lot of it. Actually, all back-end processes anyway, like the queuing, the minting, or I guess creating the offer files through Aceville's API somebody takes one offer file so i can create the next one
and then uh mint garden for knowing um the current owners of the nfts which of course i could look up
i suppose on my own but the mint garden makes it so nice to just grab all the nfts and get their
owners um so i he also has a night the api itself it's uh it, you can ask it for only things that have been updated in the last X amount of time.
By updated, it means transferred to a new owner.
Basically, I sync once up to now and then every minute I ask it,
tell me what has changed ownership in the last minute,
and just keep a synced database on my side.
But then that way, that's how I show really fast
from my Go4Me website, all of the stuff from that.
So yeah, but anyway, it's pretty much in it in,
behind the scenes to actually do everything.
Supabase is the database backend that I use,
and it's connected to all of that.
And then, of course, the front-end website
is just next.js running on Bracell
and hooked up to the same Supabase backend database.
So Supabase has an API that any end is connecting to?
Is that the word?
Yep. Yeah, Superbase is just basically a Postgres database behind the scenes, but they've got a nice API on top of it.
So, yeah, you can do, like, you can create views and functions and all of that as well alongside your tables and then call those things through the REST API.
So, it's pretty nice.
I'm just trying to figure out how does it,
like, how are you able to link all these things together
with that tool?
Yeah, yeah, that's, it's,
the N8N is really nice for that
because the thing I use the most out of it
is just the HTTP node,
which is like the HTTP node,
which is like its own little, I mean, it's just an HTTP rest call that you can do,
and you can configure all the query string variables, and you can even do SSL certificates, so it works with Sage's RPC,
and it's pretty neat.
But you do all that kind of graphically,
and then just connect the inputs and outputs to it.
You're saying you hooked up Sage to it successfully?
Yeah, yeah.
Sage is just another, you know, REST endpoint, basically.
Is it running locally or is it on, like, a cloud platform?
Oh, it's locally, yeah.
So I run N8N in a Docker container on my desktop.
It's a server, but it's basically a Windows 10 desktop.
So you can actually make your own services and link those up too?
That's cool.
And so yeah, I actually have local services running.
I used to have my own APIs running locally
that N8N would talk to to mint things and stuff.
But now I use, of course,
a spell service for all that,
so I don't have to worry about that.
But yeah, I can talk to the local,
basically the N8N is running on local host through Docker,
so it can reach out of its container to the host PC that Sage is running on
and talk to its RPC.
So yeah, it's pretty cool.
So when do you use Sage for them?
Well, in this case, so far, airdrops.
That's what I'm working on right now.
It's not completely automated yet,
but I would love to have that fully automated.
Right now, I'm basically using Postman.
I'm sure you've used Postman, I'm sure, right?
There's like a tester or have you not?
Once or twice.
Yeah, it's like a REST API test harness type setup.
So right now, I'm still manually doing it.
But basically, I'm from postman calling the multisend endpoint with a bunch of JSON that I've generated from N8N.
And then, of course, I've also connected N8N directly to the RPC endpoint, but I don't
quite trust everything yet to just like magically run myself, especially when I'm talking to
a wallet now. So I'm still kind of doing those parts manually. In fact, I need to send out
today's airdrop here in a little bit, I guess. But I've at least proven up to this point
that it all is technically possible. In other words, NNN can talk to Sage's RPC just fine with the SSL certificates.
And then NNN can generate the JSON that I would pass to Sage's RPC.
But I'm going to do that manually for now through Postman until I trust it enough that I haven't,
especially since I'm actually sending out funds now from a wallet.
I want to really make sure that's right.
So when I add the events and webhooks and all that,
you'll be able to hook them up and
actually verify the status of the transactions.
Exactly. Yeah. So if you're exactly,
so I would subscribe right back to either the webhooks or
the WebSocket or however you want to do that,
and just listen to those events and then update my database.
So I would be able to, for example, man, sorry, I'm going to take a drink.
Right now, I basically trust Dexy and MinkGarden for everything.
I'm not actually looking at the blockchain myself at all.
But with those updates, I can start actually basically subscribing to Sage and say, hey, let me know when certain things happen.
And now I can start trusting, well, all the way down to my full node.
So I've got a full node running on my servers.
Sage will be connected to it, which is like what you just described a second ago.
And now I would be fully dependent on my own full node running in my house to verify everything, which would be really cool.
I mean, it still won't let you look up, well, Sage at least won't let you look up the NFTs that other people and stuff like that.
Right, right.
But I could, so so yeah, for that,
well obviously, I'm using Mintgarden just because it's so nice right now. But if I wanted to do it completely on my own,
I could talk to my own full nodes RPCs, of course.
Also, coinset.org has some nice endpoints for that.
But then of course, I might as well just, if I'm going to trust them,
I might as well trust Mintgarden.
Actually, who runs coinsinsightDot over?
Is that CNI or is that a community thing?
Okay, cool.
So at least we know it's fault-tolerant and set up well and all of that.
Yeah, it has four different data centers it's running on, I think.
I actually have access to the source code,
so I'm adding some stuff to it.
Very cool.
I'm playing with.
Wasn't that like Cameron started that, didn't he?
Yeah. He still is the main maintainer of it.
It's just posted by CMI.
Nice. Yeah.
That's a nice service I haven't probably used as much as I should have.
I keep forgetting about it, actually, and I need to have an excuse to use it.
Yeah. I mean, the problem is that if you're using Coinset or any other RPC for looking up things like NFTs,
then you have to do all the parsing yourself and then traversing the lineage of
coins, and it gets really inefficient really fast.
See, that's what's so nice about MintGarden, is I just want to know who owns it right now.
I don't care about anything else.
Just tell me that.
I would be using them too, to be honest.
I think ideally in the future we have locally run indexer nodes that can sync everything
into a really efficient database, but we don't really have that yet.
I think that was something else Michael Taylor was working on, if I remember correctly.
Something about basically like he described it as like a wallet, but it's more like for an application versus like a user.
I thought he was working on just like an events streaming API or something.
Maybe, yeah, it was something like that.
I mean, well, he's working on a million different things, of course,
but maybe we're talking about different things.
But yeah, I think that was what I was hearing is it was
like it was basically like a wallet does, which is kind of watches the chain and, and, and tags certain coins as your own so
that it can show you in an interface, right. But it was more for like applications where like you
could say you'd have different rules on the coins, like I want to I'm interested in more coins than
just the ones I own, for example. Yeah, I was working on something similar
because I'm working on a little block explorer on the side,
like h.dev, and I wanted to build my own API for that
because I needed custom endpoints for it.
So I was planning on doing an indexer node
or a database that would sync against a full node
and cache all of theft and dd and everything
into it um but i ended up switching the coin set because now i can just add in points to that
instead yep yeah that is what is i think missing or at least well it's not missing because ace
phil's created that on mint garden and i knowCans has done a lot of work on that too. But yeah, that abstraction layer, right?
Obviously, the whole blockchain can fit into a single table
with three columns in it or whatever.
But I'd like a little bit more abstraction at my level, please.
Yeah, I think you should just be able to look up by NFT ID
or address and stuff like that
and find all the actual information about the client
rather than just its puzzle.
And yeah, you do need a separate database structure entirely for each individual puzzle
definition almost. You need like, NFTs has its own shape,
like data shape, right?
At the abstraction level that we're talking about.
Like you said, who owns it now?
Who is it created by?
You know, these different things.
But that's totally different for options,
for example, or something else.
And it's like each of these almost need their own,
even though they're abstracted at the blockchain level,
or even though they're, what is it?
What's the right term?
Normalized?
Yeah, normalized.
Like I said, like five columns, I think, if you include the solutions and stuff.
Yeah, because the full node doesn't care about any of this.
Right, exactly.
It's just coined it to that. But yeah, it's almost like in
an enterprise world where I normally work,
it's like this is the data warehouse.
You've got your transactional data,
which is the blockchain,
but then you've also got a data warehouse,
which makes sense, shapes all that data into
something that the executives can look at it on dashboard.
The big problem with that is that while the mainnet database
might be like, what is it, like 180 gigabytes,
if you actually decompress it into this structure,
it ends up being potentially terabytes in size.
Interesting.
Yeah. interesting yeah hey rigidity can i ask a question and jump in right quick sorry
yeah i'm just working with somebody here with stage we're trying to do
like bulk creating offers but i'm getting a like a timeout on it just it just works and then i did a mod and now it's
timing out is there anything like there's no limits or anything we're just trying to do 10
nfts for one in bulk fashion is there any sort of like limits or rate rate limits or anything that I need to it just keeps well
I know that one of the problems is that the
wallet will look up
every NFT URL that you give it
when minting an NFT
and verify that
the content matches the hash
so if the content isn't there yet or
if the URL isn't responsive
in time then it will
fill them in the NFTs. Okay. Okay thank you. Sorry to interrupt. Thanks.
So it's kind of inconvenient. I'm planning on adding a flag to disable that
functionality because it doesn't really need to verify it. It's just like a safety
mechanism. Yeah yeah yeah. Gotcha., I'm gonna keep trying something here.
Yeah, one of the main reasons I haven't added a bunch of stuff
to the Wall Connect API is that once you do,
you can't really remove it.
Once people rely on it, you wouldn't want to rug all the
applications that depend on it, you wouldn't want to rug all the applications that depend on it.
So I've been keeping it as small as possible until people actually need something.
Yeah, that makes sense.
I think that's something.
You have officially released the RPC documentation or API yet either for that reason kind of too, right?
No, that one's just laziness, to be honest.
That's funny.
I think I said I was going to do that like a couple weeks ago and I forgot.
So, yeah. a couple weeks ago and I forgot.
Well, I've been able to,
once I figured one out,
I was able to,
okay, now this makes sense,
the naming convention and stuff like that.
So, it's not too bad.
What I really want is to be able to generate them with OpenAPI,
but it's a pain in the ass with the way that I have it set up right now.
I've got probably, I don't know, six or eight of the endpoints
that I was just playing with spec'd out in Postman already.
It's pretty neat.
You can actually save a collection of requests,
almost like templates.
So I would love to actually have a complete collection.
I had most of them for the Chia RPC originally,
the reference client.
But yeah, I'll send that to you
if I eventually do complete it
because that would be a nice little
addition to the documentation.
People can just download this collection file
into Postman and test everything.
It would be nice to have like an actual
RPC client inside of Sage too.
Ooh, yeah.
It's actually
a collection of that idea. Ooh, yeah. It's actually, actually Clyde came up with that idea,
but it's pretty cool.
It'd be like a tab inside of Sage where you can go
and see all the different endpoints and enter data,
Yeah, like a,
like the kind of like a test harness pages you see
on endpoints out there.
Yeah, I love that idea.
I think the coin set.org documentation has that.
That's actually how I used to get coin data
before I realized that you could download the CLI.
And before I made XH.dev, I would just
go onto the CoinSet website and enter stuff into the documentation.
go onto the coinset website and enter stuff
into the documentation.
Yeah, that's a really nice way to test stuff.
Supabase has something similar in their docs and it's cool because when you're
logged into Supabase's site and then you go to their docs,
all their documentation is customized for your login already. So like all your tables, like your, even like your tables that you've defined are there and you can just like play with it kind of similar.
It's really nice.
Yeah. I think there's even...
I meant to check this the other day because I saw something about it.
The Supabase has a WebSocket endpoint, I think. So you can basically subscribe to what are triggers
in their backend Postgres database,
but those triggers go all the way through
the WebSocket API to your client.
So like as things change,
you can actually send WebSocket events
all the way down to like your web app.
That sounded pretty cool. Let me add events to my GitHub issues so I don't actually forget it.
Yep, that's a good one. events and database table for transaction results.
Enhancements.
I have 36 issues and most of them are, or 35 issues, most of them are enhancements not
Which is a huge improvement from earlier this year when I had like 55 open issues and almost
all of them were bugs.
I've actually been surprised at how
stable page has been recently.
I mean, people
have issues with having to rethink
the wallet from time to time, but
other than that.
Don Kegman's been helping a lot, too.
It's been a huge help.
He's a good guy.
I still can't believe how fast he was able to make themes a reality.
Oh, he did that? That's cool.
I thought it would be a lot more time-consuming to implement that.
And there are some small quirks here and there as a result,
but it's a lot better than I thought it would be.
I guess, is it because it's generally based on just like CSS and kind of that's almost a solved problem in the web world anyway
so maybe it
works out similar here. Yeah but we're using
Tailwind CSS which I thought only
had like an option for light and
dark mode but apparently you can
set it up to
I guess we're basically just adding our own
CSS classes and using those in this case
That's cool though. Yeah you can just change the root like the CSS CSS classes and using those in this case. But, yeah.
That's cool though.
Yeah, you can just change the root, like the CSS root class on whatever
your containing element
is for the whole, the UI
and that just becomes the
new root class for any theming
that you want to do. Even if you wanted to allow
custom theming,
then you could just set it up so that users could assign
a root class name of their own. And then, you know, just have a
UI that allows you to set the parameters for all the different
like color theming and background backdrops and all
that and you would just tie it underneath that root class and then i think that we should just
i'm talking to hyper x he thought i was talking to him. I was talking to you guys. There's
all kinds of confused there. Anyway, you know what I mean, rigidity? So you could allow
people to do their, you know, win imp.
Yeah, we have a, there's a PR that has got merge that allows NFTs that are minted with
the Sage Yeti to contain a theme inside of them, and then you can attach that theme to your wallet if you want it.
So people will be able to design their own themes,
and then we'll be able to sell them and split the profits.
And technically, if anyone owns the repo,
they can install it from source and add their own themes for free, too.
Hey, Steve.
I'm working on themes now.
Were you able to get it set up on your FPC?
I am in the middle of getting it set up for my Windows.
I have some issue with Windows where I click a link to
download and it takes three hours before it pops up the actual download and I
don't know why it's doing that but I'm downloading the Microsoft C++ build
tools right now but I could not I couldn't get it to work on Ubuntu because it's so damn old.
I think they have Ubuntu 24 now.
Although I remember trying to set up Ubuntu 24 and 90% of the stuff I tried to use was broken.
Yeah, I just don't...
I'm not looking forward to having to rebuild my damn farmer.
If I put it off long enough, I have a separate farmer ready to plot empty drives,
and I can just move to the next farmer that way.
It's like a hot swap over.
But I have that machine off right now
because it's so friggin' hot,
and my garage is unbearable.
is unbearable.
Yeah, but I got like 20 themes
kind of designed already.
That's crazy.
And Winamp was one of them.
I think I've only actually designed
one of them, the alien one.
I thought they looked pretty cool, but...
I guess Don did the other ones.
Would it be possible to
design an audio
thing that
pops up with the theme when you open up
Sage? Like the old school Winamp
whips the llama's ass?
You know, something would be similar.
You mean like being able to play the Halo theme
while you have the Apple theme?
I don't think it does audio yet.
It's just a background image
and colors and stuff. But you can actually and um colors and stuff but you can actually
set a gif but you can't do audio so i missed a little bit at the very beginning of that
discussion on themes did you say how are you using a certain
uh how i guess how's it done?
I mean, obviously, I see the JSON, and it's just settings in there,
but it doesn't seem like they're uniform across all the themes.
So I wasn't sure if there's some other framework process in it or something.
I'm not sure.
Yeah, there's kind of like a base schema for light mode and dark mode,
and then you can inherit from them,
and anything that you don't specify will use the default.
So I think that's why some of them are missing in some of the files
is they just defer to the template.
Is that a schema that you made up, or is that just a known schema?
Yeah, Don made a custom schema for it.
Okay, so I can probably get the full schema from him so I can make sure that...
Yeah, and I think we're planning on having documentation for it on the website as well.
Yeah, he already messaged me, and we've been chatting a little bit.
I didn't realize he made the scheme of that.
Yeah, he pretty much did everything for themes.
I didn't really...
I just complained about various UI elements being colored wrong, basically.
That's the only input I had.
I just made a new
Super Battle Cats
just for this theme.
It's new art just for the theme.
I still got my battle budget.
I need to do a theme for that too.
I planned on doing a theme for each of my NFT collections that are more popular.
I have some crappy ones, I guess, that never sell.
So I won't probably mess with those.
But yeah, some of the big ones.
Just finished Astro Bot's theme.
Josh, when are you going to put theme in on Go4Me so I can make some themes for that too?
Oh yeah, that was actually on my list.
Just need to
play with this some more.
Is that like the MySpace idea where you can go to
someone's profile and they can customize
their page?
That would be
the dream.
I wanted to
start a little
slower rather than just give people full
reign and i'm not sure exactly so here's a crazy idea here's what i kind of wanted to do and this
i don't know if i'll give away too much alpha here but so just like you know how i like to
make things simple for everybody like i like just give me your xd address and i'll i'll make an an NFT and send it to your wallet and do all the stuff and you don't have to worry about anything.
Like, that's all you have to do.
So what I really want to do is let you tweet a description of what you want your website to look like.
And then an LLM agent builds all the HTML for you behind the scenes and puts that up on your Go4Me page.
That would be super cool and
maybe you can even attach up to four images on your tweet and it'll incorporate those two somehow
but so so it's like this so you know if you can basically you have to fit what you want
on your page into the the length of a tweet plus some images and from that we will create your
your myspace lookalike page.
I think that would be kind of cool.
I'd be like, hey, go for me.
Please add a script tag with window.location.
See, that's the kind of stuff I worry about.
But so here's the thing.
I actually designed it from the beginning way back, like, ago when I was starting on the Go4Me thing. The whole reason you are on separate, your username is, it's a subdomain of Go4Me. So it's, you know, rigidity.go4.me.
Because that's a separate security sandbox.
When you're on a fully separate domain and you're each on your own domain,
then technically your page is running, you know,
the browser treats it as its own security zone.
Whereas if it was just like slash username off the main domain,
then if people put custom HTML up,
then they could theoretically talk to each other's pages
and all kinds of crazy stuff.
But because your pages are on separate, fully separate subdomains,
cross-site scripting, you know, protects you in a lot of cases
from, like, interacting with other people's pages and stuff just through JavaScript.
So I kind of thought about that from the beginning, but I'm still worried about it.
I mean, obviously, it's a hard thing to get right.
I mean, like, imagine you're already connected to Gobi, so...
And, you know, in fact, one of the first things we fought,
when 300 Spartan was helping me with Gobi, with Wallet Connect,
is Wallet Connect is very finicky about the subdomains, of course, as it should be.
So it was very, we actually had to
fight Wallet Connect to be able to make it work across all the pages, which, you know, because
that's kind of going against what it wanted to do. But we were able to store that authentication
cookie in like a local storage and then access it from the different subdomains. Because as long as
the root domain lets the subdomains access it and vice versa, it's fine.
But, you know, you have to kind of opt into all of that stuff.
So, anyway.
So if it's connected,
then you'd have to worry about cross-state scripting
because they could have like a malicious pop-up
for a wallet connection request
and they would think it's legitimately from GoForMe.
Right. Yeah. So that's the kind of stuff I definitely worry about. I don't want to,
you know, like theming. That's why I say I definitely want to start with simple stuff
like theming where like, you know, there's different NFTs to choose from. And by just
by you purchasing it and putting it at your go for me address
now your page is purple you know because you bought the purple theme or whatever stuff like
that would be pretty cool um but yeah as far as full html control that's where it gets scary you
have to have some sort of manual interaction otherwise someone could just send you an NFT and re-theme your website.
Well, yeah, that's interesting.
What I would love to do is let people, of course,
like, I mean, ultimately mint their own theme NFT,
kind of like what Steve is trying to figure out how to do.
I would love for you to be able to either, you know,
here's like some standard ones you can just purchase and just get going, or if
you know how, it's all
you know, open source, or
at least a protocol type of sorts, so you
can, as long as you do it in this schema, then
put it at your
address. We'll read it, and it'll show you.
I wonder if we could actually
set it up where GoForMe can use the
same schema as the Sage themes, and then you can
use the same themes for both. themes and then you can use this
same themes for both that would be pretty cool i don't see why not because that yeah it's i assume it's like a background type image or at least a an svg of some sort that i can use
similar because yeah it's all just it's all just react and we're all just doing react at the end
of the day right yeah like, it has a background image,
inherits from light or dark,
and then there's, like, background color,
secondary color, secondary foreground color,
and font style, and button,
like, background color, border, and all that.
That would be pretty cool if we could,
like, even just as a, like,
I could see, like, Mintgarden getting in on that.
We should all, as a community, standardize on the sage themes.
If you own that theme, you own it everywhere.
That would be pretty cool.
We need community chips.
Oh, that's what chips are for.
Sea chips. I mean, you could just make an informational chip for something like this Well, that's what chips are for. C-chips.
I mean, you could just make an informational chip
for something like this and get it through the process
pretty easily, I think.
Yeah, there isn't really anything that's
SAGE-specific in these themes.
It's just for various different kinds of UI elements,
what colors and borders you want.
But I guess the
The main question would be like, if you
wanted to get the profits for the
Go4Me themes, then I wanted
go for me themes and i wanted to get the ones with the things how that worked but
to get the ones for the page themes. How would that work?
so i'm using ai to build some of these uh themes and like i gave it the template that i downloaded
off the sage site and um well the t sx file or whatever the heck it is,
and I told it to use that as a template is what I should say.
But I do end up, it ends up adding some things,
like it added a new section called mascot because I wanted it to use,
like, an emoji as part of the name, and it's made that into a mascot,
and I'm like, I don't, the mascot's not going to do anything.
But, you know, it's got several things like that where it's added stuff in.
And I'm like, okay.
I actually made the alien theme with, I made the image with chat GPT and then I used one
of the existing themes and copied it over and then had Claude like generate the alien
equivalent of it.
So I had it completely generated by AI,
and I think it worked pretty well.
I had to tweak it a bit,
and it kept adding properties that didn't exist,
like you're talking about,
but after enough tweaking and manual intervention,
I think I got it to do it correctly.
I've seen you guys have committed a new one
that I haven't been able
to see what it looks like yet oh you know what i could go download that and use my own theme
viewer probably right but it's called circuit or something like that i saw that i got that one um
yeah it's not perfect there's i think that one could be improved personally but it's uh pretty
cool yeah i'm gonna check it out right now.
I'm stunned about how much there is to play around
with here.
When I think
of themes, I would initially just think
changing the background color slightly or something
like that, but there's so much you can do.
Yeah, just so you know, Changing the background color slightly or something like that, but there's so much you can do Yeah
Just so you know, I'm not trying to make money off this I'll give them all to you to make money off of if you want them
I'm just put that out there. No, I wanted to split them with you
I also think it'd be cool if the team gang did some too. what if every gopher meeting was its own thing
you could pull elements from within i i know we've talked about this before but
the prompt that josh has for that it must be freaking amazing
It does such a great job, but make you could write something that pulls from
From there I'm sure from the image
Yeah, you can tell it like here's a go from me picture generate a theme based on its colors and so I
Don't know how Rel it would be. Maybe it would generate some
badly formatted JSON sometimes.
Yeah, I'd have to play with that. I'm not sure how that would work, actually.
I wonder if you could take
one of the really fun things is the um frame
around the gophers because it's it's unique every time but it's like very ornate you know
very detailed so to take that the frame from the gopher and like put that around the edges of the screen or something
somehow. Wait, the frame isn't like there aren't a set of frames that are used for all of them?
No, the frame is unique for everyone too. Oh, I didn't know that. Yeah. They look so
well done that I thought it was just copy-pasted. No.
No, yeah, if you look through them, in fact, some of them have even square.
The frame will take up the entire square, even though it's still round in the middle.
It's crazy.
There's one of the Chia Friends ones where it makes the K32 as part of the frame itself, like at the bottom, like a, like a keystone almost for the, for the, for the mirror or whatever the frame around it.
It's pretty neat looking.
That's cool.
Oh, so it's actually part of the generated image. Is that why some of them have different
size circles? Yeah, well, the circles,
size circles?
I tried to make it so that if you did want to put it like as
your Twitter or your XPFP,
the circle you could get the entire,
you could actually make it so the circle contains the frame itself,
or you could go within the frame and just get the the picture itself but either way that
should be about the same size but I do ask part of the prompt is to create the frame around the
the circle in the middle so every one of those is unique yeah because I see like it's clearly not
just you generate the frame and then you stick the image on top, because there's some where the gopher is actually overlapping the frame of it.
Exactly, which is also part of the prompt.
So yeah, part of the prompt is literally try to make some parts of the image almost like they're coming out of the frame, and so they overlap the frame that they generate.
Yeah, it's crazy.
Yeah, you put a lot of thought into that.
And people say AI art isn't real art.
Everything is real art if you try hard enough.
Yeah, a lot of these look really cool, like, with the way they're, like, hanging over the
edge like you would in a car.
It gives it kind of a 3D, almost like it's coming out of the frame, so to speak.
And they're not, like, not all of them do.
Some of them don't, some of them do some of them don't some of them do it's
it's very strange i mean
but yeah it's incredible how well it does with like like it's it's so hard to describe like i
would never have come up with some of these designs that it comes up with, but it still matches the general vibe of what I'm going for.
Like, it's crazy.
What I want to know is, did you tell it anywhere to do
or do not generate multiple gophers?
Because I see some, there's like a second one added
for no particular reason.
Like the original image doesn't have two, but the gopher has like two side by side.
Like my profile picture is one duck, and yet my gopher me has two gophers on it.
Yes, so I think what's happening there is part of the prompt is to,
I try to identify like the main character in the PFP image
right like whether it's a human or a cat or whatever it is there's obviously something
usually there's a main character right if there's a character at all it might just be a logo or
right it might just be the blank the blank PF picture. It might be something silly like that.
But if the AI can identify a main character, then it tries to replace that or at least use that as its basis for a gopher character.
If it can't identify a main character at all, then I tell it just like add a gopher right like just try to try to put a gopher i the prompt literally like if you
can't find a main character then add a gopher in the same general style of the photo or the image
itself so what i think is happening in that case is it's kind of it's kind of mixing both it's
saying like it finds a main character but then it also gets to the prompt where it says add another
add a gopher and my guess is it sometimes confuses itself in that case because yeah i've noticed that too it's like sometimes there'll be
two gophers for some reason as if it couldn't identify the main character so it added one
but it still gophers the main character that i found too so it's i haven't quite figured out the
magic incantation to get that to go away.
You know if it's like a stable diffusion type model where it's like trying to refine the image repeatedly
until it reaches the final result?
It's a different, I don't think it's diffusion based.
GPT image one, it's OpenAI's model.
It's something else.
I forget that there's a name for it,
but I forget at the moment.
But I want to say it's like instead of like the you imagine diffusion is like starting very pixelated and then getting clearer and clearer as it goes through its steps.
Whereas this one is more like tile based where it's like setting up.
It's like looking at a bunch of different pieces of the image individually and then coming up with a thing.
But I don't really understand most of it at that level anyway.
So it's not quite diffusion, it's something, it's a newer, it's also multimodal.
So it's kind of like what Elon's been talking about recently where it's like pixels in, out is like the ultimate solution like we shouldn't even be talking about like language models the the computer should think in pixels if
it can do that then it can actually generate an entire odds well it can generate what looks like
an entire operating system just based on the pixels that it has seen other operating systems look like
um stuff like that.
At the end of the day, it's kind of the same technology either way or way.
It's just tokens.
It's all pattern-based recognition with tokens at the end of the day.
What are your tokens actually?
Are your tokens text?
Are they token's text? Are they pixels? Are they audio sound bites? What are they?
Are they pixels?
Are they audio sound bites?
What are they?
It almost looks like with mine, it saw the duck on the top half and recognized that it was a duck.
But on the bottom, because it's transparent and it can kind of see through to the background, it was like, I don't know what this is.
We'll need a gopher.
Yeah, it could be.
And then the sunglasses are like hanging on top of its head instead of attached to its eyes.
Well, so that's the other weird part about the prompt is I specifically say that I, you know, because one of the reasons, one of the things, you know, it's one of the ways, you know, it's a gopher is the buck teeth, right?
Like the big two teeth, like that's like common, like cartoon gopher is it's got two big teeth.
cartoon gopher is. It's got two big teeth. So I mentioned that. It's a gopher. It needs to have
prominent teeth and then the big eyes. And so I think it takes that so literally because sometimes
you'll see, like you said, that sunglasses will actually be behind the eyes. It's like, okay,
the guy really wants me to show the eyes and the big teeth. Or the gopher, the PFP, the person will have a mask,
like a COVID mask on their PFP.
And then the gopher will have the mask,
but his teeth will be showing through the mask.
Because it's like, it really wants me to show the teeth.
That makes me think of those COVID pictures
when people were playing orchestra music through their mask.
You know, they had to, like, the clarinet poked up to the flute guy.
Yeah, yeah, yeah.
Or, like, you'd see them in restaurants and then, like, the mask would have, like, an opening for their mouth.
It's like, what?
I guess they're technically wearing it.
Yeah, exactly.
That's the rule.
Did say it had to be a focus.
The other thing it doesn't quite get right that I'm still trying to play with is transparency.
So in dark mode, if you notice, on a few of them, like the eyes obviously should, like, you know know the whites of their eyes should be white
but because of the way that i do transparencies in dark mode it's like a dark it's because it's
showing through the background of of their eyes are actually transparent not white so it's showing
the dark mode through their eyes and now they look like they're this demonic looking gopher with black eyes um oh so i it's putting transparency in the wrong place i obviously i want transparency
around the frame but not not there should be no transparency inside the frame whatsoever right
so that's why my gopher has black teeth on your website. It's because it's just transparent teeth.
So yours might be that problem.
So, yeah, the teeth.
So for whatever reason, it thinks that the white transparency around the frame should also be applied to that same color within the picture, which happens to be the teeth.
And it's not like that on all of them and usually it's really smart about transparency but for some reason on some of them it will make that same color around the frame be transparent inside the
frame and you end up with dark black eyes and black teeth if you're in dark mode um so yeah
that's the other little bug i'm trying to play with the trick is I don't want to, like, these prompts are literally like
incantations of magic. So if you change them too much, then you start getting output that doesn't
look anything like all the other gophers in the series. So I have to be careful when I change
these prompts. And I usually run them, like, if I change it at all, the last change I made was for the transparency to try to fix the transparency.
I don't think I've nailed it, but I think I got better than what it was.
But I'll run it through like 20 or 30 existing people's gophers, like especially popular ones, and just see how close it gets to those.
And if it starts getting too far off,
then I know I've modified the prompt too far.
But yeah, it's just so weird how these prompts work.
Like, it's almost like hashes.
Like, if you change just a few words,
it throws the whole results off of the prompt.
Yeah, it's weird.
I have a few of the Gophers have a transparent background,
and then a lot of them don't.
Like, my Gophers background is entirely transparent.
Oh, inside the frame even?
Yeah, see, that's what I'm trying to do.
So the other thing I could do, I could do another post-processing on it.
So what I normally do right now is I take your PFP from Twitter, which even though
it looks round in your, you know, when you're looking on your X profile, they're just masking
it with CSS.
So, so I actually take your, your square profile picture that you uploaded and I mask it with
CSS and take a screenshot of that.
So now I have white around your circle picture,
just like it looks like on Twitter.
And then I send that to GPT and say, OK, put a frame around this area.
So it knows the circle that it's working with.
So that's why it works really well with the frame,
because I tell it put a frame around that circle that you're seeing.
Make the image a gopher, you know, all that fun stuff.
But what I need to do, I also tell it to make the frame or make the area outside the frame
transparent.
That way, you know, it's a transparency because it's not putting PNGs and so that all works.
The problem is it's being, it's adding too much transparency because it's doing it inside
the frame.
So I just need another post-processing bit at the end where I take what it's given me and I overlay that with a white circle that would go perfectly behind the PFP, but not around the frame.
And then I snapshot that, and then I should be much better off.
So for rigidities, it's like it's the white inside of the frame that's becoming transparent.
Because the background is white and the teeth are white, and those are both black on his.
But his also has an interesting, has a green ring around it, which is on his PFP that you can see now in the room.
And it pulled that in as well.
That's kind of neat.
Yep. I've seen it do all kinds
of weird stuff like that it's and that's the cool part is it's unique almost every time so you can't
guarantee that just because just because there is a green ring that there will be one but sometimes
there is also I saw the marmot was a marmot with hat I think or marmot with some marmot with fish
I think there's so many of those Marmot with accounts now.
One of them was the first I'd ever seen of a colored background.
So for some reason, instead of making the area around the frame transparent like I wanted to,
it actually colored it in with an orangish color that was the same color as the PFP itself.
And it looks pretty cool i mean it's a totally unique and very rare because every other pfp does not have colors around does not have a
color around the frame it's all transparent but this one for some reason did so i don't know i
don't know how to explain it foods has got a uh his his framing is squared with a circle in the middle
so there's some obviously
and I definitely tell it to make it round
so there are some frames that are
squarish and are completely squared
oh bullish crypto has a square frame
as well that's pretty cool
did y'all see there's someone with an actual
chia friend time lord that
made one recently?
I don't know. I didn't see that one.
Yeah, I think it's 1024 is the guy's name, or I don't know if it's guy or girl, but the account's name, I think.
Here, I bought one. I'll find it real quick.
I like how the Fancy Fauna one actually has the exact same background as the Fancy Fauna.
Yeah, the backgrounds are crazy, especially like photographs and stuff.
It'll do so well on those.
The other thing is the text.
It's so good.
Like, you know, people will wear a hat that has like several words on it,
several words on it and it'll put that hat with those exact words on the gopher i mean it's just
and it'll put that hat with those exact words on the gopher.
I mean, it's just amazing.
amazing yeah so that account is 1024wq 1024wq and it's it looks pretty cool actually oh yeah i see it
yeah it's got a little stand and everything how did you how did you find it so quick
oh i just went to go for me and then
searched at the top. Is there a search box? Oh, yeah, there is. Shit, I've never even noticed that.
Yeah, buddy. And I think what you just said, I think I need to move it. I need to move it down
on top of the grid where it's closer to where you were looking naturally and actually not move it.
I want to leave the search bar up there,
but kind of like when you go to SpaceScan or MintGarden,
there's a search bar at the top,
and as you type, it drops down matches in that area.
I think that would be smarter up there,
but then down on the actual views in the grids,
there could be another search bar right there
that filters those views for you because I think it makes more sense closer to the grid um right now the top bar
actually filters everything you see it down below it on the grid as well um and all the different
views so anyway i'm going to play with some of that but but yeah okay this is cool i got a square
This is cool.
I got a square frame and a green ring on the OXBasic account.
That's pretty cool.
And it did good because it's just the OXBasic.
There's no real image to translate, but it gave it a gopher.
Yeah, and it's even got, it looks like, is it the, yeah, the shirt color is kind of.
The shirt color matches the text, yeah.
Yeah, yeah.
And there's got the, it's like, it's also got a green ring around the back.
Yeah, the one that blew me away, like I said, the NotBot account,
It blew me away. Like I said, the NotBot account, I did curate and I added the sticker with the phone by just doing some AI prompting on that one.
But the logo on the t-shirt, it came up with that all by itself. I thought that was brilliant.
Because all I had to work with was the NotBot logo.
So it created a gopher with the NotBot logo on the T-shirt as its own thing at first.
And then I prompted it to add the NotBot phone with a sticker.
But yeah, I thought that was really cool.
I'm super impressed on all the text.
It puts every username in there.
I mean, I think you said the other
night there are a few that are that have little quirks to them but every damn one I look at is
spot on yep yeah for the most part they're great I've seen like I said I actually had someone the
other day I think it was yesterday or day before who said that theirs was wrong and I regenerated
it for him and it was just perfect
for the second time. So that's the other thing I could do is I could actually add another post
processing step that looks at the generated image and does text recognition and says, and then I
could compare what it says the text recognition is to the actual username just as another sanity
check and then regenerate it if it's not the same. So there's a few that's the fun thing about this is like you're working
with something that's deterministic versus non-deterministic, but you still have ways to
kind of say, okay, well, that's not quite what I want to regenerate that just like a human would,
right? Like, so it's, it's pretty neat. So I have seen this a couple times where i'm looking at one lane bomb in 21
and you can tell it was it was created from a chia friend which is probably why i bought it
it's got like a k32 on the bottom it's the one i was talking about where it kind of looks like a
keystone and it's got a coin with a heart coin above the gopher but if you mouse over it now
and it flips to their real profile image,
they've changed their profile image to something totally different and not...
Well, I don't know.
They may have a new PFP out there, but I don't have that one, I guess.
Which one is it?
The username is lane111 underscore.
Oh, yeah. Okay.
Oh, it looks like he's got like a USA hat on or something.
Yeah, right.
But I have number nine of that, and it's got like a – I mean, I'm positive it was built off a Chia Friend because it's got a K32 and a coin above the head.
Oh, you know what?
Yeah, okay.
Let me look at other owners here, and then I see you, and then I can find him on this page.
Oh, there we go.
Yep, I see what you're saying.
So, yeah, so this was a bug where,
not necessarily a bug,
well, I guess it was a bug back then.
It's not now.
But yes, if in this case you can see, when you don't
mouse over, you can see in the upper left
it was a K32, because the upper left
shows you the
original PFP. And it's
tiny, but you can see it.
But when you flip to his
PFP, it's showing you his
PFP, I believe.
So, yeah. It's not showing you what his PFP was back then.
That's actually interesting.
To fix that, I would have to keep track of the PFP over time.
Yeah, I'm not suggesting you need to do that.
No, no, no, that's interesting, though.
I didn't even think about this, actually, because, yeah, we do have people that change PFPs.
Like, let me look up, like...
I know Monkey Zoo is...
Not Monkey Zoo, Monkey Mondo.
Let me look up.
So, yeah, Monkey Mondo.
But his is different now.
So, I think the Mini Marmots has been changing theirs like once a week or something.
Where is monkey mondo on this?
Sorry, I'm just looking.
Yeah, that's an interesting, because I'm definitely pulling your current Twitter or XPFP when I'm doing the flip around thing versus whatever it was when that one was generated.
So that is an interesting, I wonder if I could do that. I'm already keeping
track of aliases now as people change their usernames. Yeah, because I had to figure that
out the hard way. But are you saying each of these flips is pulling real time or you
have to be? No. Okay. So in my database, I'm storing your current PFP, right? Or whenever I generate your Gopher, I store your Twitter PFP as of that moment and your new Gopher image basically in the same directory in IPFS.
So those two are kind of linked as of that moment.
moment. And then when you're looking at this page, you're looking at your current image
versus your current PFP. But if you're looking at old ones that you've collected before someone's
changed their PFP, obviously the NFT image doesn't change. So you're still going to see their old one
in the NFT image. But when it flips, it's going to show the current twitter pfp
just because that's what's in my database but if i was able to keep track of like a version history
yeah yeah i would almost have to keep track of the version histories yeah that'd be tricky
and i certainly could only do it like going forward. I don't think I could go backwards because I don't have your old PFPs.
That's the other thing.
Whenever I regenerate your PFP, I'm basically overriding your last one, even though the NFTs that were generated from your old ones will always look the same, of course.
I don't really keep the template that I use for those.
I just override it with the newest one.
So I don't really even have the older ones.
Anyway, I'll have to think about that.
That's interesting.
I mean, at least it's showing in the upper left
of the NFT itself, but it's really small.
but it's really small.
I have one where somebody,
their PFP is Kiwi,
that In Memoriam whatever one.
Yeah, I bought one of those just because
it was that PFP.
Yeah, that one turned out really cool.
I saw that one too.
Yeah, there's a bunch of really good ones.
So this is fun.
Yeah, my wife and I would just scroll through them the other night.
We were just laughing at some of them.
Because even the ones that are like obvious
ai mistakes like extra fingers or extra you know hands or whatever they're just hilarious i think
hers did really good too i'm just by chance i was looking at hers right when you said that
and it matched her shirt it shows her like you can tell she's laying maybe on the beach or
something but you can see her see her feet out behind her.
Yeah, it did really good.
Yeah, it's impressive.
Only she's got whiskers.
Well, yeah.
I tell her to shave regularly, so it's fine.
it even gopherized Tim like his Tim Youngman account him as a gopher and left his dog as a
dog pretty funny but that's the other kind of tricky thing is um people have you know like a dog or
some people i've seen like a lion or like people have other animals as their pfp and you know it's
it's you can gopherize a human like we see that and it seems to make sense because you're like
kind of you know humanizing the creature or whatever but it's hard to gopherize a lion
without just turning it into a gopher like how do you make a gopher lion right like yeah it's just
got to be a gopher now like there's no you just got to do that now it can have like a mane or
something around it and that's kind of cool but but yeah animals are tricky because it's just it's
like okay well i don't know how to make a half gopher, half whale. So I'm just going to make it a gopher.
I think I had that one that's a lion, right?
I think one of them is really good.
Yeah, I've seen like it's got a real big like mane around its face.
Maybe I don't.
I don't see it at the moment unless I'm just missing it.
I'm almost to 100 now.
I like to...
Somebody was saying
that you should get rid of the...
Simplify it and get rid of the rare view.
And I'm like, what are you talking about?
That's where I buy all mine from
is I go to the rarest
because they're the newest ones and I can find, you know, new stuff.
Yeah, there's some good stuff in there.
Oh, that's that's a wild looking one.
I got a few more to buy tomorrow, I think.
Yeah, I definitely want to, I find myself watching Dexy to see new ones come in when I really, that really should be something that the website's good at too.
So I want to add that feature so you can actually see new offers pop up in real time on the website,
and you don't have to go watch Dexy for that.
You know, you made me think of this.
You've mentioned the queue quite a few times,
and every time I click on queue, it's always empty,
but I don't think it's really empty.
Let me look right now.
Usually, earlier today, it was really busy. Yeah, I don't see anything in it right now.
Okay, but maybe I just had been lucky to look when it's not got anything going on at the moment.
Yeah, earlier today it got up to over an hour long.
And so what's happening is that's when the offers are expiring usually from the previous day.
Because I have the thing where they expire and then they get regenerated.
So yeah, when they're expiring,
they expire at about the same rate as I generate them,
of course, because I generate them and then they expire days later.
So I'm generating them once per minute is as fast as I'll go.
So they'll also expire once per minute days later.
As they expire, I'm regenerating them.
Then if people, because they're getting regenerated,
they're getting re-rolled with the rarity badges,
and so people are also buying them while they're getting regenerated.
That extends the queue even further at that point.
The queue gets in this little thrashing mode
where it'll start regenerating a bunch of expired offers,
which causes people to start buying more of them,
which causes more queue.
And so on and round and round we go
until finally somebody decides to stop buying them
and then it calms down.
But what I'm trying to do is time the expiration
so that there's almost always something going on.
I think ideally there would always be new offers being dropped like every few minutes like on average over time.
So to do that, you have to think about like, okay, I want to do like one a minute at most.
I want to do one a minute at most.
Well, there's 1,440 minutes in a day,
and I've got almost that many unique gophers.
So theoretically, right now,
I could almost fill a full day
just in expiring offers and regenerating them.
So that means that really I need to make them expire
probably at least two to three days from now rather than one day so that there's some time between.
And then, of course, as more people join, I need to change that timing, too.
So I'm trying to make this a little bit more dynamic so that it responds to basically the market, even down to how long offers expire.
So I don't have to just keep watching the queue.
Yeah, right.
But we'll see.
There's quite a few of them that are sexy poses too, which is funny.
Yeah, there's a few OnlyFans account type people who found it, I guess,
a while back and they were all joining for a minute.
This one is like the butt is prominent.
There's one with some huge...
Yeah, I got that one.
I don't know how I feel about this.
This feels strange.
Yeah, I look at it every day, Josh.
Yeah, I know.
That's fine.
What you go for in your own home is none of my business.
Oh, that's an interesting one. You say there's hundreds of unique ones now?
Did you give a ballpark, I think?
Over 1,000. I think maybe even close to 1,100 now.
And I'm not even counting all of the
bots that i ban so probably probably 2000 if you counted all of those um but yeah yeah definitely
over a thousand now and unique gophers to collect how are you doing bot recognition is it just
ones that you have personally figured out that they're bots and you ban them?
It's real easy now.
I started out trying to do all kinds of complex stuff,
looking at number of followers or account age,
because I can see all that stuff based on the profile.
But what worked the best so far is just blue checks.
You only get an automatic gopher if
you're a blue check um otherwise you go into a queue and i do look at that several times a day
and just kind of go look at the profile and and yeah probably i would say 80 i just don't even i
don't approve because they're just like airdrop bots or you can tell like the whole profile is
full of like airdrop claims of this or that or whatever so there's they're not real accounts
there's somebody's airdrop accounts that they're claiming so yeah I mean it's not
with some other cryptocurrency and had nothing related to you at all exactly and you know I'm
fine with that like I'm I want to onboard so if if you're, like, if I see Solana all over your wall and then I see this one thing, but I can still think that you're a person, then absolutely.
You know, I'm totally cool with that.
But, yeah, most of the time these are just, like, that's all.
I will scroll through the, like, a few pages, like, a few, like, scrolls down of the main profile page,
and if I see nothing but airdrop posts,
then I'm out.
I want to see at least one,
even reply as if you're a human
to one of the airdrop posts.
Right, yeah.
Something.
Give me something to make me feel like
I'm not just giving away a gopher
to a bot at this point.
But anyway, no, I'm pretty careful about that nowadays.
There were a lot of early bots.
You'll still see them throughout the collection that are definitely airdrop bots that did get through earlier.
Obviously, I don't have a way to yank those out of everybody's
wallets or anything and I wouldn't want to but
but for the most part we're
not letting any new ones in for sure
I just found one that I'm
going to have to buy and not
it's the only one I've seen so far
that's built off a trash former
oh I saw I think I know
the one you're talking about yeah it was really good too it's got a self-destruct button on it yeah and luckily I have some gams
there you go is that's what it's gonna cost me yeah there was another one that
was like that that Alpha Mechbear.
Look up Alpha Mechbear.
It's one of the Tangang accounts.
I think that was really cool.
Oh, that one is cool.
Man, it's got the coloring on its helmet.
Just perfect.
Yeah. It actually kind of looks better than the original.
Yeah, that one is good.
Well, that's the thing.
I don't know if everybody realizes that.
If you click on it and then you click on the PFP when you're on the user page up at the top,
you get a full quality high resolution of that PFP without the badges or anything around it.
And it's like really high quality.
I mean, this is the format that it spits out from GPT.
And it's really nice.
I mean, using these for templates or anything.
Yeah, I did not know
it did that. So let's see.
It's 1024, about
transparent.
It doesn't look transparent on the page,
but if you copy it out and paste it into
an image editor, it's transparent.
That's why I say if I need to do that last
image transformation thing on the end where I,
where I basically take the output of OpenAI,
which may have transparencies inside the frame
that I don't want.
And I overlay that over a white circle that would go perfectly behind the
frame, but not around the frame.
So I'm basically negating,
I'm basically showing through a white where the,
where it might have put transparencies,
even though it shouldn't have,
there will be white coming through that transparency.
And then I'll take a snapshot of that.
I think that would make of that. Yeah.
I think that would make more sense, maybe.
This one, their character is like a black and white anime type of Asian person, but with a colored tattoo on his neck,
but with a colored tattoo on his neck.
And the go for me turned that into a separate yellow bunny rabbit behind the person.
Which one is it?
Rosa Markle 771.
M-A-R-A-L.
You already found it?
You're fast.
Yeah, it's a fast search, man.
By the way, that's hard to get right because, oh, yeah, you notice it's number.
That one that you just mentioned is number 1098.
So we're probably close to or probably have hit 1100 then.
I need to check, I guess.
How could you tell us 1098?
Do you see that somewhere?
Well, at the upper left, so I'm just searching
and I'm on total edition sold tab
and I just searched for ROSA, R-O-S-A.
And so it's gonna filter.
Oh, I see.
Whatever view you're looking at,
it's just gonna filter whatever view you're looking at. It's just going to filter by whatever you're typing.
So it's showing you that 1098,
it's number 1098 of total edition sold.
And you're just filtering by that.
But yeah, that is cool.
It has a little bunny rabbit.
That's funny.
Anyway, the search, yeah.
So the problem, if you don't have any search,
it's just going to list everything.
And as you scroll down and get to the bottom of the page,
it automatically loads more and that just keeps going.
So that's called infinite scroll in the web world, of course.
You just keep scrolling forever,
kind of like on Twitter or any other social media site.
That's easy enough to implement,
especially with ChatGPT nowadays.
But searching is normally,
what you would normally do is do client-side searching
where it just searches what you've seen so far.
So in this case, that wouldn't work
because we haven't loaded the whole collection yet.
We've only loaded enough of the collection
that you've looked at so that we don't overload the server.
But if you're searching, we actually need to search for the whole collection even though
you haven't loaded the whole collection yet.
So that's all, it's server-side search.
So when you start typing, we search the server side and then we just return those results.
But yeah, all of that is fun stuff to get figured out and actually make efficient, you know, with even just a few thousand records at this point.
It's still nice and fast, which is good.
But it turns out to be kind of an interesting problem
with paging and infinite scrolling and searching.
scrolling and searching is all of a, it doesn't all fit together nicely sometimes.
It doesn't all fit together nicely sometimes.
I think I found one of the first, like, pretty good errors,
where this one appears to have, well, it's got two hands
and what appears to be three arms,
but, like, one hand is outside the mirror holding on to the sign,
but they're both on the left side of the marmot, like there's another is outside the mirror holding onto the sign, but they're both on
the left side of the marmot.
Like there's another arm on the right side.
Which one is it?
I can't pronounce it.
N-U-R-D-I-A-N, 318-526.
oh yep oh yeah that is funny there's another one kind of like that where
That is funny.
because you know part of the prompt is you know that he's holding a sign so even if
in the pfp he's not holding a sign it's trying to make him hold a sign that has his name on it
yeah um there's another one that is really funny where it's like she's laying on a beach and it looks like
there's somebody else outside
of the frame holding the sign for her.
Because it looks like, because
her two hands are obviously on her
in the picture, but then there's another third hand
that's like reaching in from out of frame
and holding the sign.
That's almost like one of those movie slate thing
kind of thing. Yeah, exactly. That's almost like one of those movie slate thing kind of thing. Yeah, exactly.
That's funny.
Holy crap, it's 1130.
I need to send out the airdrop pretty soon.
I think I'm going to get out of here, too, probably.
Are you still there, Rigidity?
He is awake.
Oh, here's that lion one you're talking about.
It does look pretty good.
What's the name on that one?
Well, the one I see is called Well Grace 34377.
It's like a dark colored line.
That might not have been the one you meant, but that one does look pretty good.
I think that is the one I saw.
Yeah, that's pretty cool.
Yeah, so, I mean, obviously the face is a gopher,
but then at least it put the mane around the head.
That's pretty cool.
Yeah, I can't buy them all, Josh, so I have to be selective.
I understand.
That's a good one, though.
I might have to see if I already have that one.
I think I've told you this the other night,
but I find myself in Sage like mousing over them
and expect them to flip.
And they're not flipping, damn it.
Yeah, don't.
Yeah, not until Rigidity lets me do full little web apps in Sage in a sandbox
where I can make the NFT just an HTML app of some sort
with its own CSS and everything, JavaScript.
That'll be quite a wise outlet.
Speaking of wallet connect issue or different domains, right?
Yeah, let's just give access to the wallet.
Well, yeah, because if you have a cross-site scripting ability in Sage,
then it could access every single endpoint,
which includes just get your private keys.
Yeah, and there isn't even a confirmation for that, too.
I think Aceville does do some interesting things with that.
I think if you do a certain format or something, it'll actually show the HTML or something.
Does that ring a bell?
Am I crazy?
I want to say CAS or somebody was experimenting with that, where basically the NFT is like a little HTML snippet itself.
But the NFT, according to the standard, the NFT is just an image at a data URI.
But within the metadata, the metadata itself describes a web page with HTML and everything.
So if the viewer, which in this case is MnGarden, knows about that special metadata, then it
can display the HTML instead of the data URI image.
And now you've got a little web app thing, like a countdown timer or something like that,
stuff like that. Stuff like that.
So I'm sure it's still sandboxed and everything, and it may not
even allow certain things.
I wanted at some point
I remember talking about SVGs.
Because you could actually embed
JavaScript and all kinds of crazy stuff
inside an SVG
viewer supports it, right?
So that would be fun.
The data file itself could be an HTML file, right?
Yeah, but you have to sandbox it and make sure it can't access the wallet keys and stuff.
How is DRAC doing Tank Talk?
I never really thought about it.
I just always kind of figured it was a web page.
Well, I think TankTalk itself is a website,
so it's easy to embed it.
I know I can stick stuff into an iframe and see it's just fine.
The problem is if I need to inject something
to give it access to the wallet, that doesn't work. There's some tarry permission issue
where it prevents you from modifying the iframe's contents. And the alternative would be to use a web view, but that has security issues and isn't
supported on mobile devices, I don't think.
Yeah, Apple starts getting pretty nervous when you're, I mean, anybody does when you
start injecting HTML into stuff.
Especially, and you should be worried, especially wallets. I mean, that's, yeah.
I'm kind of playing around with the idea of having a JSON schema format where you could
describe, like, I want a button here, like a, you could just, like, nest different components
into each other. And then instead of JavaScript, you could use, different components into each other, and then instead of
JavaScript, you could use...
Or maybe it is JavaScript, but it'd be
running instead of a sandbox instead of the browser.
So instead of writing
plain HTML, JavaScript,
and CSS, you would use
pre-made UI elements that are
all consistent with the themes,
and then some sort of scripting language
to write the actual content of the plugin.
I think you're doing the XKCD meme,
where they're like,
has 14 standards.
How can there be 14 standards?
We'll make a new standard that will fix all of these.
Yeah, well...
Hmm. I don't know if... make a new standard that will fix all of these. Yeah, well.
I don't know.
We'll make a new UI that can only be described
in abstract language.
You'd end up reinventing
Yeah, exactly.
But worse,
probably, like, of course,
because HTML has evolved over 30 years now
with a symbiotic relationship with horrible humans
that abuse it daily.
So I'd probably never make something better than that.
I imagine most things are a lot simpler, though,
that you would use a plugin for.
You just need a way to select tokens and click buttons and stuff.
Like, can't be that complicated.
Famous last words.
I don't know.
I just worry about allowing people to insert any content they want.
That is for sure.
Especially with an NFT that can't be curated.
Yeah, I liked the...
I remember we were talking, I don't know,
it seems like years ago now, probably is.
But remember my Chaps idea, chaps?
And the idea, yeah, so it was like a sandbox.
It was similar to what it did in the application.
It did in the application.
It would ship a few, kind of like Windows and macOS ship with like a few trusted SSL certificates and then you add from there.
It would ship with like a few community trusted DIDs maybe.
But then anything else you actually had to add yourself, like opt in, and then you could run stuff from that did um that way you wouldn't
just like download stuff from anybody and run it in your whatever this framework was uh but still
i mean it at the end of the day you're just trying to add enough friction in between the user and
doing something stupid that that's really your only job as a developer.
It's funny, some things you don't want to make easy.
You want to make them hard so the user has to experience a lot of pain
to get through it because that's the only way for them to prove to you
that they know what they're doing.
Yeah, I love it when you do that
and then the user still manages
to just screw it up.
Because, like,
I told them all the
instructions and they still don't understand exactly what they're doing.
Like, multiple people now have created a wallet and sage copied the address deleted the wallet
and then sent funds to it without backing up the seed phrase i'm like how do you how do you even
make that sequence of steps happen without realizing that you're doing something wrong
that is crazy and it has like multiple warnings
when you do that too it's like
are you sure you want to delete the wallet you will lose
all funds if you do not back up the seed phrase
and you're the dev rigidity
surely you know how to recover it
like come on
surely you put a back door in there or something
that you can, like, just fix this for me.
Yeah, I totally have, like, a secret database
of everyone's seed phrases.
No, unfortunately not.
That's funny.
Man, it's getting late.
Yeah, same here.
I'm going to get back to some gophering.
I'm over here trying to generate images with AI and then pixelate them.
It's not working.
Interesting.
Because my pet peeve is that when I ask
ChatGPT to generate a pixel art image,
it generates things that look like
pixels, but they're not pixels.
But they're like
high resolution and like anti-aliased
It'll be like slightly
curved or off-center
pixels all over the place.
Alright. curved or off-center pixels all over the place. Mm-hmm. All right.
That was a good chat.
I guess I'll call the space there.
Sounds good.
Bye. See ya.