Register an NFT as an IPA Remix

This section demonstrates how to register an IP Asset remix (i.e derivative work) using the TypeScript SDK. There are generally three methods of registering an IPA remix:

  1. Register an existing NFT as an IPA remix.
  2. Link an existing IPA as a remix of a "parent" IPA.
  3. Create a new NFT and register it as a remix in one transaction.

For this section, we will register an existing NFT as a IPA remix (#1 above).


  • Setup the client object.
  • The origin IPA to remix must be registered, where ipId is the registered IPA
  • The remixed NFT exists.
  • An already minted license from the origin IPA that allows creating derivatives of itself. Learn how to mint a license here.

Register IP Asset Remix

We can register your remix as an IP Asset simply by calling client.ipAsset.registerDerivativeIp() and passing in the token's contract address, token ID, and license(s) like so:

const response = await client.ipAsset.registerDerivativeIp({
  tokenContractAddress: "0xd516482bef63Ff19Ed40E4C6C2e626ccE04e19ED", // your remixed NFT contract address
  tokenId: "12", // your remixed NFT token ID
  licenseIds: ["5"], // array of licenses relevant to the creation of the remix, minted from the parent IPA
  txOptions: { waitForTransaction: true }

console.log(`Remixed IPA created at transaction hash ${response.txHash}, IPA ID: ${response.ipId}`)
export type RegisterDerivativeIpRequest = {
  licenseIds: string[];
  tokenContractAddress: string;
  tokenId: string;
  ipName?: string;
  contentHash?: `0x${string}`;
  uri?: string;
  txOptions?: TxOptions;

export type RegisterDerivativeIpResponse = {
  txHash: string;
  ipId?: string;

Optionally, you can provide additional properties to the IP asset such as:

  • ipName - a name for your asset
  • uri - a URI
  • contentHash - content hash

Setting waitForTransaction: true in the transaction options will return the ipId of the newly registered IPA remix.

After we run the above code, the console output will look like:

Remixed IPA created at transaction hash 0xa3e1caa7c2124b1550d459abc739291cb1be77ac73b99c097707878ac4ef57ae,
IPA ID: 0x4c1f8c1035a8cE379dd4ed666758Fb29696CF721