or how to connect all Cardano wallets, to all devices and platforms with universal building blocks: JSON and URLs
This documents describes a webpage-based communication bridge allowing URLs to interface with any other Cardano wallet through GameChanger Wallet. This is done packing JSON based DSL scripts, called GCScript, into URLs and allowing GameChanger Wallet to unpack them and execute them only under user approval. These scope-limited non-turing complete scripts and their JSON results can be privacy-preserving depending on developer’s good practices.
This communication is done without any injected javascript code into webpages, and even without external libraries or dependencies as basic functionality needed for encoding and decoding the messages towards/from the wallet is nowadays natively present in browsers and many other platforms APIs/libraries.
This specification concerns any past and future Cardano era as GCScript is a very extensible and flexible DSL, prepared to evolve for the future.
This is intended to cover much more use cases as web3 for Ethereum or EIP-0012 for Ergo as this 2-year old model has been designed from zero without any other known reference on blockchain space to specially address several issues concerning innovative eUTXO blockchains like Cardano.
Cardano is not Ethereum. Since 2021 GameChanger Wallet was committed to find natural design patterns that would make sense for an eUTXO model blockchain like Cardano, slow epic work that had no other prior references on blockchain space and had to be solved from zero.
Cardano have not seen yet it’s full potential. Desktop defi-only applications are only a glimpse of what we can be doing out there. The problem: The feature-limited design of overall wallet + dapp connector ecosystem we currently have is not allowing us to look further. We push harder and harder to stablish by force of standards, rules and patches that are harming our exponential growth. With our flexible solution, a dapp or a power user can connect all these Cardano wallets to all these audiences with the same JSON code:
Wallets:
Audiences:
All these while democratizing access to Cardano with a platform-independent JSON-based scripting language as interoperability layer that handles 100% the off-chain and the on-chain eUTXO code requiring no additional dependencies, libraries, SDKs, completely opposite approach to current mayor adopted ecosystem standards. Because why would I make a web3 wallet that pushes developers to build dapps that run 95% of their code outside user browsers? This early design principle based on an Ethereum account model solution has shaped an un-interoperable, siloed, centralized, backend-excessive, opaque, in-auditable ecosystem and with our model we can help to change this if we truly care to improve.
Suggested article:
Differently from CIP-30, we do not inject any executable code inside dapps to stablish connections, and we don’t need external dependencies or libraries to encode and decode the messages we use to connect with the wallet.
Its important to clarify that GCScript is fully processed and executed on user’s browsers, not on our backend. Also when encrypted, it’s only decrypted on client side.
Both type of communications can be encapsulated on different transports ( see Transports ):
All transports can use these encodings/compression algorithms (see Encodings):
By default all GCScripts in dapps, hardware devices, QR codes, social media links are
The wallet itself uses GCScript dapp connections as a way to open source our code and to let builders clone it.
Last, using Cardano chain itself as permanent immutable storage solution and as an indexed database is that we can put less code and data on centralized backends and databases, and start moving it on-chain for a more interoperable, open source, fault-tolerant and resilient ecosystem
Suggested articles:
Previous: Universal Dapp Connector | Home: General Documentation |