# IOceanToken.sol

Github Link: <https://github.com/Shell-Protocol/Shell-Protocol/blob/main/src/ocean/IOceanToken.sol>

## registerNewTokens()

<pre class="language-solidity" data-overflow="wrap"><code class="lang-solidity">/**
* @title Interface for external contracts that issue tokens on the Ocean's
*  public multitoken ledger
* @dev Implemented by OceanERC1155.
*/
<strong>function registerNewTokens(
</strong>    uint256 currentNumberOfTokens,
    uint256 numberOfAdditionalTokens
) external returns (
    uint256[] memory
);
</code></pre>

| Parameter Name           | Type    | Description                                  |
| ------------------------ | ------- | -------------------------------------------- |
| currentNumberOfTokens    | unit256 | current number of tokens as a starting nonce |
| numberOfAdditionalTokens | unit256 | the number of new tokens to be registered    |

This function creates native tokens for Ocean Primitives. It can be invoked anytime, but Ocean Primitives always invoke it upon creation first.

It is implemented by the `OceanERC1155.sol` which is inherited by the actual Ocean implementation `Ocean.sol`. In order to call it you should pass Ocean address to the interface like in the example below:

```solidity
address oceanAddress = 0xc32eb36f886f638fffd836df44c124074cfe3584;

IOceanToken(oceanAddress).registerNewTokens(0, 1);
```
