Navigation

    Vite Forum
    • Register
    • Login
    • Search
    • Unsolved
    • Solved
    • Recent
    • Tags
    • Popular
    • Groups
    • Github
    1. Home
    2. Lawliet N4Q.org
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Lawliet N4Q.org

    @Lawliet N4Q.org

    SBP

    84
    Reputation
    225
    Posts
    333
    Profile views
    4
    Followers
    0
    Following
    Joined Last Online
    Website www.n4q.org

    Lawliet N4Q.org Follow
    Operator SBP

    Best posts made by Lawliet N4Q.org

    • N4Q.org competes for VITE super node TOP25

      About the N4Q.org SuperNode

      As the first batch of VITE nodes, N4Q has been running stably for more than 3 months. The original node name is YDnode. The super node ranks lower, and is now renamed to N4Q (full name N4Q.org), and is officially ready to compete for super nodes. Name (TOP25), welcome to VITE holders to vote for support.

      Vote reward

      Voting rewards (before entering TOP 25):
      • Each ticket (1VITE vote) will receive 0.0005 VITE rewards, ie 50 VITE rewards per 100,000 votes.
      Voting rewards (after entering TOP 25):
      • Refer to the current SuperNode votes and 2.35 million votes to enter TOP25.
      • 60% of the total daily revenue (by ticket reward + outbound reward) will be issued to the address that votes to support our node.
      • Estimated earnings: Calculated based on the current rewards, assuming a total of 2.4 million votes, the current daily rewards total approximately 2,500 VITEs, 60% of the total rewards are approximately 1500 VITE, 1500/2400000*100000 = 62.5 VITE. That is: 100,000 votes can get about 62.5 VITE per day (much higher than the official node).

      Vote reward method:

      • Voting rewards are automatically issued daily.
      • Daily cycle from 12:13:14 to 12:13:14.
      • The node voting ratio data is counted daily at 16:00, and the reward is automatically executed by the program around 16:05.

      Vote Award Inquiry

      • Check out awards at https://www.n4q.org.

      Cooperation Contact

      • Email: [email protected]

      Media

      • N4Q node official Website: https://www.n4q.org
      • N4Q node official Weibo: https://weibo.com/u/5065499718
      • N4Q node official Twitter: https://twitter.com/N4Q_org
      • N4Q node official Telegram: https://t.me/joinchat/E_3R3BbBt8FTgEgH4Cq4Wg

      Latest award rules:https://forum.vite.net/topic/1332/n4q-org-competes-for-vite-super-node-top25-reward-upgrade

      posted in Questions & Feedbacks
      Lawliet N4Q.org
      Lawliet N4Q.org
    • RE: N4Q.org competes for VITE super node TOP25

      The N4Q SBP 152th cycle voting award has been sent. There are currently 13 VITE addresses voting for N4Q. thanks for your support!

      Reward distribution record:
      Https://testnet.vite.net/account/vite_810a947e89dda3e6b3b0137d1cd7e049be4af6874852a83de6
      Or check on the N4Q website:
      Https://www.n4q.org/reward

      posted in Questions & Feedbacks
      Lawliet N4Q.org
      Lawliet N4Q.org
    • RE: REVIEW OF THE VITE DECENTRALIZED EXCHANGE

      Great job 👍

      posted in General Discussion
      Lawliet N4Q.org
      Lawliet N4Q.org
    • 新DApp《VITE翻倍乐》申请上线

      1.DApp的名称:VITE翻倍乐/VITE To The Moon

      2.DApp的介绍:
      游戏介绍:
      一款简单的猜数字游戏,该数字在游戏中为“倍率”,猜中即按相应用倍率进行奖励。

      游戏规则:
      每次投注前设定投注倍率,最低为1.01倍,最高为99.99倍,游戏出现的结果在0或1.01-99.99倍之间随机,倍率随机数概率与投注玩家以及金额大小均无关系。每次投注以后,开奖倍率大于等于投注倍率时,表示中奖,会根据投注的倍率获得奖励,开奖倍率小于投注倍率则表示未中奖,投注的VITE将不会返还。
      例如,投注10 VITE,倍率设定为1.8,如果开奖结果为1.8或更高,则用户将获得10 * 1.8,即18 的VITE奖励。

      3.上线状态:否

      4.DApp的合约地址:vite_8a50b500773c7abe0ceeb7e6e25a97871868585159d8333cc0
      合约认证链接:https://explorer.vite.net/account/vite_8a50b500773c7abe0ceeb7e6e25a97871868585159d8333cc0

      5.合约代码如下:

      pragma soliditypp ^0.4.2;
      contract ViteBet{
          address owner;
      
          struct BetLimit {
              uint256 lowerLimit;
              uint256 upperLimit;
              bool onActivated;
          }
      
          tokenId[] tokens = ["tti_5649544520544f4b454e6e40"];
          mapping(tokenId => BetLimit) public tokenMap;
          uint16[8] configArray = [360, 2030, 290, 155, 60, 50, 28, 27];
          uint16[9] configArray2 = [0, 101, 133, 600, 1000, 2000, 3000, 6000, 9999];
          uint16 top = 3000;
      
          event win(address indexed addr, uint256 rollTarget, uint256 betAmount, uint256 rollNum, uint256 winAmount);
          event lose(address indexed addr, uint256 rollTarget, uint256 betAmount, uint256 rollNum);
          event suspendBet(address indexed addr, uint256 rollTarget, uint256 betAmount);
      
          constructor() public {
              owner = msg.sender;
              tokenMap["tti_5649544520544f4b454e6e40"].lowerLimit = 1 vite;
              tokenMap["tti_5649544520544f4b454e6e40"].upperLimit = 300 vite;
              tokenMap["tti_5649544520544f4b454e6e40"].onActivated = true;
          }
      
          onMessage () payable {
          }
      
          onMessage configBetLimit(uint256 ll, uint256 ul, bool onActivated) {
              require(owner == msg.sender);
              require(ll > 0 && ll <= ul);
              if (tokenMap[msg.tokenid].lowerLimit == 0)
                  tokens.push(msg.tokenid);
              tokenMap[msg.tokenid].lowerLimit = ll;
              tokenMap[msg.tokenid].upperLimit = ul;
              tokenMap[msg.tokenid].onActivated = onActivated;
          }
      
          onMessage configBet(uint16 val0, uint16 val1, uint16 val2, uint16 top3) {
              require(owner == msg.sender);
              configArray[0] = val0;
              configArray[1] = val1;
              configArray[2] = val2;
              top = top3;
          }
      
          onMessage DrawMoney(uint256 amount) {
              require(owner == msg.sender);
              require(amount <= balance(msg.tokenid));
              msg.sender.transfer(msg.tokenid, amount);
          }
      
          getter getBetLimit(tokenId token) returns(uint256 ll, uint256 ul) {
              return (tokenMap[token].lowerLimit, tokenMap[token].upperLimit);
          }
          getter getBetConfig1() returns(uint16 val0, uint16 val1, uint16 val2) {
              return (configArray[0], configArray[1], configArray[2]);
          }
          getter getBetTop() returns(uint16) {
              return top;
          }
          getter getTokenList() returns(tokenId[] memory) {
              return tokens;
          }
          getter getOnActivated(tokenId token) returns(bool) {
              return tokenMap[token].onActivated;
          }
      
          onMessage BetAndRoll(uint16 rollTargets) payable {
      
              uint256 betAmount = msg.amount;
              address betAddr = msg.sender;
              uint256 ll = tokenMap[msg.tokenid].lowerLimit;
              uint256 ul = tokenMap[msg.tokenid].upperLimit;
      
              bool onActivated = tokenMap[msg.tokenid].onActivated;
      
              require(onActivated);
              require(ll > 0 && ll <= ul);
              require(betAmount >= ll && betAmount <= ul);
              require(rollTargets > 100 && rollTargets < 10000);
      
              uint64 randomNumber = random64();
      
              uint16 matchIndex = 0;
              uint16 totall = 0;
              uint64 y = randomNumber%top;
              
              if (y <= configArray[0]) {
                  matchIndex = 0;
              } else {
      
                  for (uint16 j = uint16(configArray.length-1); j >= 0; j--) {
                      
                      totall += configArray[j];
                      uint64 c = (top-totall);
                      if (y > c) {
                          matchIndex = j;
                          break;
                      }
                  }
              }
      
              uint64 rollNum = 0;        
              if (matchIndex > 0) {
                  
                  uint16 start = configArray2[matchIndex];
                  uint16 end = configArray2[matchIndex+1];
                  uint16 ab = end - start;
                  
                  rollNum = (randomNumber/10000)%ab;
                  rollNum += start;
              }
      
              if (rollNum >= rollTargets) {
                  uint256 winAmount = betAmount * rollTargets / 100;
                  betAddr.transfer(msg.tokenid, winAmount);
                  emit win(betAddr, rollTargets, betAmount, rollNum, winAmount);
              } else {
                  emit lose(betAddr, rollTargets, betAmount, rollNum);
              }
          }
      
      }
      
      posted in Apply for Listing
      Lawliet N4Q.org
      Lawliet N4Q.org
    • RE: Vite Developer Committee

      DECLARATION OF CANDIDACY

      Name:
      Lawliet

      Discord username:
      Lawliet

      Telegram username:
      Lawliet

      How long you've been with Vite community:
      Since the beginning of Vite

      Why you are interested in becoming a member of the Vite Developer Committee:
      As an early investor in Vite, helping the Vite community build a rich product ecosystem

      What contribution you will be able to bring to this committee:
      As an Internet technology practitioner, I hope to help Vite build a developer community together and truly participate in the construction of the Vite development ecosystem.

      Other information about you (Optional, such as example ideas of new projects to build on Vite, or your past involvement in tech):
      I developed two Vite-based Dapp games and a Vite blockchain browser (ViteScan.io), and ran Vite SPB.

      posted in Tech
      Lawliet N4Q.org
      Lawliet N4Q.org

    Latest posts made by Lawliet N4Q.org

    • RE: Vite Developer Committee

      DECLARATION OF CANDIDACY

      Name:
      Lawliet

      Discord username:
      Lawliet

      Telegram username:
      Lawliet

      How long you've been with Vite community:
      Since the beginning of Vite

      Why you are interested in becoming a member of the Vite Developer Committee:
      As an early investor in Vite, helping the Vite community build a rich product ecosystem

      What contribution you will be able to bring to this committee:
      As an Internet technology practitioner, I hope to help Vite build a developer community together and truly participate in the construction of the Vite development ecosystem.

      Other information about you (Optional, such as example ideas of new projects to build on Vite, or your past involvement in tech):
      I developed two Vite-based Dapp games and a Vite blockchain browser (ViteScan.io), and ran Vite SPB.

      posted in Tech
      Lawliet N4Q.org
      Lawliet N4Q.org
    • Introduction of ViteX Operator [N4Q]

      Introduction of ViteX Operator [N4Q]

      Operator name 👇
      N4Q

      Logo 👇
      logo-black.png

      Operator introduction 👇
      The N4Q team has been paying attention to the progress and development of Vite since the launch of Vite's public chain project. With the continuous improvement of Vite's infrastructure, N4Q is constantly looking for opportunities to contribute to Vite's ecology. N4Q is currently actively pursuing all aspects. Investing in the ecological construction of Vite, such as: N4Q is also operating the super node of Vite, incubating DAPP based on Vite chain, etc. The N4Q team will look for the potential currency to the vitex, and choose not to go to the exchange or It is an undervalued currency.

      Gateway service 👇
      Not available

      Trading pair 👇
      To Be Determined

      Contact of Customer Service 👇
      [email protected]

      Website and media 👇
      http://www.n4q.org

      posted in Operator Introduction
      Lawliet N4Q.org
      Lawliet N4Q.org
    • 新DApp《骰子游戏》申请上线

      1.DApp的名称:骰子游戏/Dice Game

      2.DApp的介绍:
      游戏介绍:
      骰子游戏币圈热门玩法,欢迎体验!

      游戏规则:
      每次投注前选择预测的点数,可选择大于指定点数或小于指定点数,界面中会展示出预测点数对应的胜率与赔率。投注后开奖点数符合预测点数范围则为中奖。
      骰子开奖点数与投注玩家及金额大小均无关系,采用Vite公有链生成随机数进取余计算,中奖概率公开公平。

      3.上线状态:否

      4.DApp的合约地址:vite_9f983edba1c3ffc142e5b7aaa8bdf20381fa81f8433c188381
      源代码已认证:https://explorer.vite.net/account/vite_9f983edba1c3ffc142e5b7aaa8bdf20381fa81f8433c188381

      5.合约代码如下:

      pragma soliditypp ^0.4.2;
      contract ViteBet {
          address owner;
      
          struct BetLimit {
              uint256 lowerLimit;
              uint256 upperLimit;
              uint256 tipPer;
          }
      
          tokenId[] tokens = ["tti_5649544520544f4b454e6e40"];
          mapping(tokenId => BetLimit) public tokenMap;
      
          event win(address indexed addr, uint8 betType, uint256 rollTarget, uint256 betAmount, uint64 random64, uint64 rollNum, uint256 winAmount);
          event lose(address indexed addr, uint8 betType, uint256 rollTarget, uint256 betAmount, uint64 random64, uint64 rollNum);
          event suspendBet(address indexed addr, uint8 betType, uint256 rollTarget, uint256 betAmount);
      
          constructor() public {
              owner = msg.sender;
              tokenMap["tti_5649544520544f4b454e6e40"].lowerLimit = 1 vite;
              tokenMap["tti_5649544520544f4b454e6e40"].upperLimit = 5000 vite;
              tokenMap["tti_5649544520544f4b454e6e40"].tipPer = 4;
          }
      
          onMessage () payable {}
      
          onMessage configBetLimit(uint256 ll, uint256 ul, uint256 tp) {
              require(owner == msg.sender);
              require(ll > 0 && ll <= ul);
              require(tp >= 0 && tp <= 20);
              if (tokenMap[msg.tokenid].lowerLimit == 0)
                  tokens.push(msg.tokenid);
              tokenMap[msg.tokenid].lowerLimit = ll;
              tokenMap[msg.tokenid].upperLimit = ul;
              tokenMap[msg.tokenid].tipPer = tp;
          }
      
          onMessage DrawMoney(uint256 amount) {
              require(owner == msg.sender);
              require(amount <= balance(msg.tokenid));
              msg.sender.transfer(msg.tokenid, amount);
          }
      
          getter getBetLimit(tokenId token) returns(uint256 ll, uint256 ul, uint256 tipPer) {
              return (tokenMap[token].lowerLimit, tokenMap[token].upperLimit, tokenMap[token].tipPer);
          }
      
          getter getTokenList() returns(tokenId[] memory) {
              return tokens;
          }
      
          onMessage BetAndRoll(uint8 betType, uint256 rollTargets) payable {
              uint256 betAmount = msg.amount;
              address betAddr = msg.sender;
              uint256 ll = tokenMap[msg.tokenid].lowerLimit;
              uint256 ul = tokenMap[msg.tokenid].upperLimit;
              require(ll > 0 && ll <= ul);
              require(betAmount >= ll && betAmount <= ul);
              require(rollTargets >= 4 && rollTargets <= 95);
              require(betAmount == 1 vite || betAmount == 10 vite || betAmount == 50 vite || betAmount == 100 vite || betAmount == 500 vite || betAmount == 1000 vite || betAmount == 5000 vite);
      
              require(betType == 0 || betType == 1);
      
              uint64 randomNumber = random64();
              uint64 rollNum = randomNumber % 100;
              bool winBet = false;
              uint256 winAmount = 0;
      
              if (betType == 0) {
                  if (rollTargets > rollNum) {
                      winBet = true;
                      winAmount = betAmount * 100 / (rollTargets) * (100 - tokenMap[msg.tokenid].tipPer) / 100;
                  }
              } else {
                  if (rollTargets < rollNum) {
                      winBet = true;
                      winAmount = betAmount * 100 / (99 - rollTargets) * (100 - tokenMap[msg.tokenid].tipPer) / 100;
                  }
              }
      
              if (winBet == false) {
                  emit lose(betAddr, betType, rollTargets, betAmount, randomNumber, rollNum);
              } else if (winBet == true && winAmount > balance(msg.tokenid)) {
                  betAddr.transfer(msg.tokenid, betAmount);
                  emit suspendBet(betAddr, betType, rollTargets, betAmount);
              } else {
                  betAddr.transfer(msg.tokenid, winAmount);
                  emit win(betAddr, betType, rollTargets, betAmount, randomNumber, rollNum, winAmount);
              }
          }
      
      }
      
      posted in Apply for Listing
      Lawliet N4Q.org
      Lawliet N4Q.org
    • 新DApp《VITE翻倍乐》申请上线

      1.DApp的名称:VITE翻倍乐/VITE To The Moon

      2.DApp的介绍:
      游戏介绍:
      一款简单的猜数字游戏,该数字在游戏中为“倍率”,猜中即按相应用倍率进行奖励。

      游戏规则:
      每次投注前设定投注倍率,最低为1.01倍,最高为99.99倍,游戏出现的结果在0或1.01-99.99倍之间随机,倍率随机数概率与投注玩家以及金额大小均无关系。每次投注以后,开奖倍率大于等于投注倍率时,表示中奖,会根据投注的倍率获得奖励,开奖倍率小于投注倍率则表示未中奖,投注的VITE将不会返还。
      例如,投注10 VITE,倍率设定为1.8,如果开奖结果为1.8或更高,则用户将获得10 * 1.8,即18 的VITE奖励。

      3.上线状态:否

      4.DApp的合约地址:vite_8a50b500773c7abe0ceeb7e6e25a97871868585159d8333cc0
      合约认证链接:https://explorer.vite.net/account/vite_8a50b500773c7abe0ceeb7e6e25a97871868585159d8333cc0

      5.合约代码如下:

      pragma soliditypp ^0.4.2;
      contract ViteBet{
          address owner;
      
          struct BetLimit {
              uint256 lowerLimit;
              uint256 upperLimit;
              bool onActivated;
          }
      
          tokenId[] tokens = ["tti_5649544520544f4b454e6e40"];
          mapping(tokenId => BetLimit) public tokenMap;
          uint16[8] configArray = [360, 2030, 290, 155, 60, 50, 28, 27];
          uint16[9] configArray2 = [0, 101, 133, 600, 1000, 2000, 3000, 6000, 9999];
          uint16 top = 3000;
      
          event win(address indexed addr, uint256 rollTarget, uint256 betAmount, uint256 rollNum, uint256 winAmount);
          event lose(address indexed addr, uint256 rollTarget, uint256 betAmount, uint256 rollNum);
          event suspendBet(address indexed addr, uint256 rollTarget, uint256 betAmount);
      
          constructor() public {
              owner = msg.sender;
              tokenMap["tti_5649544520544f4b454e6e40"].lowerLimit = 1 vite;
              tokenMap["tti_5649544520544f4b454e6e40"].upperLimit = 300 vite;
              tokenMap["tti_5649544520544f4b454e6e40"].onActivated = true;
          }
      
          onMessage () payable {
          }
      
          onMessage configBetLimit(uint256 ll, uint256 ul, bool onActivated) {
              require(owner == msg.sender);
              require(ll > 0 && ll <= ul);
              if (tokenMap[msg.tokenid].lowerLimit == 0)
                  tokens.push(msg.tokenid);
              tokenMap[msg.tokenid].lowerLimit = ll;
              tokenMap[msg.tokenid].upperLimit = ul;
              tokenMap[msg.tokenid].onActivated = onActivated;
          }
      
          onMessage configBet(uint16 val0, uint16 val1, uint16 val2, uint16 top3) {
              require(owner == msg.sender);
              configArray[0] = val0;
              configArray[1] = val1;
              configArray[2] = val2;
              top = top3;
          }
      
          onMessage DrawMoney(uint256 amount) {
              require(owner == msg.sender);
              require(amount <= balance(msg.tokenid));
              msg.sender.transfer(msg.tokenid, amount);
          }
      
          getter getBetLimit(tokenId token) returns(uint256 ll, uint256 ul) {
              return (tokenMap[token].lowerLimit, tokenMap[token].upperLimit);
          }
          getter getBetConfig1() returns(uint16 val0, uint16 val1, uint16 val2) {
              return (configArray[0], configArray[1], configArray[2]);
          }
          getter getBetTop() returns(uint16) {
              return top;
          }
          getter getTokenList() returns(tokenId[] memory) {
              return tokens;
          }
          getter getOnActivated(tokenId token) returns(bool) {
              return tokenMap[token].onActivated;
          }
      
          onMessage BetAndRoll(uint16 rollTargets) payable {
      
              uint256 betAmount = msg.amount;
              address betAddr = msg.sender;
              uint256 ll = tokenMap[msg.tokenid].lowerLimit;
              uint256 ul = tokenMap[msg.tokenid].upperLimit;
      
              bool onActivated = tokenMap[msg.tokenid].onActivated;
      
              require(onActivated);
              require(ll > 0 && ll <= ul);
              require(betAmount >= ll && betAmount <= ul);
              require(rollTargets > 100 && rollTargets < 10000);
      
              uint64 randomNumber = random64();
      
              uint16 matchIndex = 0;
              uint16 totall = 0;
              uint64 y = randomNumber%top;
              
              if (y <= configArray[0]) {
                  matchIndex = 0;
              } else {
      
                  for (uint16 j = uint16(configArray.length-1); j >= 0; j--) {
                      
                      totall += configArray[j];
                      uint64 c = (top-totall);
                      if (y > c) {
                          matchIndex = j;
                          break;
                      }
                  }
              }
      
              uint64 rollNum = 0;        
              if (matchIndex > 0) {
                  
                  uint16 start = configArray2[matchIndex];
                  uint16 end = configArray2[matchIndex+1];
                  uint16 ab = end - start;
                  
                  rollNum = (randomNumber/10000)%ab;
                  rollNum += start;
              }
      
              if (rollNum >= rollTargets) {
                  uint256 winAmount = betAmount * rollTargets / 100;
                  betAddr.transfer(msg.tokenid, winAmount);
                  emit win(betAddr, rollTargets, betAmount, rollNum, winAmount);
              } else {
                  emit lose(betAddr, rollTargets, betAmount, rollNum);
              }
          }
      
      }
      
      posted in Apply for Listing
      Lawliet N4Q.org
      Lawliet N4Q.org
    • RE: REVIEW OF THE VITE DECENTRALIZED EXCHANGE

      Great job 👍

      posted in General Discussion
      Lawliet N4Q.org
      Lawliet N4Q.org
    • RE: N4Q.org competes for VITE super node TOP25

      The N4Q SBP 153th cycle voting award has been sent. There are currently 37 VITE addresses voting for N4Q. thanks for your support!

      Reward distribution record:
      Https://testnet.vite.net/account/vite_810a947e89dda3e6b3b0137d1cd7e049be4af6874852a83de6
      Or check on the N4Q website:
      Https://www.n4q.org/reward

      posted in Questions & Feedbacks
      Lawliet N4Q.org
      Lawliet N4Q.org
    • RE: N4Q.org competes for VITE super node TOP25

      The N4Q SBP 152th cycle voting award has been sent. There are currently 13 VITE addresses voting for N4Q. thanks for your support!

      Reward distribution record:
      Https://testnet.vite.net/account/vite_810a947e89dda3e6b3b0137d1cd7e049be4af6874852a83de6
      Or check on the N4Q website:
      Https://www.n4q.org/reward

      posted in Questions & Feedbacks
      Lawliet N4Q.org
      Lawliet N4Q.org
    • N4Q.org competes for VITE super node TOP25

      About the N4Q.org SuperNode

      As the first batch of VITE nodes, N4Q has been running stably for more than 3 months. The original node name is YDnode. The super node ranks lower, and is now renamed to N4Q (full name N4Q.org), and is officially ready to compete for super nodes. Name (TOP25), welcome to VITE holders to vote for support.

      Vote reward

      Voting rewards (before entering TOP 25):
      • Each ticket (1VITE vote) will receive 0.0005 VITE rewards, ie 50 VITE rewards per 100,000 votes.
      Voting rewards (after entering TOP 25):
      • Refer to the current SuperNode votes and 2.35 million votes to enter TOP25.
      • 60% of the total daily revenue (by ticket reward + outbound reward) will be issued to the address that votes to support our node.
      • Estimated earnings: Calculated based on the current rewards, assuming a total of 2.4 million votes, the current daily rewards total approximately 2,500 VITEs, 60% of the total rewards are approximately 1500 VITE, 1500/2400000*100000 = 62.5 VITE. That is: 100,000 votes can get about 62.5 VITE per day (much higher than the official node).

      Vote reward method:

      • Voting rewards are automatically issued daily.
      • Daily cycle from 12:13:14 to 12:13:14.
      • The node voting ratio data is counted daily at 16:00, and the reward is automatically executed by the program around 16:05.

      Vote Award Inquiry

      • Check out awards at https://www.n4q.org.

      Cooperation Contact

      • Email: [email protected]

      Media

      • N4Q node official Website: https://www.n4q.org
      • N4Q node official Weibo: https://weibo.com/u/5065499718
      • N4Q node official Twitter: https://twitter.com/N4Q_org
      • N4Q node official Telegram: https://t.me/joinchat/E_3R3BbBt8FTgEgH4Cq4Wg

      Latest award rules:https://forum.vite.net/topic/1332/n4q-org-competes-for-vite-super-node-top25-reward-upgrade

      posted in Questions & Feedbacks
      Lawliet N4Q.org
      Lawliet N4Q.org