Account Abstraction - minting NFT to an user that doesn't have ETH account yet

TLDR: Is account abstraction already baked in, can I start using it Today?


I know Account Abstraction is the "next big thing"

I know Open Zeppelin is providing audits: https://blog.openzeppelin.com/eip-4337-ethereum-account-abstraction-incremental-audit/

I would like to build a platform allowing people to buy tickets:

  • credit card (via Stripe)
  • PayPal
  • crypto (send ETH to the contract)
  • crypto via Coinbase commerce (accepting BTC and other assets)
  • (later) Venmo
  • (later) WeChat

Basically "open for business", any form of money that is practical.

At some point I would like to issue a NFT as a receipt of purchase allowing access to token-gated community.

I was thinking about minting it as the purchase is processed and storing it in "Account Abstraction", later on sending to the actual address.

If you know, if you can, please be my "personal Google", it's a rapidly developing area, kindly appreciating your advice, thank you :pray:


Some of my frens are using https://lu.ma and https://partiful.com/ but I still believe there is niche for mine. I have some unique, very handy features in mind. The account abstraction thing and Open Zeppelin - would love to know...

2 Likes

token gated solution probably works with zkps as well

Another user case for account abstractions.

I have a list of organisations that generate PVT and NVT - working name - positive value token, negative value token.

Example of PVT: cleaning up beach from trash. No direct business model, but it genuinely adds value.

Example of NVT: open pit coal mining, a company digs a hole, local farmers no longer can access water, they lose their crops. Not illegal (they have permits, licence) but it genuinely causes harm.

Anyone can create a report describing activities of the coal mining company but they do not have wallet assigned yet.

WIP:

    // FUTURE: Account abstraction
    // Currently, anyone can create an organisation to accrue PVT and NVT tokens
    // Then admin can assign wallet to the organisation via face-to-face video call
    // Of course it is a surface of attack, seeking a better way
    function assignPayoutWallet(uint256 organisationIndex, address payoutWallet) public adminOnly {
        organisations[organisationIndex].payoutWallet = payoutWallet;

        // TODO: transfer existing tokens
    }

I'm pretty sure the state of the ecosystem / frameworks / libraries will catchup with it soon.

In the meanwhile, I'm using legacy old-school admin account to assign a wallet.


The use case with ticketing remains valid as well.

You attend some cool event, pay with card, PayPal, whatever... At some point you receive the NFT allowing you token gated access.

This also can be solved using legacy old-school measures - log in to the ticketing system and assign your wallet when you ready.