You could try Helios.
Here is a guide to building transactions: https://www.hyperion-bt.org/Helios-Book/api/building/index.html
The following links will help you define a UTxO containing native assets:
- https://www.hyperion-bt.org/Helios-Book/api/reference/utxo.html
- https://www.hyperion-bt.org/Helios-Book/api/reference/txoutput.html
- https://www.hyperion-bt.org/Helios-Book/api/reference/value.html
- https://www.hyperion-bt.org/Helios-Book/api/reference/assets.html
- https://www.hyperion-bt.org/Helios-Book/api/reference/mintingpolicyhash.html
If you're struggling with using ES imports, then you can try the following import style:
import("/path/to/helios.js").then( helios=>{
const tx = new helios.Tx()
...
})
Note: Helios is more low-level than Lucid/Mesh because you need to take care of calling the Blockfrost API yourself.