CW20
Introduction
The CW20 ADO is a smart contract to initiate a standard CW20 token. CW20 is a specification for fungible tokens based on CosmWasm. The name and design is loosely based on Ethereum's ERC20 standard, but many changes have been made.
Ado_type: cw20
Version: 2.0.5
InstantiateMsg
The symbol can only consist of letters and has to be between 3 and 12 characters.
Decimals will indicate how divisible your token is. Having a decimal of 6 means you could have 0.000001 of your token. Showcasing the decimalized amounts is usually handled by the front-end interface that would take the amount of tokens and divide it by the number of decimals. This means that when you transfer or send tokens from this ADO directly, you would still use whole numbers. For example, if I want to transfer 5 full tokens to someone and I have 6 decimals for my token, I would be sending 5000000 tokens from this ADO.
name
String
The name of the token.
symbol
String
The symbol of the token.
decimals
u8
The number of decimals for the token.
initial_balances
A vector containing a list of addresses and the amount of coin to initialize each.
mint
Optional field to define a minter for the token and an optional cap for the total supply of tokens that can be minted. If not defined, additional tokens cannot be minted.
marketing
Optional field to define the marketing information of the project.
kernel_address
String
owner
Option<String>
Optional address to specify as the owner of the ADO being created. Defaults to the sender if not specified.
Cw20Coin
Struct used to initiate balances for addresses. Contains an address and the amount of tokens for that address.
InstantiateMarketingInfo
Struct used to store the marketing related data of the token.
project
Option<String>
A URL pointing to the project behind this token.
description
Option<String>
A longer description of the token and it's utility. Designed for tooltips or such.
marketing
Option<String>
The address (if any) who can update this data structure.
logo
Option<Logo>
A link to the logo, or a comment that there is an on-chain logo stored.
Logo
Url: A reference to an externally hosted logo. Must be a valid HTTP or HTTPS URL.
Embedded: Logo content stored on the blockchain. Enforce maximum size of 5KB on all variants
EmbeddedLogo
Svg: Store the Logo as an SVG file. The content must conform to the specifications found here.
Png: Store the Logo as a PNG file. This will likely only support up to 64x64 or so within the 5KB limit.
MinterResponse
The cap refers to the total supply. If it is not specified, then there is an unlimited cap.
minter
String
The address to assign as a minter.
cap
Option<Uint128>
A hard cap on total amount of CW20 tokens that can be minted by this ADO.
ExecuteMsg
Mint
Only with the "mint" extension. If authorized, creates amount new tokens and adds to the recipient balance.
recipient
String
The address to receive the minted tokens.
amount
Uint128
The amount of tokens to mint.
Transfer
Transfer is a base message to move tokens to another account without triggering actions.
recipient
The address to transfer the tokens to.
amount
Uint128
The amount of tokens to transfer.
Send
Send is a base message to transfer tokens to a contract and trigger an action on the receiving contract.
The amount
sent might be affected depending on the attached modules.
The msg
should be base64 encoded and not raw binary.
This message is used when sending tokens to other ADOs that interact with CW20 tokens. In that case, the msg
should be a CW20HookMsg that would be defined in the ADOs documentation page.
contract
The address of the receiving contract.
amount
Uint128
The amount to send.
msg
Binary
A message to be sent to the receiving contract.
Burn
Burn is a base message to destroy tokens forever
amount
Uint128
The amount of coins to be burnt.
IncreaseAllowance
Sets an amount
of tokens from the owner that the specified spender
can interact with.
A new Expiration will overwrite a previous one.
spender
String
The address to receive the allowance.
amount
Uint128
The amount of tokens to give the spender access to.
expires
Optional Expiration for the allowance of the spender.
DecreaseAllowance
Decreases the allowance set for the spender
by the set amount.
The amount specified in DecreaseAllowance
does not replace the old amount but is subtracted from it. If the result is 0 or less, then the spender no longer has an Allowance from the owner.
If an Expiration
is set, it will overwrite previously set Expiration
spender
String
The address to have their allowance decreased.
amount
Uint128
The amount to decrease the allowance by.
expires
Optional expiration for the allowance of the spender.
TransferFrom
Transfers the amount
of tokens from the owner
address to the recipient.
The amount specified
cannot exceed the allowance of the address executing TransferFrom.
owner
String
The owner address that has the tokens to transfer.
recipient
String
The address the receive the tokens.
amount
Uint128
The amount of tokens to send from the owner to the recipient.
SendFrom
Sends the amount
of tokens from the owner
address to the contract
address. Can use a msg to trigger an action on the receiving contract.
The amount specified
cannot exceed the allowance of the address executing TransferFrom.
The msg
should be base64 encoded and not raw binary.
owner
String
The owner address that has the tokens to transfer.
contract
String
The contract address to receive the tokens.
amount
Uint128
The amount of tokens to send from the owner to the contract.
msg
Binary
A message to be sent to the receiving contract.
BurnFrom
Burns a specified amount
of tokens from the owner
address forever.
The amount specified
cannot exceed the allowance of the address executing BurnFrom.
owner
String
The address to burn tokens from.
amount
Uint128
The amount of tokens to burn.
UpdateMarketing
Updates the marketing information if instantiated.
Setting None/null for any of these will leave it unchanged
project
Option<String>
A URL pointing to the project behind this token.
description
Option<String>
A longer description of the token and it's utility. Designed for tooltips or such.
marketing
Option<String>
The address (if any) who can update this data structure.
UploadLogo
Uploads a Logo for the token.
Check Logo.
UpdateMinter
Only with the "mintable" extension. The current minter may set a new minter. Setting the minter to None will remove the token's minter forever.
Only available to the current minter.
new_minter
Option<String>
The address of the new minter. If not specified, then the token minter is removed forever.
Base Executes
The rest of the execute messages can be found in the ADO Base section.
QueryMsg
Balance
Queries the balance of a specific address.
address
String
The address to get the balance of.
BalanceResponse
balance
Uint128
The amount of tokens the specified address
has in their balance.
TokenInfo
Returns metadata on the contract.
TokenInfoResponse
name
String
The name of the token.
symbol
String
The symbol of the token.
decimals
u8
The number of decimals for the token.
total_supply
Uint128
The total amount of tokens.
Minter
Returns who can mint and the hard cap on maximum tokens after minting
MinterResponse
minter
String
The address of the assigned minter.
cap
Option<Uint128>
Cap is a hard cap on total supply that can be achieved by minting.
Allowance
Returns the amount of tokens that the spender has from the owner's tokens and the expiration for the tokens.
owner
String
The address of the owner of the tokens.
spender
String
The address to check the allowance of.
AllowanceResponse
allowance
Uint128
The amount of tokens the spender has as allowance.
expires
The expiration for the tokens.
AllAllowanaces
Returns all the allowances that the specified owner
has given along with the information for each allowance.
owner
String
The address of the owner that has given allowances.
start_after
Option<String>
An optional Id for which to start after, used for pagination.
limit
Option<u32>
An optional limit to how many allowances are returned. Is set by default to 10. Can be set to reach a maximum of 30.
AllAllowanceResponse
allowances
Vec<AllowanceInfo>
A vector containing each allowance and the related information.
AllowanceInfo
spender
String
The address that has an allowance.
allowance
Uint128
The amount of tokens in the allowance.
expires
The expiration for the allowance.
AllSpenderAllowances
Returns all allowances this spender has been granted. Supports pagination.
spender
String
The address we want to check the allowances for.
start_after
Option<String>
An optional Id for which to start after, used for pagination.
limit
Option<u32>
An optional limit to how many allowances are returned. Is set by default to 10. Can be set to a maximum of 30.
AllAccounts
Returns all the addresses that have a balance.
start_after
Option<String>
An optional Id for which to start after, used for pagination.
limit
Option<u32>
An optional limit to how many Accounts are returned. Is set by default to 10. Can be set to reach a maximum of 30.
AllAccountsResponse
accounts
Vec<String>
A vector containing the addresses that own the token.
MarketingInfo
Returns the metadata of the marketing of the project.
MarketingInfoResponse
project
Option<String>
A URL pointing to the project behind this token.
description
Option<String>
A longer description of the token and it's utility. Designed for tooltips or such.
logo
Option<LogoInfo>
A link to the logo, or a comment there is an on-chain logo stored.
marketing
Option<Addr>
The address (if any) who can update this data structure.
DownloadLogo
Downloads the embedded logo data (if stored on chain). Errors if no logo data stored for this contract.
DownloadLogoResponse
mime_type
String
The MIME type of the logo.
data
Binary
The LOGO data.
Base Queries
The rest of the query messages can be found in the ADO Base section.
Last updated