# Ejecting

Assets can be migrated between networks on Tephra, or they can be ejected off the network entirely. When they are ejected, the Tephra address of the asset will maintain a link to the new asset in the platform that it was ejected to. In this case, Tephra continues to act as a sort of Certificate of Authenticity for the asset, allowing it to be traced back to its origin.

```typescript
await tephra.eject(assetAddress, fromUserId)

// For example:
// 1 - Create an asset.
const asset = await tephra.create()
// 1 - Grant it to a user.
const user = "f39cb85bec99"
await tephra.grant(asset, user)
// 3 - Eject it from that user.
await tephra.eject(asset, user)
```

{% hint style="danger" %}
Once an asset has been ejected, the address is consumed and cannot be re-created, granted, or transferred. Be careful when ejecting assets. It has big implications for your platfrom and, as with all transactions, cannot be undone.
{% endhint %}
