Mint & Transfer Objects

Mint objects from templates and transfer them between wallets using the Event Bus.

What You'll Build

In this tutorial you'll mint a tokenized object from the template you created, inspect it, and then transfer it to another wallet via the Event Bus action system.

Step 1, Mint an Object

Objects are instances of templates. Minting creates a new object owned by your wallet with the default properties defined in the template.

bash
curl -X POST https://api-testnet.dual.network/objects \\
-H "Authorization: Bearer $DUAL_TOKEN" \\
-H "Content-Type: application/json" \\
-d '{
"template_id": "your-template-id",
"num": 1,
"properties": {
"holder_name": "Alice Smith",
"points": 100
}
}'

The response returns an array of newly minted objects, each with a unique id and the properties you specified.

Step 2, Inspect the Object

Retrieve the full object details including its current state, ownership, and properties:

bash
curl https://api-testnet.dual.network/objects/{objectId} \\
-H "Authorization: Bearer $DUAL_TOKEN"

Key fields in the response:

Step 3, Transfer via the Event Bus

The Event Bus processes actions on objects. A transfer action changes the object's owner from your wallet to another.

bash
curl -X POST https://api-testnet.dual.network/ebus/actions \\
-H "Authorization: Bearer $DUAL_TOKEN" \\
-H "Content-Type: application/json" \\
-d '{
"action_name": "Transfer",
"object_id": "your-object-id",
"new_owner": "recipient-wallet-address"
}'

The Event Bus validates the action against the template's rules, updates the object's owner, and emits an event that can trigger webhooks.

Step 4, Verify the Transfer

Fetch the object again to confirm the owner field has changed:

bash
curl https://api-testnet.dual.network/objects/{objectId} \\
-H "Authorization: Bearer $DUAL_TOKEN"

Understanding the Action Pipeline

When an action is submitted to the Event Bus, it goes through several stages:

  1. Validation, The action is checked against template rules and permissions
  2. Execution, The state change is applied off-chain
  3. Sequencing, The Sequencer orders and batches the action
  4. Anchoring, The batch fingerprint is written on-chain

What's Next?

Now that you can mint and transfer, try Building a Web Face to give your objects a custom interactive display.