# Opium Protocol V1

{% content-ref url="protocol/core" %}
[core](https://docs.opium.network/for-developers/protocol/core)
{% endcontent-ref %}

{% content-ref url="protocol/registry" %}
[registry](https://docs.opium.network/for-developers/protocol/registry)
{% endcontent-ref %}

{% content-ref url="protocol/tokenminter" %}
[tokenminter](https://docs.opium.network/for-developers/protocol/tokenminter)
{% endcontent-ref %}

{% content-ref url="protocol/token-spender" %}
[token-spender](https://docs.opium.network/for-developers/protocol/token-spender)
{% endcontent-ref %}

{% content-ref url="protocol/syntheticaggregator" %}
[syntheticaggregator](https://docs.opium.network/for-developers/protocol/syntheticaggregator)
{% endcontent-ref %}

{% content-ref url="protocol/oracle-aggregator" %}
[oracle-aggregator](https://docs.opium.network/for-developers/protocol/oracle-aggregator)
{% endcontent-ref %}

{% content-ref url="protocol/helpers" %}
[helpers](https://docs.opium.network/for-developers/protocol/helpers)
{% endcontent-ref %}

{% content-ref url="protocol/interfaces" %}
[interfaces](https://docs.opium.network/for-developers/protocol/interfaces)
{% endcontent-ref %}

{% content-ref url="protocol/common-errors" %}
[common-errors](https://docs.opium.network/for-developers/protocol/common-errors)
{% endcontent-ref %}

{% content-ref url="protocol/oracle-recipe" %}
[oracle-recipe](https://docs.opium.network/for-developers/protocol/oracle-recipe)
{% endcontent-ref %}

{% content-ref url="protocol/derivative-recipe" %}
[derivative-recipe](https://docs.opium.network/for-developers/protocol/derivative-recipe)
{% endcontent-ref %}

{% content-ref url="protocol/eip-2547-composable-multiclass-token" %}
[eip-2547-composable-multiclass-token](https://docs.opium.network/for-developers/protocol/eip-2547-composable-multiclass-token)
{% endcontent-ref %}
