Skip to content

aurora-is-near/backstage-plugin-blockchainradar

Repository files navigation

Blockchain Radar Plugin for Backstage

Blockchain Radar for Backstage is a collection of plugins that aims to solve asset management on EVM chains and on NEAR.

Project license CI GitHub package.json version (subfolder of monorepo) GitHub package.json version (subfolder of monorepo) GitHub package.json version (subfolder of monorepo)

Goals

  • Keep an inventory of contracts, multisig safes and access keys
  • Provide insights about the state of on-chain access management

Features

  • First-class support for smart contracts & multisigs in Software Catalog
    • Cross-contract relationships mapping via on-chain state ingestion
    • Etherscan/Blockscout source code and verification status discovery
  • Multisig support: Gnosis Safe and SputnikDAO
    • Policy & configuration tracking
    • Mapping of the signers to the User entities
  • NEAR accounts & EVM EOA addresses management
  • Role-Based Access Control monitoring
  • Unknown & deprecated access keys tracking on NEAR
  • Time since last transaction tracking (e.g. to monitor inactive ledgers)
  • Security tiering
  • Exporting data
    • Handlebars templates
    • Datadog metrics

Getting started

How does it work?

The traditional asset management model does not map well to the blockchain world so the plugin reuses the classic Backstage entites in order to keep things simple:

  • Contract source code: kind:Component, type:contract
  • Deployed contract: kind: API, type: contract-deployment
  • Multisig component: kind: Component, type: multisig
  • Multisig safe deployment: kind: API, type: multisig-deployment
  • NEAR Account / EVM EOA address: kind: Resource, type: signer-address
  • NEAR AccessKey: kind: Resource, type: access-key
  • RBAC Role: kind: API, type: role-group

It uses deployedAt and interactsWith attributes in the spec (e.g. like here) to start tracking on-chain state and establishing relationships with other entities.

Additionally, it introduces interactsWith, keys and deprecated attributes to User entities. It allows the plugin to automatically establish relationships between users and contracts, multisig signers and access keys.

Discovered relationships

In this example the relationships were not specified with interactsWith spec, instead they were automatically ingested by the plugin by calling the view methods on the contract, and mapping extracted addresses to the existing entities in the catalog.

Blockchain insights card

Exporting

You can periodically export the list of all multisigs to a github repository with github-helpers.

Additionally, you can find examples of how to send blockchain metrics to Datadog.

Roadmap

  • Support for multiple SputnikDAO groups
  • Support for OpenZeppelin Proxy introspection