Spells: Functional ERC-721 Tokens for the Loot Universe (and beyond)

Hello Adventurers! I have been working on a project called Spells that I would love to get feedback on from the community.

Spells are an open protocol, a Loot expansion pack. Like Loot, they are generative, text-only, on-chain ERC-721 tokens. Unlike Loot, they are functional! You can cast spells on wallets, contracts, and even other NFTs. Or on nothing at all.


All spells are generated with a kind prefix and a spell suffix, and an incantation unique to the generated name. ex.

Divining Rune 
gurth gil minas nan thalias

Other prefixes and suffixes are added with greater rarity. These attributes have been carefully selected to build in support for a full range of magical abilities. Assigned with the greatest rarity are the 23 Legendary Characters. Ex. Golrag’s Corrupted Banishing Eye of Death


Spells can be cast as simple events or they can target addresses and tokens.

function cast(
    uint256 tokenId,
    address _targetAddress,
    uint256 _targetTokenId
) public { ... }

If the target is a contract that supports the handleSpellCast interface, that contract will also be called before the Cast event is emitted.

What I’m most excited about is the potential for Spells to work as an on-chain cross-contract API for both the Loot ecosystem and NFTs more broadly. I have already built support for Spells into my own project, entropes (https://entropes.xyz) – holders will be able to cast spells on their Entropes to affect their appearance / trigger events.

Look forward to hearing any thoughts and feedback :seedling:

1 Like

This is so cool!

I’m excited to see where this might go.

1 Like