ETH Price: $3,140.35 (+2.10%)
 

Overview

Max Total Supply

532,476,763.336282621867838809 RNDR

Holders

83,081 ( 0.010%)

Market

Price

$5.57 @ 0.001774 ETH (+0.74%)

Onchain Market Cap

$2,965,895,571.78

Circulating Supply Market Cap

$2,886,403,770.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000841156428692 RNDR

Value
$0.00 ( ~0 Eth) [0.0000%]
0x00849d2b15c202917db9d5496efaedfcc73dae55
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

RNDR (Render Network) bridges GPUs across the world in order to provide much-needed power to artists, studios, and developers who rely on high-quality rendering to power their creations. The mission is to bridge the gap between GPU supply/demand through the use of distributed GPU computing.

Market

Volume (24H):$219,524,298.00
Market Capitalization:$2,886,403,770.00
Circulating Supply:517,716,590.00 RNDR
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Binance
RENDER-USDT$5.60
0.0017822 Eth
$46,787,263.00
8,329,833.030 RENDER
23.5200%
2
Websea
RENDER-USDT$5.54
0.0017623 Eth
$16,601,880.00
0.000 RENDER
0.0000%
3
Ourbit
RENDER-USDT$5.55
0.0017671 Eth
$12,347,215.00
2,198,692.130 RENDER
6.2082%
4
Coinbase Exchange
RENDER-USD$5.55
0.0017656 Eth
$11,452,696.00
2,065,037.230 RENDER
5.8308%
5
Coinbase Exchange
RNDR-USD$5.54
0.0017646 Eth
$11,262,611.00
2,031,202.310 RNDR
5.7353%
6
Gate.io
RENDER-USDT$5.55
0.0017674 Eth
$10,581,231.00
1,877,962.980 RENDER
5.3026%
7
Bybit
RENDER-USDT$5.53
0.0017626 Eth
$8,357,526.00
1,486,474.350 RENDER
4.1972%
8
WhiteBIT
RENDER-USDT$5.55
0.0017679 Eth
$8,283,100.00
1,491,462.620 RENDER
4.2113%
9
Bitrue
RENDER-USDC$5.55
0.0017655 Eth
$8,076,960.00
1,455,923.830 RENDER
4.1109%
10
OKX
RENDER-USDT$5.54
0.0017638 Eth
$6,627,028.00
1,193,833.464 RENDER
3.3709%
11
BTCC
RENDER-USDT$5.55
0.0017654 Eth
$6,580,290.00
1,163,204.960 RENDER
3.2844%
12
DigiFinex
RENDER-USDT$5.53
0.0017627 Eth
$5,955,173.00
1,076,006.440 RENDER
3.0382%
13
MEXC
RENDER-USDT$5.54
0.0017638 Eth
$5,784,003.00
1,043,587.070 RENDER
2.9467%
14
Bitget
RENDER-USDT$5.53
0.0017626 Eth
$4,687,403.00
840,014.210 RENDER
2.3719%
15
Toobit
RENDER-USDT$5.54
0.0017639 Eth
$4,218,690.00
750,537.230 RENDER
2.1192%
16
Bitunix
RENDER-USDT$5.54
0.0017644 Eth
$3,724,280.00
671,807.240 RENDER
1.8969%
17
HTX
RENDER-USDT$5.54
0.0017642 Eth
$3,667,416.00
646,426.389 RENDER
1.8252%
18
Bitget
RENDER-USDC$5.53
0.0017632 Eth
$3,640,929.00
639,992.770 RENDER
1.8071%
19
Binance
RENDER-USDC$5.53
0.0017625 Eth
$3,404,581.00
604,767.110 RENDER
1.7076%
20
Kraken
RENDER-USD$5.53
0.0017623 Eth
$2,705,674.00
489,183.510 RENDER
1.3813%
21
Hibt
RENDER-USDT$5.54
0.0017643 Eth
$2,384,907.00
424,494.618 RENDER
1.1986%
22
KuCoin
RENDER-USDT$5.53
0.0017622 Eth
$2,232,864.00
403,555.860 RENDER
1.1395%
23
AscendEX (BitMax)
RENDER-USDT$5.56
0.0017696 Eth
$2,131,401.00
383,684.700 RENDER
1.0834%
24
LBank
RENDER-USDT$5.56
0.0017704 Eth
$2,053,648.00
369,652.900 RENDER
1.0437%
25
Coinbase Exchange
RNDR-USDT$5.54
0.0017647 Eth
$1,824,014.00
328,950.570 RNDR
0.9288%
26
Raydium (CLMM)
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-SO11111111111111111111111111111111111111112$5.55
0.0017682 Eth
$1,591,368.00
281,946.550 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.7961%
27
Bitvavo
RENDER-EUR$5.60
0.0017799 Eth
$1,569,451.00
280,326.535 RENDER
0.7915%
28
Hotcoin
RENDER-USDT$5.55
0.0017659 Eth
$1,124,545.00
202,731.770 RENDER
0.5724%
29
Binance
RENDER-TRY$5.55
0.0017680 Eth
$1,078,587.00
191,584.640 RENDER
0.5410%
30
Orca
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-SO11111111111111111111111111111111111111112$5.56
0.0017731 Eth
$1,006,652.00
178,375.666 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.5037%
31
Uniswap V3 (Ethereum)
0X6DE037EF9AD2725EB40118BB1702EBB27E4AEB24-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$5.55
0.0017677 Eth
$834,912.00
148,281.433 0X6DE037EF9AD2725EB40118BB1702EBB27E4AEB24
0.4187%
32
BingX
RENDER-USDT$5.53
0.0017633 Eth
$717,641.00
127,817.246 RENDER
0.3609%
33
OrangeX
RENDER-USDT$5.54
0.0017645 Eth
$682,506.00
122,152.220 RENDER
0.3449%
34
PointPay
RENDER-USDT$5.53
0.0017614 Eth
$619,790.00
110,299.493 RENDER
0.3114%
35
BVOX
RENDER-USDT$5.60
0.0017823 Eth
$597,818.00
105,476.370 RENDER
0.2978%
36
Phemex
RENDER-USDT$5.53
0.0017616 Eth
$597,753.00
108,023.110 RENDER
0.3050%
37
Bitrue
RENDER-USDT$5.54
0.0017645 Eth
$488,657.00
88,151.750 RENDER
0.2489%
38
CoinEx
RENDER-USDT$5.58
0.0017795 Eth
$449,307.00
79,818.364 RENDER
0.2254%
39
BitMart
RENDER-USDT$5.55
0.0017694 Eth
$427,516.00
76,986.200 RENDER
0.2174%
40
Binance
RENDER-FDUSD$5.60
0.0017849 Eth
$400,703.00
70,581.270 RENDER
0.1993%
41
WEEX
RENDER-USDT$5.62
0.0017905 Eth
$400,500.00
71,179.310 RENDER
0.2010%
42
Icrypex
RENDER-USDT$5.53
0.0017611 Eth
$364,225.00
65,810.560 RENDER
0.1858%
43
BitDelta
RENDER-USDT$5.55
0.0017678 Eth
$359,884.00
63,484.860 RENDER
0.1793%
44
Kraken
RENDER-EUR$5.53
0.0017635 Eth
$355,156.00
64,168.724 RENDER
0.1812%
45
Uniswap V3 (Ethereum)
0X6DE037EF9AD2725EB40118BB1702EBB27E4AEB24-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$5.56
0.0017692 Eth
$313,768.00
55,384.344 0X6DE037EF9AD2725EB40118BB1702EBB27E4AEB24
0.1564%
46
CoinW
RENDER-USDT$5.56
0.0017750 Eth
$309,072.00
55,547.080 RENDER
0.1568%
47
Bitazza
RENDER-USDT$5.54
0.0017632 Eth
$279,649.00
49,302.200 RENDER
0.1392%
48
Uniswap V3 (Polygon)
0X61299774020DA444AF134C82FA83E3810B309991-0X0D500B1D8E8EF31E21C99D1DB9A6444D3ADF1270$5.54
0.0017642 Eth
$279,550.00
49,268.736 0X61299774020DA444AF134C82FA83E3810B309991
0.1391%
49
WhiteBIT
RENDER-TRY$5.54
0.0017627 Eth
$260,365.00
47,019.150 RENDER
0.1328%
50
Orca
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-EPJFWDD5AUFQSSQEM2QN1XZYBAPC8G4WEGGKZWYTDT1V$5.54
0.0017651 Eth
$232,272.00
41,335.550 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.1167%
51
WhiteBIT
RENDER-BTC$5.54
0.0017640 Eth
$184,925.00
33,371.470 RENDER
0.0942%
52
CoinTR
RENDER-TRY$5.56
0.0017684 Eth
$161,713.00
28,473.880 RENDER
0.0804%
53
WEEX
RENDER-USDC$5.61
0.0017853 Eth
$154,660.00
27,507.100 RENDER
0.0777%
54
bitcastle
RENDER-USDT$5.53
0.0017628 Eth
$137,914.00
24,558.130 RENDER
0.0693%
55
CoinTR
RENDER-USDT$5.54
0.0017658 Eth
$127,099.00
22,364.170 RENDER
0.0631%
56
TokoCrypto
RENDER-USDT$5.60
0.0017821 Eth
$122,600.00
21,909.540 RENDER
0.0619%
57
Raydium (CLMM)
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-EPJFWDD5AUFQSSQEM2QN1XZYBAPC8G4WEGGKZWYTDT1V$5.54
0.0017633 Eth
$118,468.00
21,112.327 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0596%
58
Bitstamp
RNDR-USD$5.60
0.0017842 Eth
$118,166.00
21,093.460 RNDR
0.0596%
59
Gemini
RNDR-USD$5.56
0.0017708 Eth
$105,073.00
18,898.089 RNDR
0.0534%
60
Coinbase Exchange
RNDR-EUR$5.59
0.0017799 Eth
$102,457.00
18,319.610 RNDR
0.0517%
61
Uniswap V2 (Ethereum)
0X6DE037EF9AD2725EB40118BB1702EBB27E4AEB24-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$5.58
0.0017784 Eth
$97,584.00
17,274.013 0X6DE037EF9AD2725EB40118BB1702EBB27E4AEB24
0.0488%
62
Orca
NOSXBVOACTTYDLVKY6CSB4AC8JCDQKKAAWYTX2ZMOO7-RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF$5.54
0.0017651 Eth
$87,519.00
41,889.779 NOSXBVOACTTYDLVKY6CSB4AC8JCDQKKAAWYTX2ZMOO7
0.1183%
63
Crypto.com Exchange
RENDER-USDT$5.54
0.0017646 Eth
$82,036.00
14,800.110 RENDER
0.0418%
64
Crypto.com Exchange
RENDER-USD$5.55
0.0017673 Eth
$77,250.00
13,914.920 RENDER
0.0393%
65
Meteora
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-SO11111111111111111111111111111111111111112$5.54
0.0017629 Eth
$76,863.00
13,413.730 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0379%
66
Binance
RENDER-EUR$5.61
0.0017868 Eth
$75,602.00
13,443.700 RENDER
0.0380%
67
BloFin
RENDER-USDT$5.55
0.0017666 Eth
$59,563.00
10,596.861 RENDER
0.0299%
68
Bitstamp
RNDR-EUR$5.62
0.0017893 Eth
$53,336.00
9,493.540 RNDR
0.0268%
69
Tapbit
RENDER-USDT$5.55
0.0017671 Eth
$46,280.00
8,159.920 RENDER
0.0230%
70
Binance
RENDER-BRL$5.54
0.0017638 Eth
$45,968.00
8,126.030 RENDER
0.0229%
71
Foxbit
RENDER-BRL$5.62
0.0017898 Eth
$41,279.00
7,429.040 RENDER
0.0210%
72
Binance US
RENDER-USDT$5.55
0.0017677 Eth
$39,342.00
7,084.341 RENDER
0.0200%
73
Raydium (CLMM)
SO11111111111111111111111111111111111111112-RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF$5.54
0.0017632 Eth
$38,413.00
283,337.480 SO11111111111111111111111111111111111111112
0.8000%
74
Bitkub
RNDR-THB$5.62
0.0017897 Eth
$17,857.75
3,175.730 RNDR
0.0090%
75
Upbit
RENDER-BTC$5.59
0.0017816 Eth
$16,084.05
2,876.607 RENDER
0.0081%
76
HashKey Global
RENDER-USDT$5.54
0.0017622 Eth
$15,557.58
2,744.640 RENDER
0.0077%
77
Uniswap V3 (Polygon)
0X61299774020DA444AF134C82FA83E3810B309991-0X0D500B1D8E8EF31E21C99D1DB9A6444D3ADF1270$5.60
0.0017830 Eth
$13,952.30
2,441.100 0X61299774020DA444AF134C82FA83E3810B309991
0.0069%
78
Uniswap V3 (Polygon)
0X61299774020DA444AF134C82FA83E3810B309991-0X0D500B1D8E8EF31E21C99D1DB9A6444D3ADF1270$5.60
0.0017835 Eth
$13,761.58
2,405.311 0X61299774020DA444AF134C82FA83E3810B309991
0.0068%
79
Bitlo
RENDER-TRY$5.56
0.0017689 Eth
$12,401.67
2,175.754 RENDER
0.0061%
80
Mercado Bitcoin
RNDR-BRL$5.57
0.0017730 Eth
$12,196.00
2,190.733 RNDR
0.0062%
81
CoinEx
RENDER-BTC$5.56
0.0017712 Eth
$11,636.64
2,019.107 RENDER
0.0057%
82
Kanga
RENDER-USDT$5.55
0.0017680 Eth
$11,447.96
0.000 RENDER
0.0000%
83
CoinEx
RENDER-USDC$5.57
0.0017736 Eth
$7,802.98
1,373.674 RENDER
0.0039%
84
CEX.IO
RNDR-USD$5.53
0.0017620 Eth
$7,359.60
1,287.518 RNDR
0.0036%
85
Meteora
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-ES9VMFRZACERMJFRF4H2FYD4KCONKY11MCCE8BENWNYB$5.57
0.0017726 Eth
$5,616.91
1,001.814 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0028%
86
Uniswap V3 (Polygon)
0X61299774020DA444AF134C82FA83E3810B309991-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$5.56
0.0017694 Eth
$5,561.59
980.499 0X61299774020DA444AF134C82FA83E3810B309991
0.0028%
87
Meteora
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-BZLBGTNCSFFOTH2GYDTWR7E4IMWZPR5JQCUUGEWR646K$5.51
0.0017526 Eth
$4,363.16
784.074 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0022%
88
NovaDAX
RENDER-BRL$5.65
0.0017981 Eth
$4,050.78
717.080 RENDER
0.0020%
89
Gate.io
RENDER-USDC$5.65
0.0018007 Eth
$3,274.29
584.880 RENDER
0.0017%
90
TokoCrypto
RENDER-BTC$5.54
0.0017659 Eth
$1,224.33
220.825 RENDER
0.0006%
91
Uniswap V3 (Polygon)
0X61299774020DA444AF134C82FA83E3810B309991-0XC3C7D422809852031B44AB29EEC9F1EFF2A58756$5.56
0.0017700 Eth
$1,011.38
170.238 0X61299774020DA444AF134C82FA83E3810B309991
0.0005%
92
Backpack Exchange
RENDER-USDC$5.61
0.0017863 Eth
$885.14
157.430 RENDER
0.0004%
93
Uniswap V3 (Polygon)
0X61299774020DA444AF134C82FA83E3810B309991-0XC2132D05D31C914A87C6611C10748AEB04B58E8F$5.64
0.0017963 Eth
$795.94
136.121 0X61299774020DA444AF134C82FA83E3810B309991
0.0004%
94
Meteora
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-SO11111111111111111111111111111111111111112$5.60
0.0017815 Eth
$789.95
139.505 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0004%
95
Orca
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-SO11111111111111111111111111111111111111112$5.54
0.0017662 Eth
$668.65
118.383 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0003%
96
Orca
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-EPJFWDD5AUFQSSQEM2QN1XZYBAPC8G4WEGGKZWYTDT1V$5.57
0.0017720 Eth
$456.38
81.891 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0002%
97
Uniswap V3 (Polygon)
0X61299774020DA444AF134C82FA83E3810B309991-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174$5.60
0.0017845 Eth
$416.51
73.667 0X61299774020DA444AF134C82FA83E3810B309991
0.0002%
98
Meteora
RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF-EPJFWDD5AUFQSSQEM2QN1XZYBAPC8G4WEGGKZWYTDT1V$5.57
0.0017727 Eth
$415.79
74.199 RNDRIZKT3MK1IIMDXRDWABCF7ZG7AR5T4NUD4EKHBOF
0.0002%
99
CEX.IO
RNDR-USDT$5.53
0.0017614 Eth
$297.63
52.945 RNDR
0.0001%
100
WOO X
RENDER-USDT$5.53
0.0017614 Eth
$255.10
46.120 RENDER
0.0001%

Contract Source Code Verified (Exact Match)

Contract Name:
AdminUpgradeabilityProxy

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-03-11
*/

/**
 *Submitted for verification at Etherscan.io on 2018-10-22
*/

pragma solidity ^0.4.24;

// File: contracts/upgradeability/Proxy.sol

/**
 * @title Proxy
 * @dev Implements delegation of calls to other contracts, with proper
 * forwarding of return values and bubbling of failures.
 * It defines a fallback function that delegates all calls to the address
 * returned by the abstract _implementation() internal function.
 */
contract Proxy {
  /**
   * @dev Fallback function.
   * Implemented entirely in `_fallback`.
   */
  function () payable external {
    _fallback();
  }

  /**
   * @return The Address of the implementation.
   */
  function _implementation() internal view returns (address);

  /**
   * @dev Delegates execution to an implementation contract.
   * This is a low level function that doesn't return to its internal call site.
   * It will return to the external caller whatever the implementation returns.
   * @param implementation Address to delegate.
   */
  function _delegate(address implementation) internal {
    assembly {
      // Copy msg.data. We take full control of memory in this inline assembly
      // block because it will not return to Solidity code. We overwrite the
      // Solidity scratch pad at memory position 0.
      calldatacopy(0, 0, calldatasize)

      // Call the implementation.
      // out and outsize are 0 because we don't know the size yet.
      let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0)

      // Copy the returned data.
      returndatacopy(0, 0, returndatasize)

      switch result
      // delegatecall returns 0 on error.
      case 0 { revert(0, returndatasize) }
      default { return(0, returndatasize) }
    }
  }

  /**
   * @dev Function that is run as the first thing in the fallback function.
   * Can be redefined in derived contracts to add functionality.
   * Redefinitions must call super._willFallback().
   */
  function _willFallback() internal {
  }

  /**
   * @dev fallback implementation.
   * Extracted to enable manual triggering.
   */
  function _fallback() internal {
    _willFallback();
    _delegate(_implementation());
  }
}

// File: openzeppelin-solidity/contracts/AddressUtils.sol

/**
 * Utility library of inline functions on addresses
 */
library AddressUtils {

  /**
   * Returns whether the target address is a contract
   * @dev This function will return false if invoked during the constructor of a contract,
   *  as the code is not actually created until after the constructor finishes.
   * @param addr address to check
   * @return whether the target address is a contract
   */
  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solium-disable-next-line security/no-inline-assembly
    assembly { size := extcodesize(addr) }
    return size > 0;
  }

}

// File: contracts/upgradeability/UpgradeabilityProxy.sol

/**
 * @title UpgradeabilityProxy
 * @dev This contract implements a proxy that allows to change the
 * implementation address to which it will delegate.
 * Such a change is called an implementation upgrade.
 */
contract UpgradeabilityProxy is Proxy {
  /**
   * @dev Emitted when the implementation is upgraded.
   * @param implementation Address of the new implementation.
   */
  event Upgraded(address indexed implementation);

  /**
   * @dev Storage slot with the address of the current implementation.
   * This is the keccak-256 hash of "org.zeppelinos.proxy.implementation", and is
   * validated in the constructor.
   */
  bytes32 private constant IMPLEMENTATION_SLOT = 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3;

  /**
   * @dev Contract constructor.
   * @param _implementation Address of the initial implementation.
   * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
   */
  constructor(address _implementation, bytes _data) public payable {
    assert(IMPLEMENTATION_SLOT == keccak256("org.zeppelinos.proxy.implementation"));
    _setImplementation(_implementation);
    if(_data.length > 0) {
      require(_implementation.delegatecall(_data));
    }
  }

  /**
   * @dev Returns the current implementation.
   * @return Address of the current implementation
   */
  function _implementation() internal view returns (address impl) {
    bytes32 slot = IMPLEMENTATION_SLOT;
    assembly {
      impl := sload(slot)
    }
  }

  /**
   * @dev Upgrades the proxy to a new implementation.
   * @param newImplementation Address of the new implementation.
   */
  function _upgradeTo(address newImplementation) internal {
    _setImplementation(newImplementation);
    emit Upgraded(newImplementation);
  }

  /**
   * @dev Sets the implementation address of the proxy.
   * @param newImplementation Address of the new implementation.
   */
  function _setImplementation(address newImplementation) private {
    require(AddressUtils.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address");

    bytes32 slot = IMPLEMENTATION_SLOT;

    assembly {
      sstore(slot, newImplementation)
    }
  }
}

// File: contracts/upgradeability/AdminUpgradeabilityProxy.sol

/**
 * @title AdminUpgradeabilityProxy
 * @dev This contract combines an upgradeability proxy with an authorization
 * mechanism for administrative tasks.
 * All external functions in this contract must be guarded by the
 * `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity
 * feature proposal that would enable this to be done automatically.
 */
contract AdminUpgradeabilityProxy is UpgradeabilityProxy {
  /**
   * @dev Emitted when the administration has been transferred.
   * @param previousAdmin Address of the previous admin.
   * @param newAdmin Address of the new admin.
   */
  event AdminChanged(address previousAdmin, address newAdmin);

  /**
   * @dev Storage slot with the admin of the contract.
   * This is the keccak-256 hash of "org.zeppelinos.proxy.admin", and is
   * validated in the constructor.
   */
  bytes32 private constant ADMIN_SLOT = 0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b;

  /**
   * @dev Modifier to check whether the `msg.sender` is the admin.
   * If it is, it will run the function. Otherwise, it will delegate the call
   * to the implementation.
   */
  modifier ifAdmin() {
    if (msg.sender == _admin()) {
      _;
    } else {
      _fallback();
    }
  }

  /**
   * Contract constructor.
   * It sets the `msg.sender` as the proxy administrator.
   * @param _implementation address of the initial implementation.
   * @param _data Data to send as msg.data to the implementation to initialize the proxied contract.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   * This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.
   */
  constructor(address _implementation, bytes _data) UpgradeabilityProxy(_implementation, _data) public payable {
    assert(ADMIN_SLOT == keccak256("org.zeppelinos.proxy.admin"));

    _setAdmin(msg.sender);
  }

  /**
   * @return The address of the proxy admin.
   */
  function admin() external view ifAdmin returns (address) {
    return _admin();
  }

  /**
   * @return The address of the implementation.
   */
  function implementation() external view ifAdmin returns (address) {
    return _implementation();
  }

  /**
   * @dev Changes the admin of the proxy.
   * Only the current admin can call this function.
   * @param newAdmin Address to transfer proxy administration to.
   */
  function changeAdmin(address newAdmin) external ifAdmin {
    require(newAdmin != address(0), "Cannot change the admin of a proxy to the zero address");
    emit AdminChanged(_admin(), newAdmin);
    _setAdmin(newAdmin);
  }

  /**
   * @dev Upgrade the backing implementation of the proxy.
   * Only the admin can call this function.
   * @param newImplementation Address of the new implementation.
   */
  function upgradeTo(address newImplementation) external ifAdmin {
    _upgradeTo(newImplementation);
  }

  /**
   * @dev Upgrade the backing implementation of the proxy and call a function
   * on the new implementation.
   * This is useful to initialize the proxied contract.
   * @param newImplementation Address of the new implementation.
   * @param data Data to send as msg.data in the low level call.
   * It should include the signature and the parameters of the function to be called, as described in
   * https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.
   */
  function upgradeToAndCall(address newImplementation, bytes data) payable external ifAdmin {
    _upgradeTo(newImplementation);
    require(newImplementation.delegatecall(data));
  }

  /**
   * @return The admin slot.
   */
  function _admin() internal view returns (address adm) {
    bytes32 slot = ADMIN_SLOT;
    assembly {
      adm := sload(slot)
    }
  }

  /**
   * @dev Sets the address of the proxy admin.
   * @param newAdmin Address of the new proxy admin.
   */
  function _setAdmin(address newAdmin) internal {
    bytes32 slot = ADMIN_SLOT;

    assembly {
      sstore(slot, newAdmin)
    }
  }

  /**
   * @dev Only fall back when the sender is not the admin.
   */
  function _willFallback() internal {
    require(msg.sender != _admin(), "Cannot call fallback function from the proxy admin");
    super._willFallback();
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newImplementation","type":"address"},{"name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_implementation","type":"address"},{"name":"_data","type":"bytes"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousAdmin","type":"address"},{"indexed":false,"name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]

6080604052604051610b9f380380610b9f8339810180604052810190808051906020019092919080518201929190505050818160405180807f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617481526020017f696f6e000000000000000000000000000000000000000000000000000000000081525060230190506040518091039020600019167f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3600102600019161415156100c357fe5b6100db82610202640100000000026401000000009004565b600081511115610176578173ffffffffffffffffffffffffffffffffffffffff168160405180828051906020019080838360005b8381101561012a57808201518184015260208101905061010f565b50505050905090810190601f1680156101575780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561017557600080fd5b5b505060405180807f6f72672e7a657070656c696e6f732e70726f78792e61646d696e000000000000815250601a0190506040518091039020600019167f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b600102600019161415156101e357fe5b6101fb336102e7640100000000026401000000009004565b5050610329565b60006102208261031664010000000002610828176401000000009004565b15156102ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b600080823b905060008111915050919050565b610867806103386000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610305565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061035d565b005b3480156101ae57600080fd5b506101b761051b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610573565b61021161020c61064e565b61067f565b565b61021b6106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d6565b610265565b6102646101f9565b5b50565b6102706106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102f7576102ac836106d6565b8273ffffffffffffffffffffffffffffffffffffffff16828260405180838380828437820191505092505050600060405180830381855af491505015156102f257600080fd5b610300565b6102ff6101f9565b5b505050565b600061030f6106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103515761034a61064e565b905061035a565b6103596101f9565b5b90565b6103656106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561050f57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610463576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048c6106a5565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050a81610725565b610518565b6105176101f9565b5b50565b60006105256106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610567576105606106a5565b9050610570565b61056f6101f9565b5b90565b61057b6106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064c610754565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a0573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106df81610756565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b600061076182610828565b15156107fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820f82e8b87e97893a49b8bd4d7b939f667ecf5bb0557066c581f98354d9f5ade5200290000000000000000000000001a1fdf27c5e6784d1cebf256a8a5cc0877e73af000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000b4ed31195d1ad52f868dfc6a607e97d6773927f60000000000000000000000000996bfb5d057faa237640e2506be7b4f9c46de0b00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633659cfe6146100775780634f1ef286146100ba5780635c60da1b146101085780638f2839701461015f578063f851a440146101a2575b6100756101f9565b005b34801561008357600080fd5b506100b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610213565b005b610106600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001919091929391929390505050610268565b005b34801561011457600080fd5b5061011d610305565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016b57600080fd5b506101a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061035d565b005b3480156101ae57600080fd5b506101b761051b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610201610573565b61021161020c61064e565b61067f565b565b61021b6106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025c57610257816106d6565b610265565b6102646101f9565b5b50565b6102706106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102f7576102ac836106d6565b8273ffffffffffffffffffffffffffffffffffffffff16828260405180838380828437820191505092505050600060405180830381855af491505015156102f257600080fd5b610300565b6102ff6101f9565b5b505050565b600061030f6106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156103515761034a61064e565b905061035a565b6103596101f9565b5b90565b6103656106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561050f57600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610463576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f81526020017f787920746f20746865207a65726f20616464726573730000000000000000000081525060400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61048c6106a5565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161050a81610725565b610518565b6105176101f9565b5b50565b60006105256106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610567576105606106a5565b9050610570565b61056f6101f9565b5b90565b61057b6106a5565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e20667281526020017f6f6d207468652070726f78792061646d696e000000000000000000000000000081525060400191505060405180910390fd5b61064c610754565b565b6000807f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c36001029050805491505090565b3660008037600080366000845af43d6000803e80600081146106a0573d6000f35b3d6000fd5b6000807f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b6001029050805491505090565b6106df81610756565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007f10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b60010290508181555050565b565b600061076182610828565b15156107fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b8152602001807f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f81526020017f6e20746f2061206e6f6e2d636f6e74726163742061646472657373000000000081525060400191505060405180910390fd5b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c360010290508181555050565b600080823b9050600081119150509190505600a165627a7a72305820f82e8b87e97893a49b8bd4d7b939f667ecf5bb0557066c581f98354d9f5ade520029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001a1fdf27c5e6784d1cebf256a8a5cc0877e73af000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000b4ed31195d1ad52f868dfc6a607e97d6773927f60000000000000000000000000996bfb5d057faa237640e2506be7b4f9c46de0b00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _implementation (address): 0x1a1fdf27c5e6784d1cEbF256A8A5Cc0877e73Af0
Arg [1] : _data (bytes): 0x485cc955000000000000000000000000b4ed31195d1ad52f868dfc6a607e97d6773927f60000000000000000000000000996bfb5d057faa237640e2506be7b4f9c46de0b

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000001a1fdf27c5e6784d1cebf256a8a5cc0877e73af0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [3] : 485cc955000000000000000000000000b4ed31195d1ad52f868dfc6a607e97d6
Arg [4] : 773927f60000000000000000000000000996bfb5d057faa237640e2506be7b4f
Arg [5] : 9c46de0b00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

6418:4154:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;587:11;:9;:11::i;:::-;6418:4154;9060:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9060:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9693:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8355:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8355:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8641:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8641:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8201:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8201:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2133:93;2170:15;:13;:15::i;:::-;2192:28;2202:17;:15;:17::i;:::-;2192:9;:28::i;:::-;2133:93::o;9060:105::-;7256:8;:6;:8::i;:::-;7242:22;;:10;:22;;;7238:80;;;9130:29;9141:17;9130:10;:29::i;:::-;7238:80;;;7299:11;:9;:11::i;:::-;7238:80;9060:105;:::o;9693:184::-;7256:8;:6;:8::i;:::-;7242:22;;:10;:22;;;7238:80;;;9790:29;9801:17;9790:10;:29::i;:::-;9834:17;:30;;9865:4;;9834:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9826:45;;;;;;;;7238:80;;;7299:11;:9;:11::i;:::-;7238:80;9693:184;;;:::o;8355:103::-;8412:7;7256:8;:6;:8::i;:::-;7242:22;;:10;:22;;;7238:80;;;8435:17;:15;:17::i;:::-;8428:24;;7238:80;;;7299:11;:9;:11::i;:::-;7238:80;8355:103;:::o;8641:228::-;7256:8;:6;:8::i;:::-;7242:22;;:10;:22;;;7238:80;;;8732:1;8712:22;;:8;:22;;;;8704:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8805:32;8818:8;:6;:8::i;:::-;8828;8805:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8844:19;8854:8;8844:9;:19::i;:::-;7238:80;;;7299:11;:9;:11::i;:::-;7238:80;8641:228;:::o;8201:85::-;8249:7;7256:8;:6;:8::i;:::-;7242:22;;:10;:22;;;7238:80;;;8272:8;:6;:8::i;:::-;8265:15;;7238:80;;;7299:11;:9;:11::i;:::-;7238:80;8201:85;:::o;10409:160::-;10472:8;:6;:8::i;:::-;10458:22;;:10;:22;;;;10450:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10542:21;:19;:21::i;:::-;10409:160::o;5091:161::-;5141:12;5162;4073:66;5177:19;;5162:34;;5235:4;5229:11;5221:19;;5212:35;;:::o;1026:750::-;1333:12;1330:1;1327;1314:32;1527:1;1524;1510:12;1507:1;1491:14;1486:3;1473:56;1594:14;1591:1;1588;1573:36;1626:6;1688:1;1683:36;;;;1747:14;1744:1;1737:25;1683:36;1702:14;1699:1;1692:25;9927:141;9968:11;9988:12;6949:66;10003:10;;9988:25;;10051:4;10045:11;10038:18;;10029:34;;:::o;5393:145::-;5456:37;5475:17;5456:18;:37::i;:::-;5514:17;5505:27;;;;;;;;;;;;5393:145;:::o;10190:139::-;10243:12;6949:66;10258:10;;10243:25;;10308:8;10302:4;10295:22;10286:38;;:::o;1992:40::-;:::o;5681:297::-;5874:12;5759:42;5783:17;5759:23;:42::i;:::-;5751:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4073:66;5889:19;;5874:34;;5948:17;5942:4;5935:31;5926:47;;:::o;2717:587::-;2774:4;2787:12;3270:4;3258:17;3250:25;;3297:1;3290:4;:8;3283:15;;2717:587;;;;:::o

Swarm Source

bzzr://f82e8b87e97893a49b8bd4d7b939f667ecf5bb0557066c581f98354d9f5ade52
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.