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
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
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Remark | ✔️ | ✔️ | ✔️ | Bytes remark |
|
Set heap pages | ✔️ | ✔️ | ✔️ | u64 pages |
|
Set code | ✔️ | ✔️ | ✔️ | Bytes code |
|
Set code without checks | ✔️ | ✔️ | ✔️ | Vecu8 code |
|
Set storage | VecKeyValue items |
||||
Kill storage | VecKey keys |
||||
Kill prefix | Key prefixu32 subkeys |
||||
Remark with event | ✔️ | ✔️ | ✔️ | Bytes remark |
|
Authorize upgrade | ✔️ | ✔️ | Hash code_hash |
||
Authorize upgrade without checks | ✔️ | ✔️ | Hash code_hash |
||
Apply authorized upgrade | ✔️ | ✔️ | Vecu8 code |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Batch | ✔️ | ✔️ | ✔️ | VecCall calls |
|
As derivative | u16 indexCall call |
||||
Batch all | ✔️ | ✔️ | ✔️ | VecCall calls |
|
Dispatch as | BoxPalletsOrigin as_originCall call |
||||
Force batch | ✔️ | ✔️ | ✔️ | VecCall calls |
|
With weight | ✔️ | ✔️ | Call callWeight weight |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Report equivocation | BoxEquivocationProofHeader equivocation_proofKeyOwnerProof key_owner_proof |
||||
Report equivocation unsigned | BoxEquivocationProofHeader equivocation_proofKeyOwnerProof key_owner_proof |
||||
Plan config change | NextConfigDescriptor config |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Set | Compactu64 now |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Claim | AccountIndex index |
||||
Transfer | AccountIdLookupOfT new_AccountIndex index |
||||
Free | AccountIndex index |
||||
Force transfer | AccountIdLookupOfT new_AccountIndex indexbool freeze |
||||
Freeze | AccountIndex index |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Transfer allow death | ✔️ | ✔️ | ✔️ | ✔️ | AccountIdLookupOfT destCompactBalance amount |
Force transfer | ✔️ | ✔️ | ✔️ | ✔️ | AccountIdLookupOfT sourceAccountIdLookupOfT destCompactBalance amount |
Transfer keep alive | ✔️ | ✔️ | ✔️ | ✔️ | AccountIdLookupOfT destCompactBalance amount |
Transfer all | ✔️ | ✔️ | ✔️ | ✔️ | AccountIdLookupOfT destbool keep_alive |
Force unreserve | ✔️ | ✔️ | AccountIdLookupOfT whoBalance amount |
||
Upgrade accounts | ✔️ | ✔️ | VecAccountId who |
||
Force set balance | ✔️ | ✔️ | AccountIdLookupOfT whoCompactBalance new_free |
||
Force adjust total issuance | ✔️ | ✔️ | AdjustmentDirection directionCompactBalance delta |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Submit unsigned | BoxRawSolutionSolutionOfMinerConfig raw_solutionSolutionOrSnapshotSize witness |
||||
Set minimum untrusted score | OptionElectionScore maybe_next_score |
||||
Set emergency election result | SupportsAccountId supports |
||||
Submit | BoxRawSolutionSolutionOfMinerConfig raw_solution |
||||
Governance fallback | Optionu32 maybe_max_votersOptionu32 maybe_max_targets |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Bond | ✔️ | ✔️ | ✔️ | ✔️ | CompactBalance amountRewardDestination payee |
Bond extra | ✔️ | ✔️ | ✔️ | ✔️ | CompactBalance amount |
Unbond | ✔️ | ✔️ | ✔️ | ✔️ | CompactBalance amount |
Withdraw Unbonded | ✔️ | ✔️ | ✔️ | ✔️ | u32 num_slashing_spans |
Validate | ✔️ | ✔️ | ✔️ | ✔️ | ValidatorPrefs prefs |
Nominate | ✔️ | ✔️ | ✔️ | ✔️ | VecAccountIdLookupOfT targets |
Chill | ✔️ | ✔️ | ✔️ | ✔️ | |
Set payee | ✔️ | ✔️ | ✔️ | ✔️ | RewardDestination payee |
Set controller | ✔️ | ✔️ | ✔️ | ✔️ | |
Set validator count | ✔️ | ✔️ | Compactu32 new_ |
||
Increase validator count | ✔️ | ✔️ | Compactu32 additional |
||
Scale validator count | ✔️ | ✔️ | Percent factor |
||
Force no eras | ✔️ | ✔️ | |||
Force new era | ✔️ | ✔️ | |||
Set invulnerables | ✔️ | ✔️ | VecAccountId invulnerables |
||
Force unstake | ✔️ | ✔️ | AccountId stashu32 num_slashing_spans |
||
Force new era always | ✔️ | ✔️ | |||
Cancel deferred slash | ✔️ | ✔️ | EraIndex eraVecu32 slash_indices |
||
Payout stakers | ✔️ | ✔️ | ✔️ | ✔️ | AccountId validator_stashEraIndex era |
Rebond | ✔️ | ✔️ | ✔️ | ✔️ | CompactBalance amount |
Reap stash | ✔️ | ✔️ | AccountId stashu32 num_slashing_spans |
||
Kick | ✔️ | ✔️ | VecAccountIdLookupOfT who |
||
Set staking configs | ✔️ | ✔️ | ConfigOpBalanceOfT min_nominator_bondConfigOpBalanceOfT min_validator_bondConfigOpu32 max_nominator_countConfigOpu32 max_validator_countConfigOpPercent chill_thresholdConfigOpPerbill min_commission |
||
Chill other | ✔️ | ✔️ | AccountId stash |
||
Force apply min commission | ✔️ | ✔️ | AccountId validator_stash |
||
Set min commission | ✔️ | ✔️ | Perbill new_ |
||
Payout stakers by page | ✔️ | ✔️ | AccountId validator_stashEraIndex eraPage page |
||
Update payee | ✔️ | ✔️ | AccountId controller |
||
Deprecate controller batch | BoundedVecAccountIdMaxControllersInDeprecationBatch controllers |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Set keys | ✔️ | ✔️ | ✔️ | ✔️ | Keys keysBytes proof |
Purge keys | ✔️ | ✔️ | ✔️ | ✔️ |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Set members | VecAccountId new_membersOptionAccountId primeMemberCount old_count |
||||
Execute | Proposal proposalCompactu32 length_bound |
||||
Propose | Compactu32 thresholdProposal proposalCompactu32 length_bound |
||||
Vote | Hash proposalCompactu32 indexbool approve |
||||
Disapprove proposal | Hash proposal_hash |
||||
Close | Hash proposal_hashCompactu32 indexWeight proposal_weight_boundCompactu32 length_bound |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Report equivocation | BoxEquivocationProofHashBlockNumber equivocation_proofKeyOwnerProof key_owner_proof |
||||
Report equivocation unsigned | BoxEquivocationProofHashBlockNumber equivocation_proofKeyOwnerProof key_owner_proof |
||||
Note stalled | BlockNumber delayBlockNumber best_finalized_block_number |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Propose spend | CompactBalance amountAccountIdLookupOfT beneficiary |
||||
Reject proposal | Compactu32 proposal_id |
||||
Approve proposal | Compactu32 proposal_id |
||||
Spend local | CompactBalance amountAccountIdLookupOfT beneficiary |
||||
Remove approval | Compactu32 proposal_id |
||||
Spend | BoxAssetKind asset_kindCompactBalance amountBoxBeneficiaryLookupOf beneficiaryOptionBlockNumber valid_from |
||||
Payout | SpendIndex index |
||||
Check status | SpendIndex index |
||||
Void spend | SpendIndex index |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Sudo | Call call |
||||
Sudo unchecked weight | Call callWeight weight |
||||
Set key | AccountIdLookupOfT new_ |
||||
Sudo as | AccountIdLookupOfT whoCall call |
||||
Remove key |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Heartbeat | HeartbeatBlockNumber heartbeatAuthorityIdasRuntimeAppPublicSignature signature |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Schedule | BlockNumber whenOptionschedulePeriodBlockNumber maybe_periodicschedulePriority priorityCall call |
||||
Cancel | BlockNumber whenu32 index |
||||
Schedule named | TaskName idBlockNumber whenOptionschedulePeriodBlockNumber maybe_periodicschedulePriority priorityCall call |
||||
Cancel named | TaskName id |
||||
Schedule after | BlockNumber afterOptionschedulePeriodBlockNumber maybe_periodicschedulePriority priorityCall call |
||||
Schedule named after | TaskName idBlockNumber afterOptionschedulePeriodBlockNumber maybe_periodicschedulePriority priorityCall call |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Create application key | ✔️ | ✔️ | AppKey key |
||
Submit data | ✔️ | ✔️ | AppData data |
||
Submit block length proposal | ✔️ | ✔️ | u32 rowsu32 cols |
||
Set application key | ✔️ | ✔️ | AppKey old_keyAppKey new_key |
||
Set submit data fee modifier | DispatchFeeModifier modifier |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Note preimage | Vecu8 bytes |
||||
Unnote preimage | Hash hash |
||||
Request preimage | Hash hash |
||||
Unrequest preimage | Hash hash |
||||
Ensure updated | VecHash hashes |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
As multi threshold 1 | ✔️ | ✔️ | ✔️ | VecAccountId other_signatoriesCall call |
|
As multi | ✔️ | ✔️ | ✔️ | u16 thresholdVecAccountId other_signatoriesOptionTimepoint maybe_timepointCall callWeight max_weight |
|
Approve as multi | ✔️ | ✔️ | ✔️ | u16 thresholdVecAccountId other_signatoriesOptionTimepoint maybe_timepointH256 call_hashWeight max_weight |
|
Cancel as multi | ✔️ | ✔️ | ✔️ | u16 thresholdVecAccountId other_signatoriesTimepoint timepointH256 call_hash |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Rebag | AccountIdLookupOfT dislocated |
||||
Put in front of | AccountIdLookupOfT lighter |
||||
Put in front of other | AccountIdLookupOfT heavierAccountIdLookupOfT lighter |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Join | ✔️ | ✔️ | ✔️ | CompactBalance amountPoolId pool_id |
|
Bond extra | ✔️ | ✔️ | ✔️ | BondExtraBalanceOfT extra |
|
Claim payout | ✔️ | ✔️ | ✔️ | ||
Unbond | ✔️ | ✔️ | ✔️ | AccountIdLookupOfT member_accountCompactBalance unbonding_points |
|
Pool withdraw unbonded | ✔️ | ✔️ | PoolId pool_idu32 num_slashing_spans |
||
Withdraw Unbonded | ✔️ | ✔️ | ✔️ | AccountIdLookupOfT member_accountu32 num_slashing_spans |
|
Create | ✔️ | ✔️ | ✔️ | CompactBalance amountAccountIdLookupOfT rootAccountIdLookupOfT nominatorAccountIdLookupOfT bouncer |
|
Create with pool id | ✔️ | ✔️ | CompactBalance amountAccountIdLookupOfT rootAccountIdLookupOfT nominatorAccountIdLookupOfT bouncerPoolId pool_id |
||
Nominate | ✔️ | ✔️ | ✔️ | PoolId pool_idVecAccountId validators |
|
Set state | ✔️ | ✔️ | ✔️ | PoolId pool_idPoolState state |
|
Set metadata | ✔️ | ✔️ | ✔️ | PoolId pool_idVecu8 metadata |
|
Set configs | ✔️ | ✔️ | ConfigOpBalanceOfT min_join_bondConfigOpBalanceOfT min_create_bondConfigOpu32 max_poolsConfigOpu32 max_membersConfigOpu32 max_members_per_poolConfigOpPerbill global_max_commission |
||
Update roles | ✔️ | ✔️ | ✔️ | PoolId pool_idConfigOpAccountId new_rootConfigOpAccountId new_nominatorConfigOpAccountId new_bouncer |
|
Chill | ✔️ | ✔️ | ✔️ | PoolId pool_id |
|
Bond extra other | ✔️ | ✔️ | AccountIdLookupOfT memberBondExtraBalanceOfT extra |
||
Set claim permission | ✔️ | ✔️ | ✔️ | ClaimPermission permission |
|
Claim payout other | ✔️ | ✔️ | ✔️ | AccountId other |
|
Set commission | ✔️ | ✔️ | ✔️ | PoolId pool_idOptionTuplePerbillAccountId new_commission |
|
Set commission max | ✔️ | ✔️ | ✔️ | PoolId pool_idPerbill max_commission |
|
Set commission change rate | ✔️ | ✔️ | ✔️ | PoolId pool_idCommissionChangeRateBlockNumber change_rate |
|
Claim commission | ✔️ | ✔️ | ✔️ | PoolId pool_id |
|
Adjust pool deposit | ✔️ | ✔️ | PoolId pool_id |
||
Set commission claim permission | ✔️ | ✔️ | PoolId pool_idOptionCommissionClaimPermissionAccountId permission |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Add registrar | AccountIdLookupOfT account |
||||
Set identity | IdentityInfo info |
||||
Set subs | VecTupleAccountIdData subs |
||||
Clear identity | |||||
Request judgement | Compactu32 reg_indexCompactu128 max_fee |
||||
Cancel request | RegistrarIndex reg_index |
||||
Set fee | Compactu32 indexCompactu128 fee |
||||
Set account id | Compactu32 indexAccountIdLookupOfT new_ |
||||
Set fields | Compactu32 indexIdentityInformationasIdentityInformationProviderFieldsIdentifier fields |
||||
Provide judgement | Compactu32 reg_indexAccountIdLookupOfT targetJudgementBalanceOfT judgementHash identity |
||||
Kill identity | AccountIdLookupOfT target |
||||
Add sub | AccountIdLookupOfT subData data |
||||
Rename sub | AccountIdLookupOfT subData data |
||||
Remove sub | AccountIdLookupOfT sub |
||||
Quit sub | |||||
Add username authority | AccountIdLookupOfT authorityVecu8 suffixu32 allocation |
||||
Remove username authority | AccountIdLookupOfT authority |
||||
Set username for | AccountIdLookupOfT whoVecu8 usernameOptionOffchainSignature signature |
||||
Accept username | UsernameT username |
||||
Remove expired approval | UsernameT username |
||||
Set primary username | UsernameT username |
||||
Remove dangling username | UsernameT username |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Mandate | Call call |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Fulfill call | H256 function_idFunctionInput inputFunctionOutput outputFunctionProof proofCompactu64 slot |
||||
Execute | Compactu64 slotAddressedMessage addr_messageValidProof account_proofValidProof storage_proof |
||||
Source chain froze | Compactu32 source_chain_idbool frozen |
||||
Send message | Message messageH256 toCompactu32 domain |
||||
Set poseidon hash | Compactu64 periodBoundedVecu8 poseidon_hash |
||||
Set broadcaster | Compactu32 broadcaster_domainH256 broadcaster |
||||
Set whitelisted domains | BoundedVecu32ConstU3210_000 value |
||||
Set configuration | Configuration value |
||||
Set function ids | OptionTupleH256H256 value |
||||
Set step verification key | OptionBoundedVecu8ConstU3210_000 value |
||||
Set rotate verification key | OptionBoundedVecu8ConstU3210_000 value |
||||
Failed send message txs | VecCompactu32 failed_txs |
||||
Set updater | H256 updater |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Proxy | AccountIdLookupOfT realOptionProxyType force_proxy_typeCall call |
||||
Add proxy | AccountIdLookupOfT delegateProxyType proxy_typeBlockNumber delay |
||||
Remove proxy | AccountIdLookupOfT delegateProxyType proxy_typeBlockNumber delay |
||||
Remove proxies | |||||
Create pure | ProxyType proxy_typeBlockNumber delayu16 index |
||||
Kill pure | AccountIdLookupOfT spawnerProxyType proxy_typeu16 indexCompactu32 heightCompactu32 ext_index |
||||
Announce | AccountIdLookupOfT realCallHashOf call_hash |
||||
Remove announcement | AccountIdLookupOfT realCallHashOf call_hash |
||||
Reject announcement | AccountIdLookupOfT delegateCallHashOf call_hash |
||||
Proxy announced | AccountIdLookupOfT delegateAccountIdLookupOfT realOptionProxyType force_proxy_typeCall call |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Pause | RuntimeCallNameOfT full_name |
||||
Unpause | RuntimeCallNameOfT ident |
Name | Nano S | Nano S XL | Nano SP/X - Stax | Nesting | Arguments |
---|---|---|---|---|---|
Set members | VecAccountId new_membersOptionAccountId primeMemberCount old_count |
||||
Execute | Proposal proposalCompactu32 length_bound |
||||
Propose | Compactu32 thresholdProposal proposalCompactu32 length_bound |
||||
Vote | Hash proposalCompactu32 indexbool approve |
||||
Disapprove proposal | Hash proposal_hash |
||||
Close | Hash proposal_hashCompactu32 indexWeight proposal_weight_boundCompactu32 length_bound |