Transmitter Agent Guide

Become Transmitter Agent

Please get in touch with us to complete the KYC process and register as an Agent, enabling you to deploy Transmitter agents.

Stake $NGL with StakingManager Contract

Each instance of a Transmitter agent requires its own distinct personal stake, the minimum amount of which varies depending on the protocol the Transmitter will work for.

The Agent should execute this function through the StakingManager smart contract.

function depositPersonalStake(uint _amount) external

Get Delegated $NGL

The selection process for new Receivers to work on a protocol considers the combined stake of Receivers (self-stake + delegated) in $NGL. Therefore, when the protocol requires fewer Receivers than those prepared for the next round, they are ranked by their stake size.

Those with the smallest stakes may not be selected. This highlights the potential importance of having not just a self-stake but also delegated stakes.

Register Receiver Address

Register a Receiver address for a specified protocol by invoking the declareProtocolSupport function of the AgentManager contract:

/// @notice Declare protocol support by agent and set transmitter address generated by agent for protocol
    /// @param protocolId - protocol id
    /// @param transmitterAddress - Agent's transmitter address for the protocol
    function declareProtocolSupport(
        bytes32 protocolId,
        address transmitterAddress
    ) external isApprovedAgent

Claim Rewards

  /// @notice Claim agent rewards from last claim round to current round
    function claimAgentRewards() external nonReentrant

This function in the StakingManager contract transfers all unclaimed rewards to a reward address, as specified by the Agent in the AgentManager contract.

Last updated