# Developers

## What can you build with Ocean?

1. **Token-gated dApps & REST APIs**: monetize by making your dApp or its REST API token-gated. [Here's how](https://github.com/oceanprotocol/token-gating-template).
2. **AI dApps**: monetize your AI dApp by token-gating on AI training data, feature vectors, models, or predictions.
3. **Data Markets**: build a decentralized data market. [Here's how](https://github.com/oceanprotocol/market)
4. **Private user profile data**: storing user profile data on your centralized server exposes you to liability. Instead, have it on-chain encrypted by the user's wallet, and just-in-time decrypt for the app. [Video](https://www.youtube.com/watch?v=xTfI8spLq1k\&ab_channel=ParticleNetwork), [slides](https://docs.google.com/presentation/d/1_lkDVUkA0Rx1R7RpkaSeLkX3PeOBoMQyRhvxjwTvd6A/edit?usp=sharing).
5. **Infrastructure for Decentralized Compute**: Run an Ocean Node by monetizing your unused hardware, such as your gaming laptop, old laptops or desktops, GPU servers, & more. You will find more info on this [page](https://docs.oceanprotocol.com/developers/ocean-node)
6. **AI models**: Using the [Ocean VS Code extension](https://docs.oceanprotocol.com/developers/vscode), users can build and run AI algorithms on decentralized compute resources, resulting in a fully trained AI model ready for deployment.

Example live dapps:

* **Data Markets**: [Ocean Market](https://market.oceanprotocol.com).
* **Token-gated dapps**: [Ocean Waves](https://waves.oceanprotocol.com/) for music.
* **Token-gated feeds**: [Ocean Predictoor](https://predictoor.ai) for AI prediction feeds

## How do developers start using Ocean?

* **App level:** [**Use an Ocean Template**](https://oceanprotocol.com/templates).
* **Library level:** [**Use ocean.js**](https://github.com/oceanprotocol/docs/blob/main/developers/ocean.js) is a library built for the key environment of dApp developers: JavaScript. Import it & use it your frontend or NodeJS.
* **Contract level:** [**Call Ocean contracts**](https://docs.oceanprotocol.com/developers/contracts) on Eth mainnet [or other chains](https://docs.oceanprotocol.com/discover/networks).

## Developer Docs Quick-links

* [Architecture](https://docs.oceanprotocol.com/developers/architecture) - blockchain/contracts layer, middleware, dapps
* Earning revenue: [code to get payment](https://docs.oceanprotocol.com/developers/revenue), [fractional $](https://docs.oceanprotocol.com/developers/fractional-ownership), [community $](https://docs.oceanprotocol.com/developers/community-monetization)
* Schemas: [Metadata](https://docs.oceanprotocol.com/developers/metadata), [identifiers/DIDs](https://docs.oceanprotocol.com/developers/identifiers), [identifier objects/DDOs](https://docs.oceanprotocol.com/developers/ddo-specification), [storage](https://docs.oceanprotocol.com/developers/storage), [fine-grained permissions](https://docs.oceanprotocol.com/developers/fg-permissions)
* Components:
  * [Barge](https://docs.oceanprotocol.com/developers/barge) - local chain for testing
  * [Ocean subgraph](https://docs.oceanprotocol.com/developers/old-infrastructure/subgraph) - grabbing event data from the chain
  * [Ocean CLI](https://docs.oceanprotocol.com/developers/ocean-cli) - command-line interface
  * [Compute-to-data](https://docs.oceanprotocol.com/developers/compute-to-data) - practical privacy approach
  * [Aquarius](https://docs.oceanprotocol.com/developers/old-infrastructure/aquarius) - metadata cache
  * [Provider](https://docs.oceanprotocol.com/developers/old-infrastructure/provider) - handshaking for access control
  * [Ocean Nodes](https://docs.oceanprotocol.com/developers/ocean-node) - Decentralized units that turn idle hardware into a global AI compute network for scalable, privacy-preserving tasks.
  * [Ocean VS code extension](https://docs.oceanprotocol.com/developers/vscode) - A developer tool that lets you build, run, and manage AI algorithms on Ocean decentralized compute network directly from VS Code.
* [FAQ](https://docs.oceanprotocol.com/developers/dev-faq)

***

*Next:* [*Architecture*](https://docs.oceanprotocol.com/developers/architecture)
