Basic example of how to make a UCAN. Note that the issuer always has to be your DID, because the UCAN will be signed with your private key.
import * as wn from "webnative"
// DIDs
const ourDID = await wn.did.ucan()
const otherDID = "did:key:EXAMPLE"
/**
* This can be another UCAN which has a bigger, or equal,
* set of permissions than the UCAN we're building later.
*/
const possibleProof = null // or, other UCAN.
/**
* The UCAN, encoded as a string.
*/
const ucan = await wn.ucan.build({
audience: otherDID,
issuer: ourDID,
lifetimeInSeconds: 60 * 60 * 24, // UCAN expires in 24 hours
proof: possibleProof
})