Skip to content

Zondax/ledger-avail

Repository files navigation

Ledger Avail App

License GithubActions


zondax_light zondax_dark

Please visit our website at zondax.ch


This project contains the Avail app (https://www.availproject.org/) for Ledger Nano S, Nano S+, Nano X, Stax and Flex.

  • Ledger Nano S/S+/X, Stax and Flex Avail app
  • Specs / Documentation
  • C++ unit tests
  • Zemu tests

For more information: How to build

ATTENTION

Please:

  • Do not use in production
  • Do not use a Ledger device with funds for development purposes.
  • Have a separate and marked device that is used ONLY for development and testing

Avail 1.39.x

System

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Remark ✔️ ✔️ ✔️ Bytesremark
Set heap pages ✔️ ✔️ ✔️ u64pages
Set code ✔️ ✔️ ✔️ Bytescode
Set code without checks ✔️ ✔️ ✔️ Vecu8code
Set storage VecKeyValueitems
Kill storage VecKeykeys
Kill prefix Keyprefix
u32subkeys
Remark with event ✔️ ✔️ ✔️ Bytesremark
Authorize upgrade ✔️ ✔️ Hashcode_hash
Authorize upgrade without checks ✔️ ✔️ Hashcode_hash
Apply authorized upgrade ✔️ ✔️ Vecu8code

Utility

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Batch ✔️ ✔️ ✔️ VecCallcalls
As derivative u16index
Callcall
Batch all ✔️ ✔️ ✔️ VecCallcalls
Dispatch as BoxPalletsOriginas_origin
Callcall
Force batch ✔️ ✔️ ✔️ VecCallcalls
With weight ✔️ ✔️ Callcall
Weightweight

Babe

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Report equivocation BoxEquivocationProofHeaderequivocation_proof
KeyOwnerProofkey_owner_proof
Report equivocation unsigned BoxEquivocationProofHeaderequivocation_proof
KeyOwnerProofkey_owner_proof
Plan config change NextConfigDescriptorconfig

Timestamp

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Set Compactu64now

Indices

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Claim AccountIndexindex
Transfer AccountIdLookupOfTnew_
AccountIndexindex
Free AccountIndexindex
Force transfer AccountIdLookupOfTnew_
AccountIndexindex
boolfreeze
Freeze AccountIndexindex

Balances

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Transfer allow death ✔️ ✔️ ✔️ ✔️ AccountIdLookupOfTdest
CompactBalanceamount
Force transfer ✔️ ✔️ ✔️ ✔️ AccountIdLookupOfTsource
AccountIdLookupOfTdest
CompactBalanceamount
Transfer keep alive ✔️ ✔️ ✔️ ✔️ AccountIdLookupOfTdest
CompactBalanceamount
Transfer all ✔️ ✔️ ✔️ ✔️ AccountIdLookupOfTdest
boolkeep_alive
Force unreserve ✔️ ✔️ AccountIdLookupOfTwho
Balanceamount
Upgrade accounts ✔️ ✔️ VecAccountIdwho
Force set balance ✔️ ✔️ AccountIdLookupOfTwho
CompactBalancenew_free
Force adjust total issuance ✔️ ✔️ AdjustmentDirectiondirection
CompactBalancedelta

ElectionProviderMultiPhase

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Submit unsigned BoxRawSolutionSolutionOfMinerConfigraw_solution
SolutionOrSnapshotSizewitness
Set minimum untrusted score OptionElectionScoremaybe_next_score
Set emergency election result SupportsAccountIdsupports
Submit BoxRawSolutionSolutionOfMinerConfigraw_solution
Governance fallback Optionu32maybe_max_voters
Optionu32maybe_max_targets

Staking

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Bond ✔️ ✔️ ✔️ ✔️ CompactBalanceamount
RewardDestinationpayee
Bond extra ✔️ ✔️ ✔️ ✔️ CompactBalanceamount
Unbond ✔️ ✔️ ✔️ ✔️ CompactBalanceamount
Withdraw Unbonded ✔️ ✔️ ✔️ ✔️ u32num_slashing_spans
Validate ✔️ ✔️ ✔️ ✔️ ValidatorPrefsprefs
Nominate ✔️ ✔️ ✔️ ✔️ VecAccountIdLookupOfTtargets
Chill ✔️ ✔️ ✔️ ✔️
Set payee ✔️ ✔️ ✔️ ✔️ RewardDestinationpayee
Set controller ✔️ ✔️ ✔️ ✔️
Set validator count ✔️ ✔️ Compactu32new_
Increase validator count ✔️ ✔️ Compactu32additional
Scale validator count ✔️ ✔️ Percentfactor
Force no eras ✔️ ✔️
Force new era ✔️ ✔️
Set invulnerables ✔️ ✔️ VecAccountIdinvulnerables
Force unstake ✔️ ✔️ AccountIdstash
u32num_slashing_spans
Force new era always ✔️ ✔️
Cancel deferred slash ✔️ ✔️ EraIndexera
Vecu32slash_indices
Payout stakers ✔️ ✔️ ✔️ ✔️ AccountIdvalidator_stash
EraIndexera
Rebond ✔️ ✔️ ✔️ ✔️ CompactBalanceamount
Reap stash ✔️ ✔️ AccountIdstash
u32num_slashing_spans
Kick ✔️ ✔️ VecAccountIdLookupOfTwho
Set staking configs ✔️ ✔️ ConfigOpBalanceOfTmin_nominator_bond
ConfigOpBalanceOfTmin_validator_bond
ConfigOpu32max_nominator_count
ConfigOpu32max_validator_count
ConfigOpPercentchill_threshold
ConfigOpPerbillmin_commission
Chill other ✔️ ✔️ AccountIdstash
Force apply min commission ✔️ ✔️ AccountIdvalidator_stash
Set min commission ✔️ ✔️ Perbillnew_
Payout stakers by page ✔️ ✔️ AccountIdvalidator_stash
EraIndexera
Pagepage
Update payee ✔️ ✔️ AccountIdcontroller
Deprecate controller batch BoundedVecAccountIdMaxControllersInDeprecationBatchcontrollers

Session

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Set keys ✔️ ✔️ ✔️ ✔️ Keyskeys
Bytesproof
Purge keys ✔️ ✔️ ✔️ ✔️

TechnicalCommittee

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Set members ✔️ ✔️ VecAccountIdnew_members
OptionAccountIdprime
MemberCountold_count
Execute ✔️ ✔️ Proposalproposal
Compactu32length_bound
Propose ✔️ ✔️ Compactu32threshold
Proposalproposal
Compactu32length_bound
Vote ✔️ ✔️ Hashproposal
Compactu32index
boolapprove
Disapprove proposal Hashproposal_hash
Close Hashproposal_hash
Compactu32index
Weightproposal_weight_bound
Compactu32length_bound

Grandpa

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Report equivocation BoxEquivocationProofHashBlockNumberequivocation_proof
KeyOwnerProofkey_owner_proof
Report equivocation unsigned BoxEquivocationProofHashBlockNumberequivocation_proof
KeyOwnerProofkey_owner_proof
Note stalled ✔️ ✔️ BlockNumberdelay
BlockNumberbest_finalized_block_number

Treasury

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Propose spend CompactBalanceamount
AccountIdLookupOfTbeneficiary
Reject proposal Compactu32proposal_id
Approve proposal Compactu32proposal_id
Spend local CompactBalanceamount
AccountIdLookupOfTbeneficiary
Remove approval Compactu32proposal_id
Spend BoxAssetKindasset_kind
CompactBalanceamount
BoxBeneficiaryLookupOfbeneficiary
OptionBlockNumbervalid_from
Payout SpendIndexindex
Check status SpendIndexindex
Void spend SpendIndexindex

Sudo

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Sudo Callcall
Sudo unchecked weight Callcall
Weightweight
Set key AccountIdLookupOfTnew_
Sudo as AccountIdLookupOfTwho
Callcall
Remove key

ImOnline

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Heartbeat HeartbeatBlockNumberheartbeat
AuthorityIdasRuntimeAppPublicSignaturesignature

Scheduler

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Schedule BlockNumberwhen
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall
Cancel BlockNumberwhen
u32index
Schedule named TaskNameid
BlockNumberwhen
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall
Cancel named TaskNameid
Schedule after ✔️ ✔️ BlockNumberafter
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall
Schedule named after TaskNameid
BlockNumberafter
OptionschedulePeriodBlockNumbermaybe_periodic
schedulePrioritypriority
Callcall

DataAvailability

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Create application key ✔️ ✔️ AppKeykey
Submit data ✔️ ✔️ AppDatadata
Submit block length proposal ✔️ ✔️ u32rows
u32cols
Set application key ✔️ ✔️ AppKeyold_key
AppKeynew_key
Set submit data fee modifier ✔️ ✔️ DispatchFeeModifiermodifier

Preimage

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Note preimage Vecu8bytes
Unnote preimage Hashhash
Request preimage Hashhash
Unrequest preimage Hashhash
Ensure updated VecHashhashes

Multisig

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
As multi threshold 1 ✔️ ✔️ ✔️ VecAccountIdother_signatories
Callcall
As multi ✔️ ✔️ ✔️ u16threshold
VecAccountIdother_signatories
OptionTimepointmaybe_timepoint
Callcall
Weightmax_weight
Approve as multi ✔️ ✔️ ✔️ u16threshold
VecAccountIdother_signatories
OptionTimepointmaybe_timepoint
H256call_hash
Weightmax_weight
Cancel as multi ✔️ ✔️ ✔️ u16threshold
VecAccountIdother_signatories
Timepointtimepoint
H256call_hash

VoterList

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Rebag AccountIdLookupOfTdislocated
Put in front of AccountIdLookupOfTlighter
Put in front of other AccountIdLookupOfTheavier
AccountIdLookupOfTlighter

NominationPools

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Join ✔️ ✔️ ✔️ CompactBalanceamount
PoolIdpool_id
Bond extra ✔️ ✔️ ✔️ BondExtraBalanceOfTextra
Claim payout ✔️ ✔️ ✔️
Unbond ✔️ ✔️ ✔️ AccountIdLookupOfTmember_account
CompactBalanceunbonding_points
Pool withdraw unbonded ✔️ ✔️ PoolIdpool_id
u32num_slashing_spans
Withdraw Unbonded ✔️ ✔️ ✔️ AccountIdLookupOfTmember_account
u32num_slashing_spans
Create ✔️ ✔️ ✔️ CompactBalanceamount
AccountIdLookupOfTroot
AccountIdLookupOfTnominator
AccountIdLookupOfTbouncer
Create with pool id ✔️ ✔️ CompactBalanceamount
AccountIdLookupOfTroot
AccountIdLookupOfTnominator
AccountIdLookupOfTbouncer
PoolIdpool_id
Nominate ✔️ ✔️ ✔️ PoolIdpool_id
VecAccountIdvalidators
Set state ✔️ ✔️ ✔️ PoolIdpool_id
PoolStatestate
Set metadata ✔️ ✔️ ✔️ PoolIdpool_id
Vecu8metadata
Set configs ✔️ ✔️ ConfigOpBalanceOfTmin_join_bond
ConfigOpBalanceOfTmin_create_bond
ConfigOpu32max_pools
ConfigOpu32max_members
ConfigOpu32max_members_per_pool
ConfigOpPerbillglobal_max_commission
Update roles ✔️ ✔️ ✔️ PoolIdpool_id
ConfigOpAccountIdnew_root
ConfigOpAccountIdnew_nominator
ConfigOpAccountIdnew_bouncer
Chill ✔️ ✔️ ✔️ PoolIdpool_id
Bond extra other ✔️ ✔️ AccountIdLookupOfTmember
BondExtraBalanceOfTextra
Set claim permission ✔️ ✔️ ✔️ ClaimPermissionpermission
Claim payout other ✔️ ✔️ ✔️ AccountIdother
Set commission ✔️ ✔️ ✔️ PoolIdpool_id
OptionTuplePerbillAccountIdnew_commission
Set commission max ✔️ ✔️ ✔️ PoolIdpool_id
Perbillmax_commission
Set commission change rate ✔️ ✔️ ✔️ PoolIdpool_id
CommissionChangeRateBlockNumberchange_rate
Claim commission ✔️ ✔️ ✔️ PoolIdpool_id
Adjust pool deposit ✔️ ✔️ PoolIdpool_id
Set commission claim permission ✔️ ✔️ PoolIdpool_id
OptionCommissionClaimPermissionAccountIdpermission

Identity

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Add registrar AccountIdLookupOfTaccount
Set identity ✔️ ✔️ IdentityInfoinfo
Set subs VecTupleAccountIdDatasubs
Clear identity ✔️ ✔️
Request judgement Compactu32reg_index
Compactu128max_fee
Cancel request RegistrarIndexreg_index
Set fee Compactu32index
Compactu128fee
Set account id Compactu32index
AccountIdLookupOfTnew_
Set fields Compactu32index
IdentityInformationasIdentityInformationProviderFieldsIdentifierfields
Provide judgement Compactu32reg_index
AccountIdLookupOfTtarget
JudgementBalanceOfTjudgement
Hashidentity
Kill identity AccountIdLookupOfTtarget
Add sub AccountIdLookupOfTsub
Datadata
Rename sub AccountIdLookupOfTsub
Datadata
Remove sub AccountIdLookupOfTsub
Quit sub
Add username authority AccountIdLookupOfTauthority
Vecu8suffix
u32allocation
Remove username authority AccountIdLookupOfTauthority
Set username for AccountIdLookupOfTwho
Vecu8username
OptionOffchainSignaturesignature
Accept username UsernameTusername
Remove expired approval UsernameTusername
Set primary username UsernameTusername
Remove dangling username UsernameTusername

Mandate

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Mandate ✔️ ✔️ Callcall

Vector

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Fulfill call H256function_id
FunctionInputinput
FunctionOutputoutput
FunctionProofproof
Compactu64slot
Execute ✔️ ✔️ Compactu64slot
AddressedMessageaddr_message
ValidProofaccount_proof
ValidProofstorage_proof
Source chain froze Compactu32source_chain_id
boolfrozen
Send message ✔️ ✔️ Messagemessage
H256to
Compactu32domain
Set poseidon hash Compactu64period
BoundedVecu8poseidon_hash
Set broadcaster Compactu32broadcaster_domain
H256broadcaster
Set whitelisted domains BoundedVecu32ConstU3210_000value
Set configuration Configurationvalue
Set function ids OptionTupleH256H256value
Set step verification key OptionBoundedVecu8ConstU3210_000value
Set rotate verification key OptionBoundedVecu8ConstU3210_000value
Failed send message txs VecCompactu32failed_txs
Set updater H256updater

Proxy

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Proxy ✔️ ✔️ ✔️ AccountIdLookupOfTreal
OptionProxyTypeforce_proxy_type
Callcall
Add proxy ✔️ ✔️ ✔️ AccountIdLookupOfTdelegate
ProxyTypeproxy_type
BlockNumberdelay
Remove proxy ✔️ ✔️ ✔️ AccountIdLookupOfTdelegate
ProxyTypeproxy_type
BlockNumberdelay
Remove proxies
Create pure ProxyTypeproxy_type
BlockNumberdelay
u16index
Kill pure AccountIdLookupOfTspawner
ProxyTypeproxy_type
u16index
Compactu32height
Compactu32ext_index
Announce AccountIdLookupOfTreal
CallHashOfcall_hash
Remove announcement AccountIdLookupOfTreal
CallHashOfcall_hash
Reject announcement AccountIdLookupOfTdelegate
CallHashOfcall_hash
Proxy announced AccountIdLookupOfTdelegate
AccountIdLookupOfTreal
OptionProxyTypeforce_proxy_type
Callcall

TxPause

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Pause RuntimeCallNameOfTfull_name
Unpause RuntimeCallNameOfTident

TreasuryCommittee

Name Nano S Nano S XL Nano SP/X - Stax Nesting Arguments
Set members VecAccountIdnew_members
OptionAccountIdprime
MemberCountold_count
Execute Proposalproposal
Compactu32length_bound
Propose Compactu32threshold
Proposalproposal
Compactu32length_bound
Vote Hashproposal
Compactu32index
boolapprove
Disapprove proposal Hashproposal_hash
Close Hashproposal_hash
Compactu32index
Weightproposal_weight_bound
Compactu32length_bound