> For the complete documentation index, see [llms.txt](https://dev.init.capital/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.init.capital/guides/basic-interaction/create-position.md).

# Create Position

## Create Position

To create a position, call `createPos` with a mode and position "viewer". The viewer is an address for the position creator to store extra information about the position. For example, an integrated protocol that creates a position on behalf of its user can store its user address as the viewer to distinguish many positions of its users.

{% hint style="info" %}
The action creates an "empty position" without any collaterals or borrows. The function returns `posId` which must be specified later when adjusting this specific position.
{% endhint %}

```solidity
// Example create position function
function createInitPosition(uint16 mode, address viewer) external returns (uint256 posId) {
    // create position and returns posId
    posId = IInitCore(INIT_CORE).createPos(mode, viewer);
}
```
