Source Code
Overview
APE Balance
0 APE
More Info
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ERC20
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at curtis.apescan.io on 2024-10-28 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract ERC20 is IERC20 { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 value) public virtual override returns (bool) { _approve(msg.sender, spender, value); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { require(sender != address(0), "transfer from the zero address"); require(recipient != address(0), "transfer to the zero address"); _balances[sender] -= amount; _balances[recipient] += amount; _allowances[sender][msg.sender] -= amount; emit Transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _allowances[msg.sender][spender] += addedValue; emit Approval(msg.sender, spender, _allowances[msg.sender][spender]); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { uint256 currentAllowance = _allowances[msg.sender][spender]; require( currentAllowance >= subtractedValue, "decreased allowance below zero" ); _allowances[msg.sender][spender] -= subtractedValue; emit Approval(msg.sender, spender, _allowances[msg.sender][spender]); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal { _balances[sender] = _balances[sender] - (amount); _balances[recipient] = _balances[recipient] + (amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal { _totalSupply = _totalSupply + (amount); _balances[account] = _balances[account] + (amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 value) internal { _totalSupply = _totalSupply - (value); _balances[account] = _balances[account] - (value); emit Transfer(account, address(0), value); } function burn(uint256 _value) public { _burn(msg.sender, _value); } function _approve( address owner, address spender, uint256 value ) internal { _allowances[owner][spender] = value; emit Approval(owner, spender, value); } function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve( account, msg.sender, _allowances[account][msg.sender] - (amount) ); } } contract ERC20Detailed { string private _name; string private _symbol; uint8 private _decimals; constructor( string memory __name, string memory __symbol, uint8 __decimals ) { _name = __name; _symbol = __symbol; _decimals = __decimals; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } } contract Ownable { event OwnershipTransferred(address previousOwner, address newOwner); address payable ownerAddress; constructor() { ownerAddress = payable(msg.sender); } modifier onlyOwner() { require(msg.sender == owner(), "You are not the owner"); _; } function owner() public view returns (address) { return ownerAddress; } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Invalid address"); emit OwnershipTransferred(ownerAddress, newOwner); ownerAddress = payable(newOwner); } } contract test is ERC20, ERC20Detailed, Ownable { constructor() ERC20Detailed("tset USDC TOKEN", "test USDC", 6) { _mint(msg.sender, (10000000000 * (10**6))); } }
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b506107dd8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610090575f3560e01c806342966c681161006357806342966c68146100f457806370a0823114610109578063a457c2d714610131578063a9059cbb14610144578063dd62ed3e14610157575f80fd5b8063095ea7b31461009457806318160ddd146100bc57806323b872dd146100ce57806339509351146100e1575b5f80fd5b6100a76100a23660046106a4565b61018f565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100b3565b6100a76100dc3660046106cc565b6101a5565b6100a76100ef3660046106a4565b61033f565b610107610102366004610705565b6103da565b005b6100c061011736600461071c565b6001600160a01b03165f9081526020819052604090205490565b6100a761013f3660046106a4565b6103e7565b6100a76101523660046106a4565b6104f4565b6100c061016536600461073c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f61019b338484610500565b5060015b92915050565b5f6001600160a01b0384166102015760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064015b60405180910390fd5b6001600160a01b0383166102575760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016101f8565b6001600160a01b0384165f908152602081905260408120805484929061027e908490610781565b90915550506001600160a01b0383165f90815260208190526040812080548492906102aa908490610794565b90915550506001600160a01b0384165f908152600160209081526040808320338452909152812080548492906102e1908490610781565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161032d91815260200190565b60405180910390a35060019392505050565b335f9081526001602090815260408083206001600160a01b0386168452909152812080548391908390610373908490610794565b9091555050335f8181526001602090815260408083206001600160a01b038816808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6103e43382610561565b50565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561045a5760405162461bcd60e51b815260206004820152601e60248201527f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f000060448201526064016101f8565b335f9081526001602090815260408083206001600160a01b03881684529091528120805485929061048c908490610781565b9091555050335f8181526001602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b5f61019b3384846105e7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b8060025461056f9190610781565b6002556001600160a01b0382165f90815260208190526040902054610595908290610781565b6001600160a01b0383165f8181526020818152604080832094909455925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383165f9081526020819052604090205461060a908290610781565b6001600160a01b038085165f908152602081905260408082209390935590841681522054610639908290610794565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610554565b80356001600160a01b038116811461069f575f80fd5b919050565b5f80604083850312156106b5575f80fd5b6106be83610689565b946020939093013593505050565b5f805f606084860312156106de575f80fd5b6106e784610689565b92506106f560208501610689565b9150604084013590509250925092565b5f60208284031215610715575f80fd5b5035919050565b5f6020828403121561072c575f80fd5b61073582610689565b9392505050565b5f806040838503121561074d575f80fd5b61075683610689565b915061076460208401610689565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561019f5761019f61076d565b8082018082111561019f5761019f61076d56fea26469706673582212205e59324f8a3337cd2865c5036e4d44c273d3bd5065fa9bdb57cb4f3b03f8eeca64736f6c63430008180033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610090575f3560e01c806342966c681161006357806342966c68146100f457806370a0823114610109578063a457c2d714610131578063a9059cbb14610144578063dd62ed3e14610157575f80fd5b8063095ea7b31461009457806318160ddd146100bc57806323b872dd146100ce57806339509351146100e1575b5f80fd5b6100a76100a23660046106a4565b61018f565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100b3565b6100a76100dc3660046106cc565b6101a5565b6100a76100ef3660046106a4565b61033f565b610107610102366004610705565b6103da565b005b6100c061011736600461071c565b6001600160a01b03165f9081526020819052604090205490565b6100a761013f3660046106a4565b6103e7565b6100a76101523660046106a4565b6104f4565b6100c061016536600461073c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b5f61019b338484610500565b5060015b92915050565b5f6001600160a01b0384166102015760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064015b60405180910390fd5b6001600160a01b0383166102575760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016101f8565b6001600160a01b0384165f908152602081905260408120805484929061027e908490610781565b90915550506001600160a01b0383165f90815260208190526040812080548492906102aa908490610794565b90915550506001600160a01b0384165f908152600160209081526040808320338452909152812080548492906102e1908490610781565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161032d91815260200190565b60405180910390a35060019392505050565b335f9081526001602090815260408083206001600160a01b0386168452909152812080548391908390610373908490610794565b9091555050335f8181526001602090815260408083206001600160a01b038816808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6103e43382610561565b50565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561045a5760405162461bcd60e51b815260206004820152601e60248201527f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f000060448201526064016101f8565b335f9081526001602090815260408083206001600160a01b03881684529091528120805485929061048c908490610781565b9091555050335f8181526001602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b5f61019b3384846105e7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b8060025461056f9190610781565b6002556001600160a01b0382165f90815260208190526040902054610595908290610781565b6001600160a01b0383165f8181526020818152604080832094909455925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383165f9081526020819052604090205461060a908290610781565b6001600160a01b038085165f908152602081905260408082209390935590841681522054610639908290610794565b6001600160a01b038381165f818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610554565b80356001600160a01b038116811461069f575f80fd5b919050565b5f80604083850312156106b5575f80fd5b6106be83610689565b946020939093013593505050565b5f805f606084860312156106de575f80fd5b6106e784610689565b92506106f560208501610689565b9150604084013590509250925092565b5f60208284031215610715575f80fd5b5035919050565b5f6020828403121561072c575f80fd5b61073582610689565b9392505050565b5f806040838503121561074d575f80fd5b61075683610689565b915061076460208401610689565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561019f5761019f61076d565b8082018082111561019f5761019f61076d56fea26469706673582212205e59324f8a3337cd2865c5036e4d44c273d3bd5065fa9bdb57cb4f3b03f8eeca64736f6c63430008180033
Deployed Bytecode Sourcemap
863:3758:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1790:206;;;;;;:::i;:::-;;:::i;:::-;;;616:14:1;;609:22;591:41;;579:2;564:18;1790:206:0;;;;;;;;1058:108;1146:12;;1058:108;;;789:25:1;;;777:2;762:18;1058:108:0;643:177:1;2004:513:0;;;;;;:::i;:::-;;:::i;2525:277::-;;;;;;:::i;:::-;;:::i;4075:81::-;;;;;;:::i;:::-;;:::i;:::-;;1174:177;;;;;;:::i;:::-;-1:-1:-1;;;;;1325:18:0;1293:7;1325:18;;;;;;;;;;;;1174:177;2810:485;;;;;;:::i;:::-;;:::i;1359:214::-;;;;;;:::i;:::-;;:::i;1581:201::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1747:18:0;;;1715:7;1747:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;1581:201;1790:206;1908:4;1930:36;1939:10;1951:7;1960:5;1930:8;:36::i;:::-;-1:-1:-1;1984:4:0;1790:206;;;;;:::o;2004:513::-;2144:4;-1:-1:-1;;;;;2169:20:0;;2161:63;;;;-1:-1:-1;;;2161:63:0;;2001:2:1;2161:63:0;;;1983:21:1;2040:2;2020:18;;;2013:30;2079:32;2059:18;;;2052:60;2129:18;;2161:63:0;;;;;;;;;-1:-1:-1;;;;;2243:23:0;;2235:64;;;;-1:-1:-1;;;2235:64:0;;2360:2:1;2235:64:0;;;2342:21:1;2399:2;2379:18;;;2372:30;2438;2418:18;;;2411:58;2486:18;;2235:64:0;2158:352:1;2235:64:0;-1:-1:-1;;;;;2312:17:0;;:9;:17;;;;;;;;;;:27;;2333:6;;2312:9;:27;;2333:6;;2312:27;:::i;:::-;;;;-1:-1:-1;;;;;;;2350:20:0;;:9;:20;;;;;;;;;;:30;;2374:6;;2350:9;:30;;2374:6;;2350:30;:::i;:::-;;;;-1:-1:-1;;;;;;;2393:19:0;;;;;;:11;:19;;;;;;;;2413:10;2393:31;;;;;;;:41;;2428:6;;2393:19;:41;;2428:6;;2393:41;:::i;:::-;;;;;;;;2467:9;-1:-1:-1;;;;;2450:35:0;2459:6;-1:-1:-1;;;;;2450:35:0;;2478:6;2450:35;;;;789:25:1;;777:2;762:18;;643:177;2450:35:0;;;;;;;;-1:-1:-1;2505:4:0;2004:513;;;;;:::o;2525:277::-;2657:10;2623:4;2645:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;2645:32:0;;;;;;;;;:46;;2681:10;;2645:32;2623:4;;2645:46;;2681:10;;2645:46;:::i;:::-;;;;-1:-1:-1;;2716:10:0;2737:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;2707:63:0;;2737:32;;;;;;;;;;;2707:63;;789:25:1;;;2707:63:0;;2716:10;2707:63;;762:18:1;2707:63:0;;;;;;;-1:-1:-1;2790:4:0;2525:277;;;;:::o;4075:81::-;4123:25;4129:10;4141:6;4123:5;:25::i;:::-;4075:81;:::o;2810:485::-;2974:10;2913:4;2962:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;2962:32:0;;;;;;;;;;3027:35;;;;3005:115;;;;-1:-1:-1;;;3005:115:0;;3112:2:1;3005:115:0;;;3094:21:1;3151:2;3131:18;;;3124:30;3190:32;3170:18;;;3163:60;3240:18;;3005:115:0;2910:354:1;3005:115:0;3145:10;3133:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3133:32:0;;;;;;;;;:51;;3169:15;;3133:23;:51;;3169:15;;3133:51;:::i;:::-;;;;-1:-1:-1;;3209:10:0;3230:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3200:63:0;;3230:32;;;;;;;;;;;3200:63;;789:25:1;;;3200:63:0;;3209:10;3200:63;;762:18:1;3200:63:0;;;;;;;-1:-1:-1;3283:4:0;;2810:485;-1:-1:-1;;;2810:485:0:o;1359:214::-;1481:4;1503:40;1513:10;1525:9;1536:6;1503:9;:40::i;4164:209::-;-1:-1:-1;;;;;4283:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;4334:31;;789:25:1;;;4334:31:0;;762:18:1;4334:31:0;;;;;;;;4164:209;;;:::o;3843:224::-;3941:5;3925:12;;:22;;;;:::i;:::-;3910:12;:37;-1:-1:-1;;;;;3979:18:0;;:9;:18;;;;;;;;;;;:28;;4001:5;;3979:28;:::i;:::-;-1:-1:-1;;;;;3958:18:0;;:9;:18;;;;;;;;;;;:49;;;;4023:36;;789:25:1;;;3958:9:0;;4023:36;;762:18:1;4023:36:0;;;;;;;3843:224;;:::o;3303:296::-;-1:-1:-1;;;;;3447:17:0;;:9;:17;;;;;;;;;;;:28;;3468:6;;3447:28;:::i;:::-;-1:-1:-1;;;;;3427:17:0;;;:9;:17;;;;;;;;;;;:48;;;;3509:20;;;;;;;:31;;3533:6;;3509:31;:::i;:::-;-1:-1:-1;;;;;3486:20:0;;;:9;:20;;;;;;;;;;;;:54;;;;3556:35;789:25:1;;;3486:20:0;;3556:35;;;;;;762:18:1;3556:35:0;643:177:1;14:173;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:1:o;825:328::-;902:6;910;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1010:29;1029:9;1010:29;:::i;:::-;1000:39;;1058:38;1092:2;1081:9;1077:18;1058:38;:::i;:::-;1048:48;;1143:2;1132:9;1128:18;1115:32;1105:42;;825:328;;;;;:::o;1158:180::-;1217:6;1270:2;1258:9;1249:7;1245:23;1241:32;1238:52;;;1286:1;1283;1276:12;1238:52;-1:-1:-1;1309:23:1;;1158:180;-1:-1:-1;1158:180:1:o;1343:186::-;1402:6;1455:2;1443:9;1434:7;1430:23;1426:32;1423:52;;;1471:1;1468;1461:12;1423:52;1494:29;1513:9;1494:29;:::i;:::-;1484:39;1343:186;-1:-1:-1;;;1343:186:1:o;1534:260::-;1602:6;1610;1663:2;1651:9;1642:7;1638:23;1634:32;1631:52;;;1679:1;1676;1669:12;1631:52;1702:29;1721:9;1702:29;:::i;:::-;1692:39;;1750:38;1784:2;1773:9;1769:18;1750:38;:::i;:::-;1740:48;;1534:260;;;;;:::o;2515:127::-;2576:10;2571:3;2567:20;2564:1;2557:31;2607:4;2604:1;2597:15;2631:4;2628:1;2621:15;2647:128;2714:9;;;2735:11;;;2732:37;;;2749:18;;:::i;2780:125::-;2845:9;;;2866:10;;;2863:36;;;2879:18;;:::i
Swarm Source
ipfs://5e59324f8a3337cd2865c5036e4d44c273d3bd5065fa9bdb57cb4f3b03f8eeca
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.