> ## Documentation Index
> Fetch the complete documentation index at: https://crossmint-devin-1787949784-wallet-docs-two-concept-model.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create IP Asset (Idempotent)

> Create a new IP Asset with a pre-computed id, or get an existing one if the id already exists

**API scope required**: `nfts.create`

<Warning>This API is still under development. Contact support for early access.</Warning>{" "}


## OpenAPI

````yaml put /v1/ip/collections/{collectionId}/ipassets/{customerFacingId}
openapi: 3.0.0
info:
  contact:
    email: support@crossmint.com
    name: Crossmint Support
    url: https://www.crossmint.com
  description: Crossmint Story API
  title: Crossmint Story API
  version: 1.0.0
servers:
  - description: Staging environment (testnets)
    url: https://staging.crossmint.com/api
security: []
tags: []
paths:
  /v1/ip/collections/{collectionId}/ipassets/{customerFacingId}:
    put:
      tags:
        - IP Story Protocol
      summary: Create IP Asset (Idempotent)
      description: >-
        Create a new IP Asset with a pre-computed id, or get an existing one if
        the id already exists


        **API scope required**: `nfts.create`
      operationId: StoryApiController-createIPAssetIdempotent-4
      parameters:
        - description: API key required for authentication
          in: header
          name: X-API-KEY
          required: true
          schema:
            type: string
        - in: path
          name: collectionId
          required: true
          schema:
            type: string
        - in: path
          name: customerFacingId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IPAssetCreationInputDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IPAssetResponseDto'
          description: IP Asset created
components:
  schemas:
    IPAssetCreationInputDto:
      properties:
        derivData:
          description: >-
            Data for the parent IP asset and license terms (for derivative IP
            assets only)
          example:
            licenseTermsIds:
              - 1
            parentIpIds:
              - '0x123'
          properties:
            licenseTermsIds:
              description: The license terms IDs of the derivative IP asset
              example: 1
              items:
                type: number
              type: array
            maxMintingFee:
              default: 0
              description: The max minting fee of the derivative IP asset
              example: 0
              type: number
            maxRevenueShare:
              default: 100
              description: The max revenue share of the derivative IP asset
              example: 100
              type: number
            maxRts:
              default: 100000000
              description: The max RTS of the derivative IP asset
              example: 10000
              type: number
            parentIpIds:
              description: The parent IP IDs of the derivative IP asset
              example: '0x123'
              items: {}
              type: array
          type: object
        ipAssetMetadata:
          description: Metadata containing information about the IP asset itself
          example:
            attributes:
              - key: ISBN
                value: 978-0-7475-3269-0
              - key: Genre
                value: Fantasy
            createdAt: '1997-06-26T00:00:00'
            creators:
              - contributionPercent: 80
                crossmintUserLocator: email:JKRowling@example.com:story
                description: Author
                email: JKRowling@example.com
                name: JK Rowling
                socialMedia:
                  - platform: Wikipedia
                    url: https://en.wikipedia.org/wiki/J._K._Rowling
              - address: '0x1234567890123456789012345678901234567890'
                contributionPercent: 15
                description: Illustrator
                name: Thomas Taylor
              - address: '0x1234567890123456789012345678901234567890'
                contributionPercent: 5
                description: Publisher
                email: BloomsburyPublishing@example.com
                name: Bloomsbury Publishing
                socialMedia:
                  - platform: Website
                    url: https://www.bloomsbury.com/
            image: https://example.com/book-cover.jpg
            imageHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
            ipType: literature
            media:
              - mimeType: application/epub+zip
                name: ePub
                url: link_to_epub
              - mimeType: application/pdf
                name: Book Summary PDF
                url: link_to_book_summary_pdf
            mediaHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
            mediaType: application/epub+zip
            mediaUrl: link_to_epub
            title: Harry Potter and the Philosopher's Stone
          properties:
            attributes:
              description: >-
                An array of key-value pairs that can be used for arbitrary
                mappings. Attribute type defined below.
              items:
                properties:
                  key:
                    type: string
                  value:
                    anyOf:
                      - type: number
                      - type: string
                required:
                  - key
                  - value
                type: object
              type: array
            createdAt:
              description: Creation date of the IP (ISO8601 or unix format)
              type: string
            creators:
              description: Information about the IP creators
              items:
                description: IP creator metadata
                example:
                  address: '0x1234567890123456789012345678901234567890'
                  contributionPercent: 50
                  description: Lead Artist
                  email: JohnDoe@example.com
                  image: https://example.com/profile.jpg
                  name: John Doe
                  role: Artist
                  socialMedia:
                    - platform: Twitter
                      url: https://twitter.com/johndoe
                properties:
                  address:
                    description: >-
                      Wallet address of the IP creator. This field is optional
                      only if a crossmint user locator is specified
                    example: '0x1234567890123456789012345678901234567890'
                    type: string
                  contributionPercent:
                    maximum: 100
                    minimum: 0
                    type: number
                  crossmintUserLocator:
                    description: >
                      A internal locator for the creator of the IP asset,
                      crossmint will automatically map this to the correct
                      wallet address, not required if address is specified, is
                      always required for the main creator(owner): Allowed
                      formats: 


                      `<chain>:<address>` or 


                      `email:<email_address>:<chain>` or


                      `userId:<userId>:<chain>` or


                      `twitter:<twitter_handle>:<chain>`


                      [see here for more
                      info](/minting/advanced/specify-recipient)
                    example: email:creator@example.com:story-testnet
                    type: string
                  description:
                    type: string
                  email:
                    description: The creator of the IP asset email
                    example: creator@example.com
                    type: string
                  image:
                    type: string
                  name:
                    type: string
                  role:
                    type: string
                  socialMedia:
                    items:
                      description: Social media link for IP creator
                      example:
                        platform: Twitter
                        url: https://twitter.com/creator
                      properties:
                        platform:
                          type: string
                        url:
                          type: string
                      required:
                        - platform
                        - url
                      type: object
                    type: array
                required:
                  - contributionPercent
                  - name
                type: object
              type: array
            description:
              description: Description of the IP
              type: string
            image:
              description: Primary image URL for the IP asset
              type: string
            imageHash:
              description: Hash of the primary image
              type: string
            ipType:
              description: >-
                Type of the IP Asset, can be defined arbitrarily by the creator.
                I.e. "character", "chapter", "location", "items", "music", etc
              type: string
            media:
              description: Supporting media assets
              items:
                description: IP media asset metadata
                example:
                  mimeType: audio/mpeg
                  name: Rise Again
                  url: >-
                    https://cdn1.suno.ai/937e3060-65c0-4934-acab-7d8cc05eb9a6.mp3
                properties:
                  mimeType:
                    type: string
                  name:
                    type: string
                  url:
                    type: string
                required:
                  - mimeType
                  - name
                  - url
                type: object
              type: array
            mediaHash:
              description: Hash of the primary media
              type: string
            mediaType:
              description: MIME type of the primary media
              type: string
            mediaUrl:
              description: Primary media URL for the IP asset
              type: string
            relationships:
              description: >-
                The detailed relationship info with the IPA's direct parent
                asset, such as APPEARS_IN, FINETUNED_FROM, etc. See more
                examples
                https://docs.story.foundation/docs/ipa-metadata-standard#relationship-types
              example:
                parentIpId: '0x123'
                type: FOLLOWS_FROM
              items:
                properties:
                  parentIpId:
                    type: string
                  type:
                    type: string
                required:
                  - parentIpId
                  - type
                type: object
              type: array
            robotTerms:
              description: Allows you to set Do Not Train for a specific agent
              properties:
                allow:
                  type: string
                userAgent:
                  type: string
              required:
                - allow
                - userAgent
              type: object
            tags:
              description: Any tags that can help surface this IPA
              items:
                type: string
              type: array
            title:
              description: Title of the IP
              type: string
            watermarkImage:
              description: >-
                A separate image with your watermark already applied. This way
                apps choosing to use it can render this version of the image
                (with watermark applied).
              type: string
          type: object
        licenseTerms:
          description: Optional licensing parameters for the IP asset
          items:
            description: License parameters
            oneOf:
              - description: Commercial remix license terms
                example:
                  terms:
                    commercialRevShare: 50
                    currency: '0x0000000000000000000000000000000000000000'
                    defaultMintingFee: 100
                  type: commercial-remix
                properties:
                  offChain:
                    description: >-
                      Additional license terms that are stored off-chain due to
                      their descriptive nature
                    example:
                      aiLearningModels: false
                      attribution:
                        instructions: Credit original creator in all derivative works
                        required: true
                      channelsOfDistribution:
                        - All
                      contentStandards:
                        - Suitable-for-All-Ages
                      governingLaw: California, USA
                      restrictionOnCrossPlatformUse: false
                      sublicensable: false
                      territory:
                        - Global
                    properties:
                      additionalTerms:
                        description: >-
                          Additional license parameters or terms the licensor
                          would like to specify
                        example:
                          description: >-
                            All derivative works must maintain similar quality
                            standards as the original work
                          term: Quality Control
                        items:
                          properties:
                            description:
                              type: string
                            term:
                              type: string
                          required:
                            - description
                            - term
                          type: object
                        type: array
                      aiLearningModels:
                        description: >-
                          Whether or not the IP can be used to develop AI
                          learning models. By default, the IP cannot be used for
                          such development.
                        example: false
                        type: boolean
                      alternativeDisputeResolution:
                        description: >-
                          Alternative dispute resolution mechanisms for handling
                          disagreements
                        example:
                          details: >-
                            All disputes will be resolved through binding
                            arbitration in accordance with...
                          method: Arbitration
                        properties:
                          details:
                            type: string
                          method:
                            type: string
                        required:
                          - details
                          - method
                        type: object
                      attribution:
                        description: >-
                          If and how the original author should be credited for
                          usage of the IP. By default, no credit is required.
                        example:
                          instructions: 'Please credit as: Original work by [Author Name]'
                          required: true
                        properties:
                          instructions:
                            type: string
                          required:
                            type: boolean
                        required:
                          - required
                        type: object
                      channelsOfDistribution:
                        description: >-
                          Restrict usage of the IP to certain media formats and
                          channels of distribution. By default, the IP can be
                          used across all possible channels.
                        example: television
                        items:
                          type: string
                        type: array
                      contentStandards:
                        description: >-
                          Set content standards around use of the IP. By
                          default, no standards apply.
                        example: No-Hate
                        items:
                          type: string
                        type: array
                      governingLaw:
                        description: >-
                          The laws of a certain jurisdiction by which this
                          license abides. By default, this is California, USA.
                        example: California, USA
                        type: string
                      restrictionOnCrossPlatformUse:
                        description: >-
                          If true, limits licensing and creation of derivative
                          works solely on the app on which the IP is made
                          available.
                        example: false
                        type: boolean
                      sublicensable:
                        description: >-
                          If true, derivative works can grant the same rights
                          they received under this license to a 3rd party,
                          without approval from the original licensor.
                        example: false
                        type: boolean
                      territory:
                        description: >-
                          Limit usage of the IP to certain regions and/or
                          countries. By default, the IP can be used globally.
                        example: United States
                        items:
                          type: string
                        type: array
                    type: object
                  terms:
                    description: Commercial remix license terms
                    example:
                      commercialRevShare: 50
                      currency: '0x1514000000000000000000000000000000000000'
                      defaultMintingFee: 100
                    properties:
                      commercialRevShare:
                        description: >-
                          Commercial revenue share percentage (number between 0
                          and 100)
                        example: 50
                        type: number
                      currency:
                        default: '0x1514000000000000000000000000000000000000'
                        description: >-
                          Currency address (must be whitelisted in
                          RoyaltyModule.sol). Defaults to the $WIP token.
                          Whitelisted tokens: WIP
                          (0x1514000000000000000000000000000000000000) on all
                          networks, MERC20
                          (0xF2104833d386a2734a4eB3B8ad6FC6812F29E38E) on Aeneid
                          Testnet
                        example: '0x1514000000000000000000000000000000000000'
                        type: string
                      defaultMintingFee:
                        description: Default minting fee
                        example: 100
                        type: number
                    required:
                      - commercialRevShare
                      - defaultMintingFee
                    title: Commercial Remix License Terms
                    type: object
                  type:
                    enum:
                      - commercial-remix
                    type: string
                  uri:
                    description: >-
                      License terms stored off-chain. If not provided, and if
                      'offChain' is also omitted, this will default to the
                      Non-Commercial Social Remixing license terms.
                    example: ipfs://<CID>
                    type: string
                required:
                  - terms
                  - type
                title: Commercial Remix License Terms
                type: object
              - description: Commercial use license terms
                example:
                  terms:
                    currency: '0x0000000000000000000000000000000000000000'
                    defaultMintingFee: 100
                  type: commercial-use
                properties:
                  offChain:
                    description: >-
                      Additional license terms that are stored off-chain due to
                      their descriptive nature
                    example:
                      aiLearningModels: false
                      attribution:
                        instructions: Credit original creator in all derivative works
                        required: true
                      channelsOfDistribution:
                        - All
                      contentStandards:
                        - Suitable-for-All-Ages
                      governingLaw: California, USA
                      restrictionOnCrossPlatformUse: false
                      sublicensable: false
                      territory:
                        - Global
                    properties:
                      additionalTerms:
                        description: >-
                          Additional license parameters or terms the licensor
                          would like to specify
                        example:
                          description: >-
                            All derivative works must maintain similar quality
                            standards as the original work
                          term: Quality Control
                        items:
                          properties:
                            description:
                              type: string
                            term:
                              type: string
                          required:
                            - description
                            - term
                          type: object
                        type: array
                      aiLearningModels:
                        description: >-
                          Whether or not the IP can be used to develop AI
                          learning models. By default, the IP cannot be used for
                          such development.
                        example: false
                        type: boolean
                      alternativeDisputeResolution:
                        description: >-
                          Alternative dispute resolution mechanisms for handling
                          disagreements
                        example:
                          details: >-
                            All disputes will be resolved through binding
                            arbitration in accordance with...
                          method: Arbitration
                        properties:
                          details:
                            type: string
                          method:
                            type: string
                        required:
                          - details
                          - method
                        type: object
                      attribution:
                        description: >-
                          If and how the original author should be credited for
                          usage of the IP. By default, no credit is required.
                        example:
                          instructions: 'Please credit as: Original work by [Author Name]'
                          required: true
                        properties:
                          instructions:
                            type: string
                          required:
                            type: boolean
                        required:
                          - required
                        type: object
                      channelsOfDistribution:
                        description: >-
                          Restrict usage of the IP to certain media formats and
                          channels of distribution. By default, the IP can be
                          used across all possible channels.
                        example: television
                        items:
                          type: string
                        type: array
                      contentStandards:
                        description: >-
                          Set content standards around use of the IP. By
                          default, no standards apply.
                        example: No-Hate
                        items:
                          type: string
                        type: array
                      governingLaw:
                        description: >-
                          The laws of a certain jurisdiction by which this
                          license abides. By default, this is California, USA.
                        example: California, USA
                        type: string
                      restrictionOnCrossPlatformUse:
                        description: >-
                          If true, limits licensing and creation of derivative
                          works solely on the app on which the IP is made
                          available.
                        example: false
                        type: boolean
                      sublicensable:
                        description: >-
                          If true, derivative works can grant the same rights
                          they received under this license to a 3rd party,
                          without approval from the original licensor.
                        example: false
                        type: boolean
                      territory:
                        description: >-
                          Limit usage of the IP to certain regions and/or
                          countries. By default, the IP can be used globally.
                        example: United States
                        items:
                          type: string
                        type: array
                    type: object
                  terms:
                    description: Commercial use license terms
                    example:
                      currency: '0x1514000000000000000000000000000000000000'
                      defaultMintingFee: 100
                    properties:
                      currency:
                        default: '0x1514000000000000000000000000000000000000'
                        description: >-
                          Currency address (must be whitelisted in
                          RoyaltyModule.sol). Defaults to the $WIP token.
                          Whitelisted tokens: WIP
                          (0x1514000000000000000000000000000000000000) on all
                          networks, MERC20
                          (0xF2104833d386a2734a4eB3B8ad6FC6812F29E38E) on Aeneid
                          Testnet
                        example: '0x1514000000000000000000000000000000000000'
                        type: string
                      defaultMintingFee:
                        description: Default minting fee
                        example: 100
                        type: number
                    required:
                      - defaultMintingFee
                    title: Commercial Use License Terms
                    type: object
                  type:
                    enum:
                      - commercial-use
                    type: string
                  uri:
                    description: >-
                      License terms stored off-chain. If not provided, and if
                      'offChain' is also omitted, this will default to the
                      Non-Commercial Social Remixing license terms.
                    example: ipfs://<CID>
                    type: string
                required:
                  - terms
                  - type
                title: Commercial Use License Terms
                type: object
              - description: Non-commercial social remixing license terms
                example:
                  type: non-commercial-social-remixing
                properties:
                  offChain:
                    description: >-
                      Additional license terms that are stored off-chain due to
                      their descriptive nature
                    example:
                      aiLearningModels: false
                      attribution:
                        instructions: Credit original creator in all derivative works
                        required: true
                      channelsOfDistribution:
                        - All
                      contentStandards:
                        - Suitable-for-All-Ages
                      governingLaw: California, USA
                      restrictionOnCrossPlatformUse: false
                      sublicensable: false
                      territory:
                        - Global
                    properties:
                      additionalTerms:
                        description: >-
                          Additional license parameters or terms the licensor
                          would like to specify
                        example:
                          description: >-
                            All derivative works must maintain similar quality
                            standards as the original work
                          term: Quality Control
                        items:
                          properties:
                            description:
                              type: string
                            term:
                              type: string
                          required:
                            - description
                            - term
                          type: object
                        type: array
                      aiLearningModels:
                        description: >-
                          Whether or not the IP can be used to develop AI
                          learning models. By default, the IP cannot be used for
                          such development.
                        example: false
                        type: boolean
                      alternativeDisputeResolution:
                        description: >-
                          Alternative dispute resolution mechanisms for handling
                          disagreements
                        example:
                          details: >-
                            All disputes will be resolved through binding
                            arbitration in accordance with...
                          method: Arbitration
                        properties:
                          details:
                            type: string
                          method:
                            type: string
                        required:
                          - details
                          - method
                        type: object
                      attribution:
                        description: >-
                          If and how the original author should be credited for
                          usage of the IP. By default, no credit is required.
                        example:
                          instructions: 'Please credit as: Original work by [Author Name]'
                          required: true
                        properties:
                          instructions:
                            type: string
                          required:
                            type: boolean
                        required:
                          - required
                        type: object
                      channelsOfDistribution:
                        description: >-
                          Restrict usage of the IP to certain media formats and
                          channels of distribution. By default, the IP can be
                          used across all possible channels.
                        example: television
                        items:
                          type: string
                        type: array
                      contentStandards:
                        description: >-
                          Set content standards around use of the IP. By
                          default, no standards apply.
                        example: No-Hate
                        items:
                          type: string
                        type: array
                      governingLaw:
                        description: >-
                          The laws of a certain jurisdiction by which this
                          license abides. By default, this is California, USA.
                        example: California, USA
                        type: string
                      restrictionOnCrossPlatformUse:
                        description: >-
                          If true, limits licensing and creation of derivative
                          works solely on the app on which the IP is made
                          available.
                        example: false
                        type: boolean
                      sublicensable:
                        description: >-
                          If true, derivative works can grant the same rights
                          they received under this license to a 3rd party,
                          without approval from the original licensor.
                        example: false
                        type: boolean
                      territory:
                        description: >-
                          Limit usage of the IP to certain regions and/or
                          countries. By default, the IP can be used globally.
                        example: United States
                        items:
                          type: string
                        type: array
                    type: object
                  type:
                    enum:
                      - non-commercial-social-remixing
                    type: string
                  uri:
                    description: >-
                      License terms stored off-chain. If not provided, and if
                      'offChain' is also omitted, this will default to the
                      Non-Commercial Social Remixing license terms.
                    example: ipfs://<CID>
                    type: string
                required:
                  - type
                title: Non-commercial Social Remixing License Terms
                type: object
          type: array
        locale:
          description: The locale for the recipient's notification.
          enum:
            - Klingon
            - de-DE
            - en-US
            - es-ES
            - fr-FR
            - it-IT
            - ja-JP
            - ko-KR
            - pt-PT
            - ru-RU
            - th-TH
            - tr-TR
            - uk-UA
            - vi-VN
            - zh-CN
            - zh-TW
          type: string
        nftMetadata:
          description: Metadata for the NFT representation of this IP asset
          example:
            description: A unique story NFT
            image: https://example.com/nft/123.png
            name: 'Art #123'
          properties:
            animation_url:
              type: string
            attributes:
              items:
                properties:
                  display_type:
                    type: string
                  trait_type:
                    type: string
                  value:
                    anyOf:
                      - type: number
                      - type: string
                required:
                  - trait_type
                  - value
                type: object
              type: array
            description:
              maxLength: 5000
              type: string
            external_url:
              type: string
            image:
              type: string
            name:
              type: string
            uri:
              type: string
          type: object
        owner:
          description: |
            The owner (main creator) of the IP asset: Allowed formats: 

            `<chain>:<address>` or 

            `email:<email_address>:<chain>` or

            `userId:<userId>:<chain>` or

            `twitter:<twitter_handle>:<chain>`

            [see here for more info](/minting/advanced/specify-recipient)
          example: email:creator@example.com:story-testnet
          type: string
        reuploadLinkedFiles:
          default: true
          description: >-
            Controls whether external files (like images) in the NFT metadata
            should be reuploaded to decentralized storage (IPFS) (true) or
            referenced with their original URLs (false). Default is True.
          example: true
          type: boolean
        sendNotification:
          anyOf:
            - description: >-
                Whether to send a notification to the custodial wallet address,
                or the recipient if it was minted to an email address.
              type: boolean
            - properties:
                recipientEmail:
                  description: The email address to send the notification to.
                  format: email
                  pattern: >-
                    ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                  type: string
              required:
                - recipientEmail
              type: object
      required:
        - derivData
        - ipAssetMetadata
        - nftMetadata
        - owner
      type: object
    IPAssetResponseDto:
      properties:
        actionId:
          description: The action id for the IPAsset creation
          example: d290f1ee-6c54-4b01-90e6-d701748f0851
          type: string
        derivData:
          description: >-
            Data for the parent IP asset and license terms (for derivative IP
            assets only)
          example:
            licenseTermsIds:
              - 1
            maxMintingFee: 0
            maxRevenueShare: 100
            maxRts: 10000000
            parentIpIds:
              - '0x123'
          properties:
            licenseTermsIds:
              description: The license terms IDs of the derivative IP asset
              example: 1
              items:
                type: number
              type: array
            maxMintingFee:
              default: 0
              description: The max minting fee of the derivative IP asset
              example: 0
              type: number
            maxRevenueShare:
              default: 100
              description: The max revenue share of the derivative IP asset
              example: 100
              type: number
            maxRts:
              default: 100000000
              description: The max RTS of the derivative IP asset
              example: 10000
              type: number
            parentIpIds:
              description: The parent IP IDs of the derivative IP asset
              example: '0x123'
              items: {}
              type: array
          type: object
        id:
          description: The id of the IPAsset
          example: d290f1ee-6c54-4b01-90e6-d701748f0851
          type: string
        ipAssetMetadata:
          description: Metadata containing information about the IP asset itself
          example:
            attributes:
              - key: ISBN
                value: 978-0-7475-3269-0
              - key: Genre
                value: Fantasy
            createdAt: '1997-06-26T00:00:00'
            creators:
              - contributionPercent: 80
                crossmintUserLocator: email:JKRowling@example.com:story
                description: Author
                email: JKRowling@example.com
                name: JK Rowling
                socialMedia:
                  - platform: Wikipedia
                    url: https://en.wikipedia.org/wiki/J._K._Rowling
              - address: '0x1234567890123456789012345678901234567890'
                contributionPercent: 15
                description: Illustrator
                name: Thomas Taylor
              - address: '0x1234567890123456789012345678901234567890'
                contributionPercent: 5
                description: Publisher
                email: BloomsburyPublishing@example.com
                name: Bloomsbury Publishing
                socialMedia:
                  - platform: Website
                    url: https://www.bloomsbury.com/
            image: https://example.com/book-cover.jpg
            imageHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
            ipType: literature
            media:
              - mimeType: application/epub+zip
                name: ePub
                url: link_to_epub
              - mimeType: application/pdf
                name: Book Summary PDF
                url: link_to_book_summary_pdf
            mediaHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
            mediaType: application/epub+zip
            mediaUrl: link_to_epub
            title: Harry Potter and the Philosopher's Stone
          properties:
            attributes:
              description: >-
                An array of key-value pairs that can be used for arbitrary
                mappings. Attribute type defined below.
              items:
                properties:
                  key:
                    type: string
                  value:
                    anyOf:
                      - type: number
                      - type: string
                required:
                  - key
                  - value
                type: object
              type: array
            createdAt:
              description: Creation date of the IP (ISO8601 or unix format)
              type: string
            creators:
              description: Information about the IP creators
              items:
                description: IP creator metadata
                example:
                  address: '0x1234567890123456789012345678901234567890'
                  contributionPercent: 50
                  description: Lead Artist
                  email: JohnDoe@example.com
                  image: https://example.com/profile.jpg
                  name: John Doe
                  role: Artist
                  socialMedia:
                    - platform: Twitter
                      url: https://twitter.com/johndoe
                properties:
                  address:
                    description: >-
                      Wallet address of the IP creator. This field is optional
                      only if a crossmint user locator is specified
                    example: '0x1234567890123456789012345678901234567890'
                    type: string
                  contributionPercent:
                    maximum: 100
                    minimum: 0
                    type: number
                  crossmintUserLocator:
                    description: >
                      A internal locator for the creator of the IP asset,
                      crossmint will automatically map this to the correct
                      wallet address, not required if address is specified, is
                      always required for the main creator(owner): Allowed
                      formats: 


                      `<chain>:<address>` or 


                      `email:<email_address>:<chain>` or


                      `userId:<userId>:<chain>` or


                      `twitter:<twitter_handle>:<chain>`


                      [see here for more
                      info](/minting/advanced/specify-recipient)
                    example: email:creator@example.com:story-testnet
                    type: string
                  description:
                    type: string
                  email:
                    description: The creator of the IP asset email
                    example: creator@example.com
                    type: string
                  image:
                    type: string
                  name:
                    type: string
                  role:
                    type: string
                  socialMedia:
                    items:
                      description: Social media link for IP creator
                      example:
                        platform: Twitter
                        url: https://twitter.com/creator
                      properties:
                        platform:
                          type: string
                        url:
                          type: string
                      required:
                        - platform
                        - url
                      type: object
                    type: array
                required:
                  - contributionPercent
                  - name
                type: object
              type: array
            description:
              description: Description of the IP
              type: string
            image:
              description: Primary image URL for the IP asset
              type: string
            imageHash:
              description: Hash of the primary image
              type: string
            ipType:
              description: >-
                Type of the IP Asset, can be defined arbitrarily by the creator.
                I.e. "character", "chapter", "location", "items", "music", etc
              type: string
            media:
              description: Supporting media assets
              items:
                description: IP media asset metadata
                example:
                  mimeType: audio/mpeg
                  name: Rise Again
                  url: >-
                    https://cdn1.suno.ai/937e3060-65c0-4934-acab-7d8cc05eb9a6.mp3
                properties:
                  mimeType:
                    type: string
                  name:
                    type: string
                  url:
                    type: string
                required:
                  - mimeType
                  - name
                  - url
                type: object
              type: array
            mediaHash:
              description: Hash of the primary media
              type: string
            mediaType:
              description: MIME type of the primary media
              type: string
            mediaUrl:
              description: Primary media URL for the IP asset
              type: string
            relationships:
              description: >-
                The detailed relationship info with the IPA's direct parent
                asset, such as APPEARS_IN, FINETUNED_FROM, etc. See more
                examples
                https://docs.story.foundation/docs/ipa-metadata-standard#relationship-types
              example:
                parentIpId: '0x123'
                type: FOLLOWS_FROM
              items:
                properties:
                  parentIpId:
                    type: string
                  type:
                    type: string
                required:
                  - parentIpId
                  - type
                type: object
              type: array
            robotTerms:
              description: Allows you to set Do Not Train for a specific agent
              properties:
                allow:
                  type: string
                userAgent:
                  type: string
              required:
                - allow
                - userAgent
              type: object
            tags:
              description: Any tags that can help surface this IPA
              items:
                type: string
              type: array
            title:
              description: Title of the IP
              type: string
            watermarkImage:
              description: >-
                A separate image with your watermark already applied. This way
                apps choosing to use it can render this version of the image
                (with watermark applied).
              type: string
          type: object
        licenseTerms:
          description: >-
            Licensing parameters for the IP asset, NOTE: For detailed and
            updated license terms, refer to the 'Get IP Asset License' endpoint
          items:
            description: License parameters
            oneOf:
              - description: Commercial remix license terms
                example:
                  terms:
                    commercialRevShare: 50
                    currency: '0x0000000000000000000000000000000000000000'
                    defaultMintingFee: 100
                  type: commercial-remix
                properties:
                  offChain:
                    description: >-
                      Additional license terms that are stored off-chain due to
                      their descriptive nature
                    example:
                      aiLearningModels: false
                      attribution:
                        instructions: Credit original creator in all derivative works
                        required: true
                      channelsOfDistribution:
                        - All
                      contentStandards:
                        - Suitable-for-All-Ages
                      governingLaw: California, USA
                      restrictionOnCrossPlatformUse: false
                      sublicensable: false
                      territory:
                        - Global
                    properties:
                      additionalTerms:
                        description: >-
                          Additional license parameters or terms the licensor
                          would like to specify
                        example:
                          description: >-
                            All derivative works must maintain similar quality
                            standards as the original work
                          term: Quality Control
                        items:
                          properties:
                            description:
                              type: string
                            term:
                              type: string
                          required:
                            - description
                            - term
                          type: object
                        type: array
                      aiLearningModels:
                        description: >-
                          Whether or not the IP can be used to develop AI
                          learning models. By default, the IP cannot be used for
                          such development.
                        example: false
                        type: boolean
                      alternativeDisputeResolution:
                        description: >-
                          Alternative dispute resolution mechanisms for handling
                          disagreements
                        example:
                          details: >-
                            All disputes will be resolved through binding
                            arbitration in accordance with...
                          method: Arbitration
                        properties:
                          details:
                            type: string
                          method:
                            type: string
                        required:
                          - details
                          - method
                        type: object
                      attribution:
                        description: >-
                          If and how the original author should be credited for
                          usage of the IP. By default, no credit is required.
                        example:
                          instructions: 'Please credit as: Original work by [Author Name]'
                          required: true
                        properties:
                          instructions:
                            type: string
                          required:
                            type: boolean
                        required:
                          - required
                        type: object
                      channelsOfDistribution:
                        description: >-
                          Restrict usage of the IP to certain media formats and
                          channels of distribution. By default, the IP can be
                          used across all possible channels.
                        example: television
                        items:
                          type: string
                        type: array
                      contentStandards:
                        description: >-
                          Set content standards around use of the IP. By
                          default, no standards apply.
                        example: No-Hate
                        items:
                          type: string
                        type: array
                      governingLaw:
                        description: >-
                          The laws of a certain jurisdiction by which this
                          license abides. By default, this is California, USA.
                        example: California, USA
                        type: string
                      restrictionOnCrossPlatformUse:
                        description: >-
                          If true, limits licensing and creation of derivative
                          works solely on the app on which the IP is made
                          available.
                        example: false
                        type: boolean
                      sublicensable:
                        description: >-
                          If true, derivative works can grant the same rights
                          they received under this license to a 3rd party,
                          without approval from the original licensor.
                        example: false
                        type: boolean
                      territory:
                        description: >-
                          Limit usage of the IP to certain regions and/or
                          countries. By default, the IP can be used globally.
                        example: United States
                        items:
                          type: string
                        type: array
                    type: object
                  terms:
                    description: Commercial remix license terms
                    example:
                      commercialRevShare: 50
                      currency: '0x1514000000000000000000000000000000000000'
                      defaultMintingFee: 100
                    properties:
                      commercialRevShare:
                        description: >-
                          Commercial revenue share percentage (number between 0
                          and 100)
                        example: 50
                        type: number
                      currency:
                        default: '0x1514000000000000000000000000000000000000'
                        description: >-
                          Currency address (must be whitelisted in
                          RoyaltyModule.sol). Defaults to the $WIP token.
                          Whitelisted tokens: WIP
                          (0x1514000000000000000000000000000000000000) on all
                          networks, MERC20
                          (0xF2104833d386a2734a4eB3B8ad6FC6812F29E38E) on Aeneid
                          Testnet
                        example: '0x1514000000000000000000000000000000000000'
                        type: string
                      defaultMintingFee:
                        description: Default minting fee
                        example: 100
                        type: number
                    required:
                      - commercialRevShare
                      - defaultMintingFee
                    title: Commercial Remix License Terms
                    type: object
                  type:
                    enum:
                      - commercial-remix
                    type: string
                  uri:
                    description: >-
                      License terms stored off-chain. If not provided, and if
                      'offChain' is also omitted, this will default to the
                      Non-Commercial Social Remixing license terms.
                    example: ipfs://<CID>
                    type: string
                required:
                  - terms
                  - type
                title: Commercial Remix License Terms
                type: object
              - description: Commercial use license terms
                example:
                  terms:
                    currency: '0x0000000000000000000000000000000000000000'
                    defaultMintingFee: 100
                  type: commercial-use
                properties:
                  offChain:
                    description: >-
                      Additional license terms that are stored off-chain due to
                      their descriptive nature
                    example:
                      aiLearningModels: false
                      attribution:
                        instructions: Credit original creator in all derivative works
                        required: true
                      channelsOfDistribution:
                        - All
                      contentStandards:
                        - Suitable-for-All-Ages
                      governingLaw: California, USA
                      restrictionOnCrossPlatformUse: false
                      sublicensable: false
                      territory:
                        - Global
                    properties:
                      additionalTerms:
                        description: >-
                          Additional license parameters or terms the licensor
                          would like to specify
                        example:
                          description: >-
                            All derivative works must maintain similar quality
                            standards as the original work
                          term: Quality Control
                        items:
                          properties:
                            description:
                              type: string
                            term:
                              type: string
                          required:
                            - description
                            - term
                          type: object
                        type: array
                      aiLearningModels:
                        description: >-
                          Whether or not the IP can be used to develop AI
                          learning models. By default, the IP cannot be used for
                          such development.
                        example: false
                        type: boolean
                      alternativeDisputeResolution:
                        description: >-
                          Alternative dispute resolution mechanisms for handling
                          disagreements
                        example:
                          details: >-
                            All disputes will be resolved through binding
                            arbitration in accordance with...
                          method: Arbitration
                        properties:
                          details:
                            type: string
                          method:
                            type: string
                        required:
                          - details
                          - method
                        type: object
                      attribution:
                        description: >-
                          If and how the original author should be credited for
                          usage of the IP. By default, no credit is required.
                        example:
                          instructions: 'Please credit as: Original work by [Author Name]'
                          required: true
                        properties:
                          instructions:
                            type: string
                          required:
                            type: boolean
                        required:
                          - required
                        type: object
                      channelsOfDistribution:
                        description: >-
                          Restrict usage of the IP to certain media formats and
                          channels of distribution. By default, the IP can be
                          used across all possible channels.
                        example: television
                        items:
                          type: string
                        type: array
                      contentStandards:
                        description: >-
                          Set content standards around use of the IP. By
                          default, no standards apply.
                        example: No-Hate
                        items:
                          type: string
                        type: array
                      governingLaw:
                        description: >-
                          The laws of a certain jurisdiction by which this
                          license abides. By default, this is California, USA.
                        example: California, USA
                        type: string
                      restrictionOnCrossPlatformUse:
                        description: >-
                          If true, limits licensing and creation of derivative
                          works solely on the app on which the IP is made
                          available.
                        example: false
                        type: boolean
                      sublicensable:
                        description: >-
                          If true, derivative works can grant the same rights
                          they received under this license to a 3rd party,
                          without approval from the original licensor.
                        example: false
                        type: boolean
                      territory:
                        description: >-
                          Limit usage of the IP to certain regions and/or
                          countries. By default, the IP can be used globally.
                        example: United States
                        items:
                          type: string
                        type: array
                    type: object
                  terms:
                    description: Commercial use license terms
                    example:
                      currency: '0x1514000000000000000000000000000000000000'
                      defaultMintingFee: 100
                    properties:
                      currency:
                        default: '0x1514000000000000000000000000000000000000'
                        description: >-
                          Currency address (must be whitelisted in
                          RoyaltyModule.sol). Defaults to the $WIP token.
                          Whitelisted tokens: WIP
                          (0x1514000000000000000000000000000000000000) on all
                          networks, MERC20
                          (0xF2104833d386a2734a4eB3B8ad6FC6812F29E38E) on Aeneid
                          Testnet
                        example: '0x1514000000000000000000000000000000000000'
                        type: string
                      defaultMintingFee:
                        description: Default minting fee
                        example: 100
                        type: number
                    required:
                      - defaultMintingFee
                    title: Commercial Use License Terms
                    type: object
                  type:
                    enum:
                      - commercial-use
                    type: string
                  uri:
                    description: >-
                      License terms stored off-chain. If not provided, and if
                      'offChain' is also omitted, this will default to the
                      Non-Commercial Social Remixing license terms.
                    example: ipfs://<CID>
                    type: string
                required:
                  - terms
                  - type
                title: Commercial Use License Terms
                type: object
              - description: Non-commercial social remixing license terms
                example:
                  type: non-commercial-social-remixing
                properties:
                  offChain:
                    description: >-
                      Additional license terms that are stored off-chain due to
                      their descriptive nature
                    example:
                      aiLearningModels: false
                      attribution:
                        instructions: Credit original creator in all derivative works
                        required: true
                      channelsOfDistribution:
                        - All
                      contentStandards:
                        - Suitable-for-All-Ages
                      governingLaw: California, USA
                      restrictionOnCrossPlatformUse: false
                      sublicensable: false
                      territory:
                        - Global
                    properties:
                      additionalTerms:
                        description: >-
                          Additional license parameters or terms the licensor
                          would like to specify
                        example:
                          description: >-
                            All derivative works must maintain similar quality
                            standards as the original work
                          term: Quality Control
                        items:
                          properties:
                            description:
                              type: string
                            term:
                              type: string
                          required:
                            - description
                            - term
                          type: object
                        type: array
                      aiLearningModels:
                        description: >-
                          Whether or not the IP can be used to develop AI
                          learning models. By default, the IP cannot be used for
                          such development.
                        example: false
                        type: boolean
                      alternativeDisputeResolution:
                        description: >-
                          Alternative dispute resolution mechanisms for handling
                          disagreements
                        example:
                          details: >-
                            All disputes will be resolved through binding
                            arbitration in accordance with...
                          method: Arbitration
                        properties:
                          details:
                            type: string
                          method:
                            type: string
                        required:
                          - details
                          - method
                        type: object
                      attribution:
                        description: >-
                          If and how the original author should be credited for
                          usage of the IP. By default, no credit is required.
                        example:
                          instructions: 'Please credit as: Original work by [Author Name]'
                          required: true
                        properties:
                          instructions:
                            type: string
                          required:
                            type: boolean
                        required:
                          - required
                        type: object
                      channelsOfDistribution:
                        description: >-
                          Restrict usage of the IP to certain media formats and
                          channels of distribution. By default, the IP can be
                          used across all possible channels.
                        example: television
                        items:
                          type: string
                        type: array
                      contentStandards:
                        description: >-
                          Set content standards around use of the IP. By
                          default, no standards apply.
                        example: No-Hate
                        items:
                          type: string
                        type: array
                      governingLaw:
                        description: >-
                          The laws of a certain jurisdiction by which this
                          license abides. By default, this is California, USA.
                        example: California, USA
                        type: string
                      restrictionOnCrossPlatformUse:
                        description: >-
                          If true, limits licensing and creation of derivative
                          works solely on the app on which the IP is made
                          available.
                        example: false
                        type: boolean
                      sublicensable:
                        description: >-
                          If true, derivative works can grant the same rights
                          they received under this license to a 3rd party,
                          without approval from the original licensor.
                        example: false
                        type: boolean
                      territory:
                        description: >-
                          Limit usage of the IP to certain regions and/or
                          countries. By default, the IP can be used globally.
                        example: United States
                        items:
                          type: string
                        type: array
                    type: object
                  type:
                    enum:
                      - non-commercial-social-remixing
                    type: string
                  uri:
                    description: >-
                      License terms stored off-chain. If not provided, and if
                      'offChain' is also omitted, this will default to the
                      Non-Commercial Social Remixing license terms.
                    example: ipfs://<CID>
                    type: string
                required:
                  - type
                title: Non-commercial Social Remixing License Terms
                type: object
          type: array
        nftMetadata:
          description: Metadata for the NFT representation of this IP asset
          example:
            description: A unique story NFT
            image: https://example.com/nft/123.png
            name: 'Art #123'
          properties:
            animation_url:
              type: string
            attributes:
              items:
                properties:
                  display_type:
                    type: string
                  trait_type:
                    type: string
                  value:
                    anyOf:
                      - type: number
                      - type: string
                required:
                  - trait_type
                  - value
                type: object
              type: array
            description:
              maxLength: 5000
              type: string
            external_url:
              type: string
            image:
              type: string
            name:
              type: string
            uri:
              type: string
          type: object
        onChain:
          oneOf:
            - description: Response schema for a pending IP asset creation request
              example:
                chain: story-testnet
                contractAddress: '0x123'
                status: pending
              properties:
                chain:
                  description: The chain of the collection
                  example: story-testnet
                  type: string
                contractAddress:
                  description: The address of the collection on the chain
                  example: '0x123'
                  type: string
                status:
                  description: The status of the IP asset on the chain
                  enum:
                    - pending
                  example: pending
                  type: string
              required:
                - chain
                - status
              type: object
            - properties:
                chain:
                  description: The chain of the collection
                  example: story-testnet
                  type: string
                contractAddress:
                  description: The address of the collection on the chain
                  example: '0x123'
                  type: string
                explorerLink:
                  description: The explorer link of the ip asset
                  example: >-
                    https://portal.story.foundation/assets/0xAC6062FF53fa41e61Fe01B89B83d9dB96b5F9280
                  format: uri
                  type: string
                ipAssetId:
                  description: >-
                    The id of the IP asset on the chain. This ID is also the
                    address of the IP Account that is bound to the IP Asset.
                  example: d290f1ee-6c54-4b01-90e6-d701748f0851
                  type: string
                owner:
                  description: The owner of the IP asset
                  example: '0x123'
                  type: string
                status:
                  description: The status of the IP asset on the chain
                  enum:
                    - success
                  example: success
                  type: string
                tokenId:
                  description: The token id of the associatedNFT
                  example: '1'
                  type: string
                txId:
                  description: The transaction id of the IP asset creation on chain
                  example: '0x123'
                  type: string
              required:
                - chain
                - contractAddress
                - ipAssetId
                - owner
                - status
                - tokenId
                - txId
              type: object
      required:
        - actionId
        - derivData
        - id
        - ipAssetMetadata
        - nftMetadata
        - onChain
      type: object

````