# VARMETA Sponsor Service Implementation
**Summary:**
This sponsor service helps people to make some specific txs to chain, without paying fee. In this sample usecase, you can do a `Mint` transaction, with the help of `adena-wallet`, broadcast tx through `sponsor-node` running a `sponsor-service` into the chain.
This sample includes full of stuffs needed to run a sponsor feature.
## **Components**
- [x] 1. Gno.land
- [x] 2. Adena wallet extension
- [x] 3. tm2-js-client
- [x] 4. back-end sponsor service - go sample
- [x] 5. front-end for dapps - sample
- [x] 6. tx-indexer
- [ ] 7. gno-scan
## Details
1. Gno.land
* Implementation of vm_noop messaage #2630
* Implementation of sponsor transaction #2209
* Demo for package and realm `sponsor-management` #2411
Repo: [linhpn](https://github.com/linhpn99/gno/tree/define-sponsorTx)
---> What we implemented: a management realm for sponsor service, add support for vm_noop message inside tm2 and gno ( for both `old account` and `very newly created account` which does not come with sequence number and account number before making sponsor)
2. Adena wallet extension
* New type of transaction: Sponsor
* Handle logic for sponsor service
Repo: [varmeta](https://github.com/VAR-META-Tech/adena-wallet/tree/new-MsgNoop)
---> What we added: logic for sponsor transaction, handler for main purpose that making signed docs on a sponsor message to feed sponsor service
3. tm2-js-client
* handle logic for noop message
Repo: [varmeta](https://github.com/VAR-META-Tech/tm2-js-client/tree/msg_noop)
---> What we added: sponsor message support / errors handling when account want to make sponsor transaction is `very newly create address / first time address`
4. backend sample
* backend sample, using gno-golang-client, handle request from dapps, sign the transaction with backend's keybase, broadcast sponsor tx to the chain
Repo: [thinhnx](https://github.com/thinhnx-var/sponsor-sv)
5. frontend sample
* using adena wallet as the wallet management, fetch information from sponsor management realms, ask adena for signing docs, and request to backend for broadcasting tx to chain
Hosted at: https://gno-demo-sponsor-service.vercel.app/
Repo: [varmeta](https://gno-demo-sponsor-service.vercel.app/)
6. tx-indexer
* add supports for indexing, querying sponsor transaction
Repo: [varmeta](https://github.com/VAR-META-Tech/tx-indexer/tree/disable-cors)
7. gnoscan
* `WIP`: support for viewing sponsor transaction details
## Tutorial step by step
- Run gnochain (current version @`section 1`)
- Run sponsor service (backend and front-end @`section 4`)
- Build adena wallet extension @`section 2`
- For indexer, user version @`section 6`
- Access to [**`demo-service`**](https://gno-demo-sponsor-service.vercel.app/) which is a online deployment of @`section 5` or localhost:3000 if you run it yourself
## Demo
[link on youtube: video demo](https://youtu.be/4oiogWDxGgU)
## Q&A