# Write Contract

## addMoe

{% tabs %}
{% tab title="parameters" %}

* moe(uint256)
* tokenId(uint256)
  {% endtab %}
  {% endtabs %}

## approve

{% tabs %}
{% tab title="parameters" %}

* to(address)
* tokenId(uint256)
  {% endtab %}
  {% endtabs %}

## mint

{% hint style="info" %}
To facilitate fee payment, you need to 'approve' the use of MOE tokens in MOE Trading Card.
{% endhint %}

{% tabs %}
{% tab title="parameters" %}

* to(address)
* moe(uint256)
* uri(string)
* originalCreator(string)
* jsonId(bytes4)
* isOriginal(bool)
* isSecondaryCreation(bool)
  {% endtab %}
  {% endtabs %}

## removeMoe

{% tabs %}
{% tab title="parameters" %}

* moe(uint256)
* tokenId(uint256)
  {% endtab %}
  {% endtabs %}

## safeTransferFrom

safeTransferFrom without the 'data' parameter. Method ID is 0x42842e0e.

{% tabs %}
{% tab title="parameters" %}

* from(address)
* to(address)
* tokenId(uint256)
  {% endtab %}
  {% endtabs %}

## safeTransferFrom

safeTransferFrom with the 'data' parameter. Method ID is 0xb884fde

{% tabs %}
{% tab title="parameters" %}

* from(address)
* to(address)
* tokenId(uint256)
* data(bytes)
  {% endtab %}
  {% endtabs %}

## setApprovalForAll

{% tabs %}
{% tab title="parameters" %}

* operator(address)
* approved(bool)
  {% endtab %}
  {% endtabs %}

## transferFrom

{% tabs %}
{% tab title="parameters" %}

* from(address)
* to(address)
* tokenId(uint256)
  {% endtab %}
  {% endtabs %}
