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.
Details on Vectis user features can be found in our introductory article.
Vectis accounts come with base features:
- Seedless accounts: Accounts are by default controlled by an
Entity
using Passkey creation and tx signing - Extensible plugin features: supercharge and customise your Vectis Account with automated transactions and pre-transaction workflow / guards. See plugin section
- (Soon) Account controller rotation: Accounts can rotate their own
Entity
in the case of updates, this can be extended in the future for guardianships - ICA: the creation of ICA is baked into the Vectis Accounts
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 checks: Vectis is a compliant solution and satisfies crypto AML / travel checks
- Transparency: Users can at all time check any status on their wallet, enhanced with Vectis clients push notifications
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.
For WASM build locally you may need to first:
- remove [net] config in .cargo
- make sure
rust-optimizer
does not includevectis-contract-tests
by"packages/*",
->"packages/vectis",
in the rootCargo.toml
member section. - run
cargo build
to update the cargo.lock to exclude thepackages/vectis-tests
package
# Builds wasm files:
# (Depending on your arch, it will be either *.wasm or *-aarch64.wasm output)
make build
# Builds schemas
make schemas && cd ts && npm run generate
# For all contracts using test-tube
# This requires wasm contracts from previous step
UNAME=$(uname -p) cargo test -- test_tube
# For all cw-multi-tests
cargo test -- unit_tests
# For all tests
UNAME=$(uname -p) cargo test