In our implementation for the project, the primary actors are the User Cookie Management Dashboard, the Dookies Wallet and the Advertiser Management Dashboard.
Account abstraction allowing users to have on-chain interactions, paymaster master, gas-less transactions, and personalised Add using private on-chain or off-chain activity.
The Users can use our Cookie Management Dashboard to generate a cookie based on the Groups they belong to (For example, being a Lend user, or Uniswap contributor). Thanks to Sismo Connect, we are capable to generate a cookie that keeps the User identity private while revealing us his/her interests.
Once generated the cookie, our wallet can check through the Advertiser Dashboard what Adds are more suitable for us, and we can watch that Add to be sponsored and have gas-less transactions. Dookie gets paid by the advertiser in GHO and then, in turn, Dookie sponsors on-chain transactions for the users using the Dookie wallet.
For the first part of the project, our Smart Wallet is done using a Trampoline account abstraction approach based on ERC-4337. The Smart Wallet is by design to display Adds, acting as a Publisher, if the user wants, in order to sponsor the transactions. To know what Add has to display, it checks the cookie "Dookie" that has been generated by our User Cookie Management Dashboard using Sismo Connect. The User can use that Dashboard to generate a cookie selecting the Groups he belongs, and it generated a proof with his Data Vault Id, that after is verified by the backend. That cookie allows the Advertiser to match the best Adds with the Users depending it's preferences. The Advertiser Dashboard allows the Advertisers, using also Sismo Connect, to generate his on-chain Adds and select the target User. Also allows the payment transactions between the Advertiser and the Smart Wallet Staking GHO.