POL Price: $0.377649 (-0.29%)
Gas: 50 GWei
 

Sponsored

Transaction Hash
Method
Block
From
To
Approve616427892024-09-10 5:47:5120 hrs ago1725947271IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve616416792024-09-10 5:08:2621 hrs ago1725944906IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve615278162024-09-07 9:05:143 days ago1725699914IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve614956282024-09-06 13:47:384 days ago1725630458IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve614912162024-09-06 11:06:504 days ago1725620810IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve614906252024-09-06 10:45:494 days ago1725619549IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve614898242024-09-06 10:17:274 days ago1725617847IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve614891702024-09-06 9:54:144 days ago1725616454IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve614888212024-09-06 9:41:524 days ago1725615712IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve613985182024-09-04 2:54:296 days ago1725418469IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve613983292024-09-04 2:46:076 days ago1725417967IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve613982372024-09-04 2:42:506 days ago1725417770IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612449662024-08-31 3:05:0510 days ago1725073505IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612438612024-08-31 2:23:3910 days ago1725071019IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612436622024-08-31 2:16:0311 days ago1725070563IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612432022024-08-31 1:59:1411 days ago1725069554IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612426742024-08-31 1:38:5111 days ago1725068331IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612191642024-08-30 11:16:3111 days ago1725016591IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612189452024-08-30 11:08:4711 days ago1725016127IN
0x009d2dd3...DE2C81fb5
0 POL0.0041388880
Approve612146702024-08-30 8:33:5811 days ago1725006838IN
0x009d2dd3...DE2C81fb5
0 POL0.0021729142
Approve612145452024-08-30 8:29:0211 days ago1725006542IN
0x009d2dd3...DE2C81fb5
0 POL0.0021729142
Approve612144312024-08-30 8:24:2411 days ago1725006264IN
0x009d2dd3...DE2C81fb5
0 POL0.0021729142
Approve612143052024-08-30 8:19:5811 days ago1725005998IN
0x009d2dd3...DE2C81fb5
0 POL0.0021729142
Approve612141862024-08-30 8:15:3411 days ago1725005734IN
0x009d2dd3...DE2C81fb5
0 POL0.0021729142
Approve611343812024-08-28 8:29:2113 days ago1724833761IN
0x009d2dd3...DE2C81fb5
0 POL0.0018103435
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x7d3fA4bA...a97bBF313
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
UChildERC20Proxy

Compiler Version
v0.6.6+commit.6c089d02

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2021-06-09
*/

// File: contracts/common/Proxy/IERCProxy.sol

pragma solidity 0.6.6;

interface IERCProxy {
    function proxyType() external pure returns (uint256 proxyTypeId);

    function implementation() external view returns (address codeAddr);
}

// File: contracts/common/Proxy/Proxy.sol

pragma solidity 0.6.6;


abstract contract Proxy is IERCProxy {
    function delegatedFwd(address _dst, bytes memory _calldata) internal {
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            let result := delegatecall(
                sub(gas(), 10000),
                _dst,
                add(_calldata, 0x20),
                mload(_calldata),
                0,
                0
            )
            let size := returndatasize()

            let ptr := mload(0x40)
            returndatacopy(ptr, 0, size)

            // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas.
            // if the call returned error data, forward it
            switch result
                case 0 {
                    revert(ptr, size)
                }
                default {
                    return(ptr, size)
                }
        }
    }

    function proxyType() external virtual override pure returns (uint256 proxyTypeId) {
        // Upgradeable proxy
        proxyTypeId = 2;
    }

    function implementation() external virtual override view returns (address);
}

// File: contracts/common/Proxy/UpgradableProxy.sol

pragma solidity 0.6.6;


contract UpgradableProxy is Proxy {
    event ProxyUpdated(address indexed _new, address indexed _old);
    event ProxyOwnerUpdate(address _new, address _old);

    bytes32 constant IMPLEMENTATION_SLOT = keccak256("matic.network.proxy.implementation");
    bytes32 constant OWNER_SLOT = keccak256("matic.network.proxy.owner");

    constructor(address _proxyTo) public {
        setProxyOwner(msg.sender);
        setImplementation(_proxyTo);
    }

    fallback() external payable {
        delegatedFwd(loadImplementation(), msg.data);
    }

    receive() external payable {
        delegatedFwd(loadImplementation(), msg.data);
    }

    modifier onlyProxyOwner() {
        require(loadProxyOwner() == msg.sender, "NOT_OWNER");
        _;
    }

    function proxyOwner() external view returns(address) {
        return loadProxyOwner();
    }

    function loadProxyOwner() internal view returns(address) {
        address _owner;
        bytes32 position = OWNER_SLOT;
        assembly {
            _owner := sload(position)
        }
        return _owner;
    }

    function implementation() external override view returns (address) {
        return loadImplementation();
    }

    function loadImplementation() internal view returns(address) {
        address _impl;
        bytes32 position = IMPLEMENTATION_SLOT;
        assembly {
            _impl := sload(position)
        }
        return _impl;
    }

    function transferProxyOwnership(address newOwner) public onlyProxyOwner {
        require(newOwner != address(0), "ZERO_ADDRESS");
        emit ProxyOwnerUpdate(newOwner, loadProxyOwner());
        setProxyOwner(newOwner);
    }

    function setProxyOwner(address newOwner) private {
        bytes32 position = OWNER_SLOT;
        assembly {
            sstore(position, newOwner)
        }
    }

    function updateImplementation(address _newProxyTo) public onlyProxyOwner {
        require(_newProxyTo != address(0x0), "INVALID_PROXY_ADDRESS");
        require(isContract(_newProxyTo), "DESTINATION_ADDRESS_IS_NOT_A_CONTRACT");

        emit ProxyUpdated(_newProxyTo, loadImplementation());
        
        setImplementation(_newProxyTo);
    }

    function updateAndCall(address _newProxyTo, bytes memory data) payable public onlyProxyOwner {
        updateImplementation(_newProxyTo);

        (bool success, bytes memory returnData) = address(this).call{value: msg.value}(data);
        require(success, string(returnData));
    }

    function setImplementation(address _newProxyTo) private {
        bytes32 position = IMPLEMENTATION_SLOT;
        assembly {
            sstore(position, _newProxyTo)
        }
    }
    
    function isContract(address _target) internal view returns (bool) {
        if (_target == address(0)) {
            return false;
        }

        uint256 size;
        assembly {
            size := extcodesize(_target)
        }
        return size > 0;
    }
}

// File: contracts/child/ChildToken/UpgradeableChildERC20/UChildERC20Proxy.sol

pragma solidity 0.6.6;


contract UChildERC20Proxy is UpgradableProxy {
    constructor(address _proxyTo)
        public
        UpgradableProxy(_proxyTo)
    {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_proxyTo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_new","type":"address"},{"indexed":false,"internalType":"address","name":"_old","type":"address"}],"name":"ProxyOwnerUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_new","type":"address"},{"indexed":true,"internalType":"address","name":"_old","type":"address"}],"name":"ProxyUpdated","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyType","outputs":[{"internalType":"uint256","name":"proxyTypeId","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"updateAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"}],"name":"updateImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100595760003560e01c8063025313a21461010e578063025b22bc146101655780634555d5c9146101b65780635c60da1b146101e1578063d88ca2c814610238578063f1739cae14610313576100b6565b366100b6576100b4610069610364565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610390565b005b61010c6100c1610364565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610390565b005b34801561011a57600080fd5b506101236103ba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017157600080fd5b506101b46004803603602081101561018857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c9565b005b3480156101c257600080fd5b506101cb6105df565b6040518082815260200191505060405180910390f35b3480156101ed57600080fd5b506101f66105e8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103116004803603604081101561024e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561028b57600080fd5b82018360208201111561029d57600080fd5b803590602001918460018302840111640100000000831117156102bf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506105f7565b005b34801561031f57600080fd5b506103626004803603602081101561033657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610813565b005b60008060006040518080610b2e6022913960220190506040518091039020905080549150819250505090565b600080825160208401856127105a03f43d604051816000823e82600081146103b6578282f35b8282fd5b60006103c4610a08565b905090565b3373ffffffffffffffffffffffffffffffffffffffff166103e8610a08565b73ffffffffffffffffffffffffffffffffffffffff1614610471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610514576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f494e56414c49445f50524f58595f41444452455353000000000000000000000081525060200191505060405180910390fd5b61051d81610a51565b610572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610b096025913960400191505060405180910390fd5b61057a610364565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36105dc81610aa3565b50565b60006002905090565b60006105f2610364565b905090565b3373ffffffffffffffffffffffffffffffffffffffff16610616610a08565b73ffffffffffffffffffffffffffffffffffffffff161461069f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6106a8826103c9565b600060603073ffffffffffffffffffffffffffffffffffffffff1634846040518082805190602001908083835b602083106106f857805182526020820191506020810190506020830392506106d5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461075a576040519150601f19603f3d011682016040523d82523d6000602084013e61075f565b606091505b509150915081819061080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156107d15780820151818401526020810190506107b6565b50505050905090810190601f1680156107fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff16610832610a08565b73ffffffffffffffffffffffffffffffffffffffff16146108bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a45524f5f41444452455353000000000000000000000000000000000000000081525060200191505060405180910390fd5b7fdbe5fd65bcdbae152f24ab660ea68e72b4d4705b57b16e0caae994e214680ee281610988610a08565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1610a0581610ac7565b50565b600080600060405180807f6d617469632e6e6574776f726b2e70726f78792e6f776e65720000000000000081525060190190506040518091039020905080549150819250505090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a905760009050610a9e565b6000823b9050600081119150505b919050565b60006040518080610b2e602291396022019050604051809103902090508181555050565b600060405180807f6d617469632e6e6574776f726b2e70726f78792e6f776e657200000000000000815250601901905060405180910390209050818155505056fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e54524143546d617469632e6e6574776f726b2e70726f78792e696d706c656d656e746174696f6ea264697066735822122041ef759422fabf085e8197d08185f4d0cdb3a0ab3423629d2271c1c06c720f0664736f6c63430006060033

Deployed Bytecode Sourcemap

4731:143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2192:44;2205:20;:18;:20::i;:::-;2227:8;;2192:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2192:44:0;;;;;;:12;:44::i;:::-;4731:143;;2094:44;2107:20;:18;:20::i;:::-;2129:8;;2094:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2094:44:0;;;;;;:12;:44::i;:::-;4731:143;2369:95;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2369:95:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3483:353;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3483:353:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3483:353:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1270:146;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1270:146:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2704:113;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2704:113:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3844:289;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3844:289:0;;;;;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;3844:289:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;3844:289:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3844:289:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3844:289:0;;;;;;;;;;;;;;;:::i;:::-;;3067:232;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3067:232:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3067:232:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2825:234;2877:7;2897:13;2921:16;1797:47;;;;;;;;;;;;;;;;;;;2921:38;;3009:8;3003:15;2994:24;;3046:5;3039:12;;;;2825:234;:::o;366:896::-;733:1;713;684:9;678:16;654:4;643:9;639:20;616:4;591:5;584;580:17;549:200;775:16;824:4;818:11;866:4;863:1;858:3;843:28;1069:6;1098:1;1093:66;;;;1220:4;1215:3;1208:17;1093:66;1135:4;1130:3;1123:17;2369:95;2413:7;2440:16;:14;:16::i;:::-;2433:23;;2369:95;:::o;3483:353::-;2317:10;2297:30;;:16;:14;:16::i;:::-;:30;;;2289:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3598:3:::1;3575:27;;:11;:27;;;;3567:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3647:23;3658:11;3647:10;:23::i;:::-;3639:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3756:20;:18;:20::i;:::-;3730:47;;3743:11;3730:47;;;;;;;;;;;;3798:30;3816:11;3798:17;:30::i;:::-;3483:353:::0;:::o;1270:146::-;1331:19;1407:1;1393:15;;1270:146;:::o;2704:113::-;2762:7;2789:20;:18;:20::i;:::-;2782:27;;2704:113;:::o;3844:289::-;2317:10;2297:30;;:16;:14;:16::i;:::-;:30;;;2289:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3948:33:::1;3969:11;3948:20;:33::i;:::-;3995:12;4009:23;4044:4;4036:18;;4062:9;4073:4;4036:42;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4036:42:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;3994:84:0;;;;4097:7;4113:10;4089:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4089:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:1;;3844:289:::0;;:::o;3067:232::-;2317:10;2297:30;;:16;:14;:16::i;:::-;:30;;;2289:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3178:1:::1;3158:22;;:8;:22;;;;3150:47;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;3213:44;3230:8;3240:16;:14;:16::i;:::-;3213:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3268:23;3282:8;3268:13;:23::i;:::-;3067:232:::0;:::o;2472:224::-;2520:7;2540:14;2565:16;1881:38;;;;;;;;;;;;;;;;;;;2565:29;;2645:8;2639:15;2629:25;;2682:6;2675:13;;;;2472:224;:::o;4340:274::-;4400:4;4440:1;4421:21;;:7;:21;;;4417:66;;;4466:5;4459:12;;;;4417:66;4495:12;4562:7;4550:20;4542:28;;4605:1;4598:4;:8;4591:15;;;4340:274;;;;:::o;4141:187::-;4208:16;1797:47;;;;;;;;;;;;;;;;;;;4208:38;;4298:11;4288:8;4281:29;4266:55;;:::o;3307:168::-;3367:16;1881:38;;;;;;;;;;;;;;;;;;;3367:29;;3448:8;3438;3431:26;3416:52;;:::o

Swarm Source

ipfs://41ef759422fabf085e8197d08185f4d0cdb3a0ab3423629d2271c1c06c720f06

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.