- Accepting one or multiple proposals: Multiple
- Submit by: Ongoing
- Selection by: Ongoing
- RFP Category: infrastructure
- Link to RFP-002 and Application Instructions
- Learn more about the RFP Grants Program
Use this space to discuss and ask questions about the RFP. We want this thread to facilitate a 2-way communication between the community and the team regarding this RFP.
As a Substrate-based chain, Avail inherits some of the infrastructure and tooling created for the Polkadot/Kusama ecosystem. However, Avail implements certain changes to the chain that make some of the tooling not work out of the box. This is the case with wallets, which need some tweaks to support Avail.
Since Avail is building a rollup infrastructure designed to provide scalable blockspace and data availability, the primary use cases for wallet integrations are:
- Validators and nominators managing their accounts and staking/nominating
- Blockchain Infrastructure providers (e.g., rollups) and applications (e.g., sovereign appchains) managing accounts used to pay transaction fees to post data to Avail
- End users using applications that post transactions onto Avail
A wallet tailored to work with Avail would ideally have the following features:
The following are key features for the user types above, with some Avail-specific notes.
- Create account
- Import account (e.g., created via the explorer or subxt)
- Export account
- Receive AVL transfers
- Transfer AVL to another account
- Bonding to validate, nominate, or join a nomination pool
- Bonding more funds
- Unbonding and withdrawing unbonded funds
- Embedded light client for verifying availability and other functions
Avail has a light client implemented in Rust that can verify the chain’s published blocks are indeed available, without downloading the entire blocks. It does this by using DAS (Data Availability Sampling), coupled with KZG commitments and erasure coding to verify that sampled data is accurate. Only a few KBs need to be downloaded to provide high guarantees of availability.
For clarity—there are some features sometimes found in wallets that are not supported in Avail directly but on execution layers built on top of Avail:
AVL transfers are important for Avail users, but other types of tokens are not directly supported, because Avail does not have an execution layer. Other tokens could be implemented by an execution layer higher in the modular stack, but those are out of the scope of this document.
For the same reason, Avail does not directly support dapps—in the modular stack these are higher, implemented as either appchains or contracts on a chain on Avail.
Avail does not yet have a token bridging solution in place, only a lower-level attestation bridge with Ethereum. We do hope to have a smooth way to exchange AVL in the future.
Avail blocks have some header changes that require some configuration to the Polkadot tooling to make RPC calls. See the
rpc, types, and signedExtensions options passed to the polkadot.js API in this example.
Beyond that, much of the tooling should work.
- Avail supports
ed25519keys as accounts, and all of the standard Polkadot tooling will work with them.
- Transfers work via the standard balances pallet extrinsics without any changes.
An exception is the Polkadot browser extension, which currently does not work.
Visit the Avail Docs site to learn about Avail and how to build with it.