Creating Channel on dApp / Server / Smart Contract
The creation of channel is a one time process and as such is recommended to do it either from EPNS dApp, EPNS JS library or a custom JS library of your choice. Information about the channel payload specs is described here.
Interfacing directly via smart contract to protocol to create a channel can also be done by calling it
  • with public key registry function
createChannelWithFeesAndPublicKey(ChannelType _channelType, bytes calldata _identity, bytes calldata _publickey) external
  • without public key registry function
createChannelWithFees(ChannelType _channelType, bytes calldata _identity)
Parameter
Sub Field
Description
_channelType
The type of channel to create
_identity
The identity field consists of the following parameters joined together with a delimiter.
payloadtype
Payload type not only indicates the content of notification but also the storage implementation stored.
payloadhash
Indicates the hash of the payload through which payload data can be obtained.
_publickey
Pass the publickey of the wallet in bytes
ChannelType
Description
0
Non Interest Bearing, Protocol Reserved Channel for Information
1
Special Interest Bearing Protocol Reserved Opt in Channel for Promotion
2
Interest Bearing, Open Channel
3
Interest Bearing, Mutual Channel
payloadtype
Description
1
Represents storage on IPFS with letters Qm happen to correspond with the algorithm (SHA-256) and length (32 bytes) used by IPFS.
The delimiter + is used for joining the fields together, this is done to optimize the payload written on chain.
Example _identity: 1+QmXSuc8iVsNFtsqrFvgHWpa6tJXFLoq2QEWYu2aS6KF8ux
Example _publickey: 0x187c0568118be8032ece2499135d16a69b1da955125185c195a900d45eed0a325f2a7bf3ce6eb01375011db55d3a311fd84c2a17d0476edf8c6290f36ed2280b
Always recommended to interface with EPNS JS Library for abstracting these details out.
This feature of protocol might change for further optimizations in the future.
Copy link