{"id":19423192,"url":"https://github.com/make-software/casper-account-info-contract","last_synced_at":"2025-04-24T16:30:45.212Z","repository":{"id":46827268,"uuid":"355233867","full_name":"make-software/casper-account-info-contract","owner":"make-software","description":"Casper Account Info Contract allows account owners on the Casper Network to provide information about themselves to the public.","archived":false,"fork":false,"pushed_at":"2024-07-04T20:49:02.000Z","size":95,"stargazers_count":9,"open_issues_count":2,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-03T07:21:49.924Z","etag":null,"topics":["blockchain","blockchain-technology","casper-network","hacktoberfest","smart-contract"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/make-software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-06T15:11:36.000Z","updated_at":"2024-07-04T20:49:05.000Z","dependencies_parsed_at":"2022-09-07T19:41:25.356Z","dependency_job_id":"73311e06-a68b-44f4-bddd-a1e064856a97","html_url":"https://github.com/make-software/casper-account-info-contract","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/make-software%2Fcasper-account-info-contract","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/make-software%2Fcasper-account-info-contract/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/make-software%2Fcasper-account-info-contract/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/make-software%2Fcasper-account-info-contract/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/make-software","download_url":"https://codeload.github.com/make-software/casper-account-info-contract/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250663544,"owners_count":21467366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","blockchain-technology","casper-network","hacktoberfest","smart-contract"],"created_at":"2024-11-10T13:37:10.514Z","updated_at":"2025-04-24T16:30:44.926Z","avatar_url":"https://github.com/make-software.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Casper Account Info Contract\n\nCasper Account Info Contract allows account owners to provide information about themselves to the public by specifying a URL to a [Casper Account Info Standard](https://github.com/make-software/casper-account-info-standard) file.   \n\n## Table of contents\n\n- [Interacting with the contract](#interacting-with-the-contract)\n  - [Known contract hashes](#known-contract-hashes)\n  - [As Casper account owner](#as-casper-account-owner)\n    - [Set URL for your account](#set-url-for-your-account)\n    - [Delete the URL previously set for your account](#delete-the-url-previously-set-for-your-account)\n    - [Get the URL set for an account](#get-the-url-set-for-an-account)\n      - [Using the ```tools/get-account-info-url.sh``` and ```tools/get-account-info.sh``` scripts](#using-the-toolsget-account-info-urlsh-and-toolsget-account-infosh-scripts)\n  - [As the contract admin](#as-the-contract-admin)\n    - [Set URL for account](#set-url-for-account)\n    - [Delete URL for account](#delete-url-for-account)\n    - [Add account as an admin](#add-account-as-an-admin)\n    - [Disable admin account](#disable-admin-account)\n    - [Set amount of CSPR to burn during the first ```set_url``` call](#set-amount-of-cspr-to-burn-during-the-first-set_url-call)\n    - [Check if account is an admin](#check-if-account-is-an-admin)\n        - [Using the ```tools/is-admin.sh``` script](#using-the-toolsis-adminsh-script)\n    - [Get the amount of CSPR that should be burned on the first ```set_url``` call](#get-the-amount-of-cspr-that-should-be-burned-on-the-first-set_url-call)\n        - [Using the ```tools/get-cspr-to-burn-value.sh``` script](#using-the-toolsget-cspr-to-burn-valuesh-script)\n- [Contract deployment](#contract-deployment)\n- [Contract API](#contract-api)\n  - [Public entry points](#public-entry-points)\n    - [```set_url```](#set_url)\n    - [```get_url```](#get_url)\n    - [```delete_url```](#delete_url)\n  - [Admin entry points](#admin-entry-points)\n    - [```set_url_for_account```](#set_url_for_account)\n    - [```delete_url_for_account```](#delete_url_for_account)\n    - [```add_admin```](#add_admin)\n    - [```disable_admin```](#disable_admin)\n    - [```set_cspr_to_burn```](#set_cspr_to_burn)\n- [Development](#development)\n  - [Setup](#setup)\n  - [Build](#build)\n  - [Test](#test)\n\n## Interacting with the contract\n\nYou need to have ```casper-client``` and ```jq``` installed on your system to run the examples. The instructions have been tested on Ubuntu 20.04.2 LTS.\n\n### Install the prerequisites\n\nYou can install the required software by issuing the following commands. If you are on an up-to-date Casper node, you probably already have all of the prerequisites installed so you can skip this step.\n\n```bash\n# Update package repositories\nsudo apt update\n\n# Install the command-line JSON processor\nsudo apt install jq -y\n\n# Add Casper repository\necho \"deb https://repo.casperlabs.io/releases\" focal main | sudo tee -a /etc/apt/sources.list.d/casper.list\ncurl -O https://repo.casperlabs.io/casper-repo-pubkey.asc\nsudo apt-key add casper-repo-pubkey.asc\nsudo apt update\n\n# Install the Casper client software\nsudo apt install casper-client -y\n```\n\n### Known contract hashes\n\nTo interact with the contract you need to call it by its hash. The table below contains the known contract hashes (without the ```hash-``` prefix) on public Casper networks:\n\nNetwork | Account info contract hash | Contract owner\n---|---|---\nTestnet | ```2f36a35edcbaabe17aba805e3fae42699a2bb80c2e0c15189756fdc4895356f8``` | Make Software\nMainnet | ```fb8e0215c040691e9bbe945dd22a00989b532b9c2521582538edb95b61156698``` | Casper Association\n\nNetwork | Json File Name |\n---|---|\nTestnet | ```account-info.casper-test.json``` |\nMainnet | ```account-info.casper.json``` |\n\n### As Casper account owner\n\nPlease set the following environment variables, which are reused across the examples:\n\n```bash\nNODE_ADDRESS=127.0.0.1\nCHAIN_NAME=$(curl -s http://$NODE_ADDRESS:8888/status | jq -r '.chainspec_name')\nACCOUNT_KEYS_PATH=/etc/casper/validator_keys\nACCOUNT_INFO_CONTRACT_HASH=2f36a35edcbaabe17aba805e3fae42699a2bb80c2e0c15189756fdc4895356f8\n```\n\nThe values provided above assume that you are running commands on your Testnet validator node. If you are on your Mainnet validator node, please adjust the value of the `ACCOUNT_INFO_CONTRACT_HASH` to match the Mainnet contract.\n\n#### Set URL for your account\n\n\u003e **Payment:** The ```set_url``` entry point call payment should be 15 CSPR. The deploy may fail with an \"Out of gas\" error if a smaller amount provided. For the consecutive ```set_url``` calls the advised payment amount is 0.5 CSPR\n\nThe command below sets the top level domain URL for an account information file hosted at [https://casper-account-info-example.make.services/.well-known/casper/account-info.casper-test.json](https://casper-account-info-example.make.services/.well-known/casper/account-info.casper-test.json). (Please note that the url you provide here will be prominently displayed on the block explorers as your official website, and your account's public key must exist in the JSON data either in the nodes or affiliated accounts section for it to be successfully verified by CSPR.live and other dApps in the Casper ecosystem.)\n\n```bash\nsudo -u casper casper-client put-deploy \\\n    --chain-name \"$CHAIN_NAME\" \\\n    --node-address \"http://$NODE_ADDRESS:7777/\" \\\n    --secret-key \"$ACCOUNT_KEYS_PATH/secret_key.pem\" \\\n    --session-hash \"$ACCOUNT_INFO_CONTRACT_HASH\" \\\n    --session-entry-point \"set_url\" \\\n    --payment-amount 15000000000 \\\n    --session-arg=url:\"string='https://casper-account-info-example.make.services'\"\n```\n\n#### Delete the URL previously set for your account\n\n\u003e **Payment:** The advised payments for the ```delete_url``` entry point call is 0.5 CSPR. The deploy may fail with an \"Out of gas\" error if a smaller amount provided.\n\n```bash\nsudo -u casper casper-client put-deploy \\\n    --chain-name \"$CHAIN_NAME\" \\\n    --node-address \"http://$NODE_ADDRESS:7777/\" \\\n    --secret-key \"$ACCOUNT_KEYS_PATH/secret_key.pem\" \\\n    --session-hash \"$ACCOUNT_INFO_CONTRACT_HASH\" \\\n    --session-entry-point \"delete_url\" \\\n    --payment-amount 500000000\n```\n\n#### Get the URL set for an account\n\n##### Using ```casper-client```\n\nThe URL string can be received by querying the ```account-info-urls``` dictionary key named as the corresponding account hash, which can be accessed by URef with the same name stored under the contract named keys.\n\n###### Get the ```STATE_ROOT_HASH``` value\n\n```bash\nSTATE_ROOT_HASH=$(casper-client get-state-root-hash --node-address http://$NODE_ADDRESS:7777 | jq -r '.result | .state_root_hash')\n```\n\n###### Get the ```account-info-contract-url``` dictionary URef\n\n```bash\nACCOUNT_INFO_URLS_DICT_UREF=$(casper-client query-state \\\n  --node-address http://$NODE_ADDRESS:7777 \\\n  --state-root-hash \"$STATE_ROOT_HASH\" \\\n  --key \"hash-$ACCOUNT_INFO_CONTRACT_HASH\" \\\n| jq -rc '.result | .stored_value | .Contract | .named_keys | map(select(.name | contains(\"account-info-urls\"))) | .[] .key')\n```\n\n###### Query the dictionary \n\n```bash\nPUBLIC_KEY=\u003cput here the public key you want to query URL for\u003e\n\ncasper-client get-dictionary-item \\\n  --node-address http://$NODE_ADDRESS:7777 \\\n  --state-root-hash \"$STATE_ROOT_HASH\" \\\n  --seed-uref  \"$ACCOUNT_INFO_URLS_DICT_UREF\" \\\n  --dictionary-item-key \"$(casper-client account-address -public-key $PUBLIC_KEY | sed -r 's/account-hash-//g')\"\n```\n\n##### Using the ```tools/get-account-info-url.sh``` and ```tools/get-account-info.sh``` scripts\n\n###### Get the URL\n\n```bash\n./get-account-info-url.sh --node-address=$NODE_ADDRESS --contract-hash=$ACCOUNT_INFO_CONTRACT_HASH --public-key=$PUBLIC_KEY\n```\n\n###### Get the account information file content\n\n```bash\n./get-account-info.sh --node-address=$NODE_ADDRESS --contract-hash=$ACCOUNT_INFO_CONTRACT_HASH --public-key=$PUBLIC_KEY\n```\n\nYou can query the specific fields with ```jq```. The command below print the public key owner name:\n\n```bash\n./get-account-info.sh --node-address=$NODE_ADDRESS --contract-hash=$ACCOUNT_INFO_CONTRACT_HASH --public-key=$PUBLIC_KEY | jq -r '.owner | .name'\n```\n\n### As the contract admin \n\nPlease set the following environment variables, which are reused across the examples:\n\n```bash\nNODE_ADDRESS=127.0.0.1\nCHAIN_NAME=$(curl -s http://$NODE_ADDRESS:8888/status | jq -r '.chainspec_name')\nCONTRACT_OWNER_KEYS_PATH=/etc/casper/validator_keys\nACCOUNT_INFO_CONTRACT_HASH=2f36a35edcbaabe17aba805e3fae42699a2bb80c2e0c15189756fdc4895356f8\n```\n\nThe values provided above assume that you are running commands on your Testnet node.\n\n#### Set URL for account\n\n\u003e **Payment:** The advised payments for the ```set_url_for_account``` entry point call is 0.5 CSPR. The deploy may fail with an \"Out of gas\" error if a smaller amount provided.\n\n```\nPUBLIC_KEY=\u003cput here the public key you want to set URL for\u003e\n\ncasper-client put-deploy \\\n    --chain-name \"$CHAIN_NAME\" \\\n    --node-address \"http://$NODE_ADDRESS:7777/\" \\\n    --secret-key \"$CONTRACT_OWNER_KEYS_PATH/secret_key.pem\" \\\n    --session-hash \"$ACCOUNT_INFO_CONTRACT_HASH\" \\\n    --session-entry-point \"set_url_for_account\" \\\n    --payment-amount 500000000 \\\n    --session-arg=account:\"account_hash='$(casper-client account-address -public-key $PUBLIC_KEY)'\" \\\n    --session-arg=url:\"string='https://casper-account-info-example.make.services'\"\n```\n\n#### Delete URL for account\n\n\u003e **Payment:** The advised payments for the ```delete_url_for_account``` entry point call is 0.5 CSPR. The deploy may fail with an \"Out of gas\" error if a smaller amount provided.\n\n```\nPUBLIC_KEY=\u003cput here the public key you want to delete URL for\u003e\n\ncasper-client put-deploy \\\n    --chain-name \"$CHAIN_NAME\" \\\n    --node-address \"http://$NODE_ADDRESS:7777/\" \\\n    --secret-key \"$CONTRACT_OWNER_KEYS_PATH/secret_key.pem\" \\\n    --session-hash \"$ACCOUNT_INFO_CONTRACT_HASH\" \\\n    --session-entry-point \"delete_url_for_account\" \\\n    --payment-amount 500000000 \\\n    --session-arg=account:\"account_hash='$(casper-client account-address --public-key $PUBLIC_KEY)'\"\n```\n\n#### Add account as an admin\n\n\u003e **Payment:** The advised payments for the ```add_admin``` entry point call is 0.5 CSPR. The deploy may fail with an \"Out of gas\" error if a smaller amount provided.\n\n```\nPUBLIC_KEY=\u003cput here the public key of the account your want to make an admin\u003e\n\ncasper-client put-deploy \\\n    --chain-name \"$CHAIN_NAME\" \\\n    --node-address \"http://$NODE_ADDRESS:7777/\" \\\n    --secret-key \"$CONTRACT_OWNER_KEYS_PATH/secret_key.pem\" \\\n    --session-hash \"$ACCOUNT_INFO_CONTRACT_HASH\" \\\n    --session-entry-point \"add_admin\" \\\n    --payment-amount 500000000 \\\n    --session-arg=account:\"account_hash='$(casper-client account-address --public-key $PUBLIC_KEY)'\"\n```\n\n#### Disable admin account\n\n\u003e **Payment:** The advised payments for the ```disable_admin``` entry point call is 0.5 CSPR. The deploy may fail with an \"Out of gas\" error if a smaller amount provided.\n\n```\nPUBLIC_KEY=\u003cput here the public key of the admin account your want to disable\u003e\n\ncasper-client put-deploy \\\n    --chain-name \"$CHAIN_NAME\" \\\n    --node-address \"http://$NODE_ADDRESS:7777/\" \\\n    --secret-key \"$CONTRACT_OWNER_KEYS_PATH/secret_key.pem\" \\\n    --session-hash \"$ACCOUNT_INFO_CONTRACT_HASH\" \\\n    --session-entry-point \"disable_admin\" \\\n    --payment-amount 500000000 \\\n    --session-arg=account:\"account_hash='$(casper-client account-address -public-key $PUBLIC_KEY)'\"\n```\n\n#### Set amount of CSPR to burn during the first ```set_url``` call\n\nTo avoid spamming the contract with URL entries the first ```set_url``` for an account will burn an amount of CSPR specified in the contract configuration (default is 9 CSPR). This entry point changes that amount.\n\n\u003e **Payment:** The advised payments for the ```set_cspr_to_burn``` entry point call is 0.5 CSPR. The deploy may fail with an \"Out of gas\" error if a smaller amount provided.\n\n```\nPUBLIC_KEY=\u003cput here the public key of the admin account your want to disable\u003e\n\ncasper-client put-deploy \\\n    --chain-name \"$CHAIN_NAME\" \\\n    --node-address \"http://$NODE_ADDRESS:7777/\" \\\n    --secret-key \"$CONTRACT_OWNER_KEYS_PATH/secret_key.pem\" \\\n    --session-hash \"$ACCOUNT_INFO_CONTRACT_HASH\" \\\n    --session-entry-point \"set_cspr_to_burn\" \\\n    --payment-amount 500000000 \\\n    --session-arg=cspr_to_burn:\"u32='9'\"\n```\n\n#### Check if account is an admin\n\n##### Using ```casper-client```\n\nThe URL string can be received by querying the ```account-info-admins``` dictionary key named as the corresponding account hash, which can be accessed by URef with the same name stored under the contract named keys.\n\n###### Get the ```account-info-contract-url``` dictionary URef\n\n```bash\nACCOUNT_INFO_ADMINS_DICT_UREF=$(casper-client query-state \\\n  --node-address http://$NODE_ADDRESS:7777 \\\n  --state-root-hash \"$STATE_ROOT_HASH\" \\\n  --key \"hash-$ACCOUNT_INFO_CONTRACT_HASH\" \\\n| jq -rc '.result | .stored_value | .Contract | .named_keys | map(select(.name | contains(\"account-info-admins\"))) | .[] .key')\n```\n\n###### Query the dictionary\n\n```bash\nPUBLIC_KEY=\u003cthe public key of the account you want to check\u003e\n\ncasper-client get-dictionary-item \\\n  --node-address http://$NODE_ADDRESS:7777 \\\n  --state-root-hash \"$STATE_ROOT_HASH\" \\\n  --seed-uref  \"$ACCOUNT_INFO_ADMINS_DICT_UREF\" \\\n  --dictionary-item-key \"$(casper-client account-address -public-key $PUBLIC_KEY | sed -r 's/account-hash-//g')\"\n```\n\n##### Using the ```tools/is-admin.sh``` script\n\n```bash\n./is-admin.sh --node-address=$NODE_ADDRESS --contract-hash=$ACCOUNT_INFO_CONTRACT_HASH --public-key=$PUBLIC_KEY\n```\n\n#### Get the amount of CSPR that should be burned on the first ```set_url``` call\n\n##### Using ```casper-client```\n\nThe URL string can be received by querying the ```cspr_to_burn``` value, which can be accessed by URef with the same name stored under the contract named keys.\n\n###### Get the ```account-info-contract-url``` dictionary URef\n\n```bash\nCSPR_TO_BURN_VALUE_UREF=$(casper-client query-state \\\n  --node-address http://$NODE_ADDRESS:7777 \\\n  --state-root-hash \"$STATE_ROOT_HASH\" \\\n  --key \"hash-$ACCOUNT_INFO_CONTRACT_HASH\" \\\n| jq -rc '.result | .stored_value | .Contract | .named_keys | map(select(.name | contains(\"cspr_to_burn\"))) | .[] .key')\n```\n\n###### Query the network\n\n```bash\nSTATE_ROOT_HASH=$(casper-client get-state-root-hash --node-address http://$NODE_ADDRESS:7777 | jq -r '.result | .state_root_hash')\n\ncasper-client query-state --node-address http://$NODE_ADDRESS:7777 --key \"$CSPR_TO_BURN_VALUE_UREF\" --state-root-hash \"$STATE_ROOT_HASH\" | jq -r '.result | .stored_value'\n```\n\n##### Using the ```tools/get-cspr-to-burn-value.sh``` script\n\n```bash\n./get-cspr-to-burn-value.sh --node-address=$NODE_ADDRESS --contract-hash=$ACCOUNT_INFO_CONTRACT_HASH\n```\n\n## Contract deployment\n\nSee Casper documentation about [Deploying Contracts](https://docs.casperlabs.io/en/latest/dapp-dev-guide/deploying-contracts.html) and [Contracts on the Blockchain](https://docs.casperlabs.io/en/latest/dapp-dev-guide/calling-contracts.html).\n\nAfter the contract is deployed, the contract owner account will be assigned as the first admin and will have the following named keys added:\n\nNamed key | Description\n--------- | ------------\n```account-info-latest-version-contract``` | The hash of the latest version of the contract\n```account-info-latest-version-contract-hash``` | A URef to the value that stores the hash of the latest version of the contract\n```account-info-package``` | The contract package hash\n```account-info-package-hash``` | A URef to the value that stores the contract package hash\n```account-info-admins``` | Seed URef to the dictionary that stores contract admins\n```account-info-urls``` | Seed URef to the dictionary that stores account information URLs\n\n## Contract API\n\nThe contract has two sets of entry points:\n- public entry points, which should be used by Casper account owners to provide information about themselves\n- admin entry points, which should be used by the contract administrators\n\n### Public entry points\n\n#### set_url\n\nSets a domain URL under which the account information file should be stored for the contract caller. Note, that only the top level domain without the ```.well-known/casper/account-info.\u003cNETWORK_NAME\u003e.json``` part should be provided\n\nArguments:\n\nName | Type | Description\n---- | ---- | -----------\n```url``` | ```String``` | Top level domain URL under which the account information file is stored\n\n#### get_url\n\nReturns the top level domain URL under which the account information file is stored for the given public key\n\nArguments:\n\nName | Type | Description\n---- | ---- | -----------\n```account``` | ```AccountHash``` | The account hash of the account the account information URL is requested for\n\n#### delete_url\n\nDeletes the top level domain URL under which the account information standard file is stored for the contract caller\n\nArguments: this entry point has no arguments \n\n### Admin entry points\n\nThe entry points below are available only to the accounts defined as admins.\n\n#### set_url_for_account\n\nSets a URL to the account information standard file for the provided account. \n\nArguments:\n\nName | Type | Description\n---- | ---- | -----------\n```url``` | ```String``` | Top level domain URL under which the account information file is stored\n```account``` | ```AccountHash``` | The account has of the account, the information standard file URL should be set for\n\n#### delete_url_for_account\n\nDeletes the account information standard file URL from the provided account.\n\nArguments: \n\nName | Type | Description\n---- | ---- | -----------\n```account``` | ```AccountHash``` | The account has of the account, the information standard file URL should be deleted from\n\n#### add_admin\n\nAdd another admin account. Fails if the account already added as an admin.\n\nArguments: \n\nName | Type | Description\n---- | ---- | -----------\n```account``` | ```AccountHash``` | The account hash of the new admin account.\n\n#### disable_admin\n\nDisables existing admin account. Fails if the account is not an admin or if there is only one admin account left.\n\nArguments: \n\nName | Type | Description\n---- | ---- | -----------\n```account``` | ```AccountHash``` | The account of the existing admin account, that should be disabled\n\n#### set_cspr_to_burn\n\nSets amount of CSPR that should be burned during the ```set_url``` entry point execution, increasing the execution price\n\nArguments:\n\nName | Type | Description\n---- | ---- | -----------\n```cspr_to_burn``` | ```U32``` | The account CSPR that should be burned during the ```set_url``` entry point execution\n\n## Development\n\n### Setup\n\n```bash\nmake prepare\n```\n\n### Build\n\n```bash\nmake build-contract\n```\n\nThe WASM file will be available in the target directory:\n```bash\ntarget/wasm32-unknown-unknown/release/account-info.wasm\n```\n\n### Test\n\n```bash\nmake test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmake-software%2Fcasper-account-info-contract","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmake-software%2Fcasper-account-info-contract","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmake-software%2Fcasper-account-info-contract/lists"}