nymlab / vectis

The Foundation for Compliant Self-sovereign Wallets

Home Page:https://vectis.space

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vectis - Smart Contract Wallet Infrastructure

Website Discord

Cosmowasm 0.28.0 codecov_img

Twitter

Overview

Vectis is a smart contract wallet infrastructure project that allows user to interact with dApps on the blockchain with the same amount of autonomy of a classic non-custodial solution, but supercharged with functionalities, designed to provide the user with better experience and security.

Features

Details on Vectis user features can be found in our introductory article.

Vectis accounts come with base features:

  • Guardianship - Social Recovery: in case of lost of private keys / device.
  • Guardianship - Account Freezing: for temporary disabling account (such as travel).
  • Extensible plugin features: supercharge and customise your Vectis Account with automated transactions and pre-transaction workflow / guards. See plugin section.
  • Gasless transactions: Sign transaction offline and have approved service to transact onchain.
  • Cross chain transactions: Authorise transaction on IBC / other chains with our threshold signing infrastructure (next version).
  • Integration with Self Sovereign Identity (SSI) protocols: Vectis mobile wallet combines blockchain wallet with identity wallet, an important integration to allow onchain transactions to embed ZK-proofs for identity, an important feature for mainstream adoption, especially for onchain financial applications.

With the above features, Vectis provides functionality for both retail users and businesses to satisfy regulatory requirements:

  • consumer protection: guardianship features can help recovery user funds and manage fraud risk
  • Pre-Transaction check plugins: a multisig plugin tailored to business workflow provides separation of control and verifiability
  • Transparency: Users can at all time check any status on their wallet, enhanced with Vectis clients push notifications

Plugins

Vectis is designed to be extensible with a plugin system. Much like the extensions to your browsers, Vectis accounts can add plugins to perform authorised (automated) transactions and pre-execution workflow and guards.

Plugins to Vectis Accounts can be built by any developers, Vectis provides test suite to allow developers to easily test plugins in the Vectis ecosystem.

Plugins can choose to apply to the Vectis Plugin Registry (VPR) to give users a certain level of assurance. Vectis and partnership teams is responsible for the soundness of the plugins in the registry. For more information on plugins, please see our plugins repository.

Progresive Decentralisation

VectisDAO aims to be the organisation that provides governance to the this infrastructure. This will be introduced in the next phase of Vectis.

At this phase of development, all of the Vectis codebase is open source and can be found in the Nymlab github account.


Contribute

We welcome PRs and issues 🤝

Contract Testing

# For individual contract tests
cd contracts/contract-you-want-to-test
cargo test

# For all contract unit tests
cargo test-unit

# For all multi-test
cargo test-multi

Integration Tests with Docker

This spins up two docker containers, one per chain, to test IBC interactions.

1. Set Environment

First we set up the two networks (one node each) locally. Please ensure you have set up the .env file according to the example.env.

You should check supported chains in cli/config/chains directory.

make nodes-setup
2. Compile Contracts
make build
3. Upload and instantiate contracts
make deploy

The contracts are deployed as such:

  • Remote network: all networks without DAO
  • DAO network: where the VectisDAO will live has:
    • Vectis Plugin Registry
    • Vectis Factory
    • Instances of the Proxy contract
    • Where natively the VEC tokens are minted

After upload and deploy contracts it will check the contract have the right checksum and admin.

Interacting with the blockchain

We are using CosmJS to interact with the smart contracts and Jest as testing framework for client-side tests.

About

The Foundation for Compliant Self-sovereign Wallets

https://vectis.space

License:Other


Languages

Language:Rust 49.9%Language:TypeScript 48.4%Language:Shell 1.4%Language:Dockerfile 0.2%Language:Makefile 0.1%Language:JavaScript 0.0%