You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 4, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: docs/develop/cheat-sheet/index.mdx
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -128,3 +128,7 @@ For Ledger support, transactions should be created and signed with the TypeScrip
128
128
### Via `injectived`
129
129
130
130
Transactions can also be generated, signed, and broadcasted through the `injectived` CLI. See [Using `injectived`](../tools/injectived/02_using.md) for an overview of the process, or the full [commands](../tools/injectived/commands#tx) for documentation on possible transactions types.
131
+
132
+
## Add Token Metadata
133
+
134
+
To add your token's metadata to the suite of Injective products available (hub, bridge, etc.), see the instructions [here](https://docs.ts.injective.network/readme/assets/injective-list).
Contract upload on Injective requires governance approval. This structure has been put in place for multiple reasons:
11
+
12
+
1. Historically, the community has discovered vulnerabilities in CosmWasm whereby certain contracts could cause a chain halt. Thus, requiring approval will be inherently more secure until the language matures and stabilizes over time.
13
+
2. Governance prevents un-audited and bogus contracts from being deployed into the network ensuring that hacks and scams will occur at a lesser degree.
14
+
3. This results in a more curated experience for ecosystem users since the blockchain does not fill up with unwanted transactions and contracts.
15
+
16
+
This governance process is time-consuming for validators and the community. Injective builders additionally face a 4-day wait to roll out features, affecting developer experience and user growth.
17
+
18
+
As of the [Altaris chain upgrade](../../../nodes/Validators/mainnet/canonical-chain-upgrade/canonical-1.13.0.md), it is now possible to request whitelisting your address for contract uploads.
19
+
20
+
# Submission Guidelines
21
+
22
+
In order to be considered for a whitelist approval, it is strongly recommended to include all the following information in the governance proposal. Validators are recommended to contact the Foundation in Discord to verify the information submitted for each proposal before voting.
23
+
24
+
1. Are the identities of the team members known to the community?
25
+
2. Has the team completed KYC/KYB with the Injective Foundation?
26
+
3. How long has the protocol been live on Injective mainnet?
27
+
4. Has the team developed applications in other ecosystems? (provide the details)
28
+
29
+
# Voting Guidelines
30
+
31
+
Users that meet these criteria will have a greater chance at receiving whitelist permissions:
32
+
33
+
1. The project has completed Injective Foundation KYC/KYB and the team members' identities are known to the community.
34
+
- Exception: Anonymous developers with proven credibility and successful apps in other ecosystems.
35
+
2. The project has been live on mainnet for at least 1 month and has achieved significant TVL/usage.
36
+
37
+
# Operational Guidelines
38
+
39
+
It is strongly recommended to use a multisig or Ledger wallet for the whitelisted uploads.
PEGGO_RELAY_VALSETS=true # set to `true` to relay Validator Sets
50
+
PEGGO_RELAY_VALSET_OFFSET_DUR="5m"# duration which needs to expire before a Valset is eligible for relaying
51
+
PEGGO_RELAY_BATCHES=true # set to `true` to relay Token Batches
52
+
PEGGO_RELAY_BATCH_OFFSET_DUR="5m"# duration which needs to expire before a Token Batch is eligible for relaying
53
+
PEGGO_RELAY_PENDING_TX_WAIT_DURATION="20m"# time to wait until a pending tx is processed
54
+
55
+
# Batch Creator config
56
+
PEGGO_MIN_BATCH_FEE_USD=23.2 # minimum amount of fee a Token Batch must satisfy to be created
57
+
58
+
# Metrics config
59
+
PEGGO_STATSD_PREFIX="peggo."
60
+
PEGGO_STATSD_ADDR="localhost:8125"
61
+
PEGGO_STATSD_STUCK_DUR="5m"
62
+
PEGGO_STATSD_MOCKING=false
63
+
PEGGO_STATSD_DISABLED=true
64
+
```
9
65
10
-
### Step 1: Configure your Peggo relayer
66
+
IMPORTANT NOTE: if you're running your own `injectived` (Injective node) and `geth` (Ethereum node) processes, ensure that they are in sync with the latest state.
67
+
Outdated nodes can skew the business logic of `peggo` to display "false alarm" logs sometimes.
First, update the `PEGGO_ETH_RPC` in the `.env` file with a valid Ethereum EVM RPC Endpoint.
19
81
20
-
To set up your own Ethereum full node, follow the instructions [here](https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/). It's possible to use an external Ethereum RPC provider such as Alchemy or Infura, but keep in mind that the Peggo bridge relayer uses a heavy use of `eth_getLogs` calls which may increase your cost burden, depending on your provider.
82
+
To set up your own Ethereum full node, follow the instructions [here](https://ethereum.org/en/developers/docs/nodes-and-clients/run-a-node/). It's possible to use an external Ethereum RPC provider such as Alchemy or Infura, but keep in mind that the Peggo bridge relayer makes a heavy use of `eth_getLogs` calls which may increase your cost burden, depending on your provider.
83
+
84
+
#### Managing Ethereum keys for `peggo`
85
+
86
+
Peggo supports two options to provide signing key credentials - using the Geth keystore (recommended) or by providing a plaintext Ethereum private key.
87
+
88
+
**Option 1. Geth Keystore**
89
+
90
+
You can find instructions for securely creating a new Ethereum account using a keystore in the Geth Documentation [here](https://geth.ethereum.org/docs/interface/managing-your-accounts).
91
+
92
+
For convience, an example is provided below.
93
+
94
+
```bash
95
+
geth account new --datadir=/home/ec2-user/.peggo/data/
96
+
97
+
INFO [03-23|18:18:36.407] Maximum peer count ETH=50 LES=0 total=50
98
+
Your new account is locked with a password. Please give a password. Do not forget this password.
99
+
Password:
100
+
Repeat password:
101
+
102
+
Your new key was generated
103
+
104
+
Public address of the key: 0x9782dc957DaE6aDc394294954B27e2118D05176C
105
+
Path of the secret key file: /home/ec2-user/.peggo/data/keystore/UTC--2021-03-23T15-18-44.284118000Z--9782dc957dae6adc394294954b27e2118d05176c
106
+
107
+
- You can share your public address with anyone. Others need it to interact with you.
108
+
- You must NEVER share the secret key with anyone! The key controls access to your funds!
109
+
- You must BACKUP your key file! Without the key, it's impossible to access account funds!
110
+
- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!
111
+
```
112
+
113
+
Make sure you heed the warnings that geth provides, particularly in backing up your key file so that you don't lose your keys by mistake. We also recommend not using any quote or backtick characters in your passphrase for peggo compatibility purposes.
Then ensure that your Ethereum address has enough ETH.
125
+
126
+
**Option 2. Ethereum Private Key (Unsafe)**
127
+
128
+
Simply update the `PEGGO_ETH_PK` with a new Ethereum Private Key from a new account.
129
+
130
+
Then ensure that your Ethereum address has enough ETH.
21
131
22
-
Peggo also requires access to your validator's delegated Injective account and Ethereum key credentials to sign transactions for the corresponding networks.
132
+
### Injective config
23
133
24
134
#### Creating your delegated Cosmos Key for sending Injective transactions
25
135
26
-
Your peggo relayer can either
136
+
Your peggo orchestrator can either:
27
137
- Use an explicitly delegated account key specific for sending validator specific Peggy transactions (i.e. `ValsetConfirm`, `BatchConfirm`, and `SendToCosmos` transactions)
28
138
or
29
-
- Simply use your validator's account key.
139
+
- Simply use your validator's account key ("your Validator is your Orchestrator")
30
140
31
141
For isolation purposes, we recommend creating a delegated Cosmos key to send Injective transactions instead of using your validator account key.
32
142
@@ -35,7 +145,7 @@ To create a new key, run
35
145
injectived keys add $ORCHESTRATOR_KEY_NAME
36
146
```
37
147
38
-
Then ensure that your orchestrator inj address has INJ balance.
148
+
Then ensure that your orchestrator inj address has INJ balance in it, so peggo orchestrator can send messages to Injective.
Again, this method is less secure and is not recommended.
93
203
94
-
#### Managing Ethereum keys for `peggo`
95
-
96
-
Peggo supports two options to provide signing key credentials - using the Geth keystore (recommended) or by providing a plaintext Ethereum private key.
97
-
98
-
**Option 1. Geth Keystore**
99
-
100
-
Simply create a new private key store and update the following env variables:
101
-
*`PEGGO_ETH_KEYSTORE_DIR`
102
-
*`PEGGO_ETH_FROM`
103
-
*`PEGGO_ETH_PASSPHRASE`
104
-
105
-
You can find instructions forsecurely creating a new Ethereum account using a keystorein the Geth Documentation [here](https://geth.ethereum.org/docs/interface/managing-your-accounts).
106
-
107
-
For convience, an example is provided below.
108
-
109
-
```bash
110
-
geth account new --datadir=/home/ec2-user/.peggo/data/
111
-
112
-
INFO [03-23|18:18:36.407] Maximum peer count ETH=50 LES=0 total=50
113
-
Your new account is locked with a password. Please give a password. Do not forget this password.
114
-
Password:
115
-
Repeat password:
116
-
117
-
Your new key was generated
118
-
119
-
Public address of the key: 0x9782dc957DaE6aDc394294954B27e2118D05176C
120
-
Path of the secret key file: /home/ec2-user/.peggo/data/keystore/UTC--2021-03-23T15-18-44.284118000Z--9782dc957dae6adc394294954b27e2118d05176c
121
-
122
-
- You can share your public address with anyone. Others need it to interact with you.
123
-
- You must NEVER share the secret key with anyone! The key controls access to your funds!
124
-
- You must BACKUP your key file! Without the key, it's impossible to access account funds!
125
-
- You must REMEMBER your password! Without the password, it's impossible to decrypt the key!
126
-
```
127
-
128
-
Make sure you heed the warnings that geth provides, particularly in backing up your key file so that you don't lose your keys by mistake. We also recommend not using any quote or backtick characters in your passphrase for peggo compatibility purposes.
You can verify successful registration by checking for your Validator's mapped Ethereum address on https://lcd.injective.network/peggy/v1/valset/current.
164
222
165
-
### Step 3: Start the Relayer
223
+
NOTE: Once you've registered your Orchestrator with the `set-orchestrator-address` message, you **CANNOT** register again. Once this step is complete, your `Validator` is bound to the provided Ethereum address (as well the Delegated address you may have provided).
224
+
In other words, your peggo must always run with the addresses you provided for registration.
225
+
226
+
## Step 3: Start the Relayer
166
227
167
228
```bash
168
229
cd~/.peggo
@@ -171,7 +232,7 @@ peggo orchestrator
171
232
172
233
This starts the Peggo bridge (relayer / orchestrator).
173
234
174
-
### Step 4: Create a Peggo systemd service
235
+
## Step 4: Create a Peggo systemd service
175
236
176
237
Add `peggo.service` file with below content under `/etc/systemd/system/peggo.service`
177
238
@@ -191,7 +252,7 @@ Add `peggo.service` file with below content under `/etc/systemd/system/peggo.ser
191
252
WantedBy=multi-user.target
192
253
```
193
254
194
-
Then run the following commands to configure Environment variables, start and stop the peggo relayer.
255
+
Then use the following commands to configure Environment variables, start and stop the peggo relayer.
195
256
196
257
```bash
197
258
sudo systemctl start peggo
@@ -206,7 +267,7 @@ sudo systemctl enable peggo
206
267
journalctl -f -u peggo
207
268
```
208
269
209
-
### Step 5: (Optional) Protect Cosmos Keyring from unauthorized access
270
+
## Step 5: (Optional) Protect Cosmos Keyring from unauthorized access
210
271
211
272
:::important
212
273
This is an advanced DevOps topic, consult with your sysadmin.
0 commit comments