AccountId
. This is often, but not always, the public key of a cryptographic key pair.Warning: Do not use regular expressions (regex) to validate addresses. Always verify using the prefix and checksum of the address. Substrate API Sidecar provides anaccounts/{accountId}/validate
path that returns a booleanisValid
response for a provided address. If you want to validate addresses in another way, see the validation documentation.
balances.existentialDeposit
.transfer_keep_alive
function that will return an error and abort rather than make the transfer if doing so would result in reaping the sender's account.Please be advised: The existential deposit is a property of the Relay Chain. Your account on the Relay Chain has no direct impact on parachains as you have seperate accounts on each parachain. Still, parachains are able to define an existential deposit of their own, but this is seperate to that of the Relay Chain ED.
AccountData
. Cherry primarily deals with two types of balances: free and reserved.Transfer
purposes and 100 CHER for Reserve
purposes. The account could not make a transfer that brings its free balance below 150 CHER, but an operation could result in reserving CHER such that the free balance is below 150, but above 100 CHER.BlockHashCount
, from the chain state or metadata. This parameter is set to 2400 blocks (about four hours) at genesis. If the validity period is larger than the number of blocks stored on-chain, then the transaction will only be valid as long as there is a block to check it against, i.e. the minimum value of validity period and block hash count.Note: The assumption that a transaction's hash is a unique identifier is the number one mistake that indexing services and custodians make. This error will cause major issues for your users. Make sure that you read this section carefully.
Reward
event when claiming staking rewards to tell the user how much the account was credited.balances.transferKeepAlive
and a utility.batch
transaction with a transfer inside of it). Only monitoring balances.transfer
transactions will not be sufficient. Make sure that you monitor events in each block for events that contain your addresses of interest. Monitor events instead of transaction names to ensure that you can properly credit deposits.