# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.oceanprotocol.com/developers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
