FIO SDK - Requirements & recommended architecture

This document tracks the requirements for the next gen FIO SDK, a discussion of possible development paths, and the recommended architecture.

Requirements

Critical

This requirements are critical must be met.

  • Ease of integration - Integrators must be able to install the sdk and get up and running in a short amount of time

  • Limited complexity - The sdk must be simple to understand for developers

  • Limited / standard libraries - The sdk must include as few 3rd party libraries as possible and work with standard libraries as much as possible

Important

These requirements are important, but not critical.

  • Leverage existing open source eosio-based libraries (e.g., eosjs, eosio-core)

Not important

These requirements are NOT important.

  • Backward compatibility with existing SDK (it is assumed the new SDK will contain breaking changes)

Alternatives

custom sdk

Use code from existing open source projects to develop a custom sdk.

eosjs + fiosdk

Use the eosjs library and build additional FIO sdk functionality on top of this core library. This is similar to the current SDK.

eosio-core / Wallet+

Work with the Wallet+ group as they build out the EOS Network Foundation (ENF) technologies, one of which is an updated SDK.

Features and Tools

The following tools and libraries should be considered for integration and compatibility:

Tool / Library

Developer

Description

Link

Tool / Library

Developer

Description

Link

eosio-core

Greymass

JavaScript library for working with EOSIO blockchains

https://github.com/greymass/eosio-core

eosio-signing-request (ESR)

Greymass

The ESR protocol allows for an application (dapp) to generate signature requests (transactions) which can then be passed to signers (wallets) for signature creation.

https://github.com/greymass/eosio-signing-request

anchor-link

Greymass

Signature provider for EOSIO chains built on top of EOSIO Signing Requests (EEP-7)

https://github.com/greymass/anchor-link

universal-authenticator-library

EOSIO

Universal Authenticator Library (UAL) is a single API to support all eosio authentication providers.
(TBD on how this is being migrated to the ENF codebase?)

https://github.com/EOSIO/universal-authenticator-library

ual-anchor

Greymass

Gives developers the ability to request transaction signatures through Anchor using the common UAL API.

https://github.com/greymass/ual-anchor

Trust EVM

EOS Network Foundation (ENF)

EOS EVM (EVM contract compatibility)

https://medium.com/eos-network-foundation/eos-evm-launches-on-jungle-testnet-with-full-ethereum-and-rpc-compatibility-f741485b5577

Metamask on EOS

EOS Argentina

Ethereum contract that interacts with EOSIO chain (maps ETH addresses to EOSIO accounts)

Relates to EOS EVM

https://forums.eoscommunity.org/t/metamask-on-eos/2167

https://forums.eoscommunity.org/t/eos-mainnet-is-now-available-on-metamask/4264

https://medium.com/eos-network-foundation/evm-bringing-the-ethereum-virtual-machine-to-eos-f26b88466d99