Dan Romero pfp
Dan Romero
@dwr
Is it possible to create a smart contract “vault” wallet for NFTs that rejects all other assets except NFTs or assets sent by a specifically allowlisted set of addresses?
12 replies
2 recasts
32 reactions

Steve pfp
Steve
@stevedylandev.eth
I would think no since ownership of anything is designated by the NFT or token contract; it’s literally just a record saying “right now address A owns NFT 1.” However since smart wallets are contract addresses and not EOAs, it could be possible? Interesting idea.
0 reply
0 recast
2 reactions

vrypan |--o--| pfp
vrypan |--o--|
@vrypan.eth
No. Contracts and wallets do not "accept" or "hold" tokens. They are just the key to check a smart contract if I own a token. If the contract or the wallet was your bank account, "sending" you assets is the same as registering in my ledger that your bank account number is owed X. You can't stop me, only ignore me.
2 replies
0 recast
14 reactions

Joe Blau 🎩 pfp
Joe Blau 🎩
@joeblau
Every time you say “wallet” replace it in your mind with the word “keychain.” Your keys give you access to a lock box, like at the post office. You can’t block anyone from sending you junk because the back is always open.
0 reply
0 recast
0 reaction

Corbin Page pfp
Corbin Page
@corbin.eth
A couple suggestions with tradeoffs: * Safe wallet + modules is probably the best “vault” for this. The Module could enable recurring txs to burn assets that aren’t allowlisted. Assumes the assets are transferable and that gas cost is negligible. There’s a bunch of existing modules that can be repurposed for this use case. * Probably better to do this at the indexer layer and only acknowledge allowlisted assets. Other data sources would show all assets ofc though.
0 reply
0 recast
0 reaction

Taylor pfp
Taylor
@skyron.eth
My friend Mitch Travers proposed “accountable wallets” that might have some application here. At a workshop last year we discussed the idea of combatting spam tokens by using the allowlist of the accountable wallet to only allow token transfers from one or more specified wallets that could act like gatekeepers. Here is a link to the paper. https://dl.acm.org/doi/10.1007/978-3-031-69231-4_19
0 reply
0 recast
0 reaction

Gabriel Ayuso pfp
Gabriel Ayuso
@gabrielayuso.eth
The token contract is basically just a key value pair of token owners so no one can stop them from storing whatever they want as the key (any wallet). The "rejection" would have to happen at indexing time. So maybe a smart wallet could have a predicate func that indexers could call to determine whether a token should be indexed for the wallet or not.
0 reply
0 recast
0 reaction

Dean Pierce 👨‍💻🌎🌍 pfp
Dean Pierce 👨‍💻🌎🌍
@deanpierce.eth
Same pattern would work here: https://farcaster.xyz/deanpierce.eth/0x431762f3
0 reply
0 recast
0 reaction

Wild Octopus pfp
Wild Octopus
@wildoctopus.eth
Like an anti-spam for wallet? would be awesome 🤔
0 reply
0 recast
0 reaction

Adam Fuller pfp
Adam Fuller
@azf
you could use IERC721Receiver to apply this kind of check to incoming `safeTranfer`-ed ERC721s, though folks could get around that if they use a regular `transfer` (which doesn't call onERC721Received), and there's no way to stop ERC20s https://docs.openzeppelin.com/contracts/5.x/api/token/erc721#IERC721Receiver
0 reply
0 recast
0 reaction

rphgrc.base.eth ↑ pfp
rphgrc.base.eth ↑
@rphgrc.eth
Or a safe, signature-free batch-burn
0 reply
0 recast
0 reaction

Sable Dima pfp
Sable Dima
@sabledima
Sounds like you’re asking for “intention-based wallets”, aren't you?
0 reply
0 recast
0 reaction