#🚀・dev-support
1 messages · Page 8 of 1
Still waiting for the full broadcast response. Also since the TX did not go through, please paste the full broadcasted TX as string
its possible to go tro this process with wormhole: https://docs.wormhole.com/wormhole/explore-wormhole/gateway/onboard ? to have a better interop with the existing chains and assets on wormhole? any core team can take a look into it?
How long does it take for a deployed TokenFactory to show up on the explorer?
Or is there somewhere to see the approval state of such injective deployment?
It should be fast after you submit the PR to list your token
Thank you Abel.
Hello, I have one question about injective spot market.
I am trying to swap the INJ to USDT using spot market, through the smart contract. (testnet)
The smart contract includes the logic from swap-contract sample - https://github.com/InjectiveLabs/swap-contract.
Why do I have the following error?
originalMessage: 'dispatch: submessages: dispatch: submessages: quantity 518833132956537462.000000000000000000 must be a multiple of the minimum quantity tick size 1000000000000000.000000000000000000: invalid quantity',
Plus, I have a question about injective node source code.
Where can I find the source code?
I'd like to check the exchange module myself.
Hi, are there some sample cade about how connect Python SDK to a local node?
That error happens when you send an order with a quantity value that does not respect the trading rules for the market (in particular the min_quantity_tick_size in this case)
You can check the min_quantity_tick_size and the min_price_tick_size in each market's info. You can also see the trading rules in the explorer https://explorer.injective.network/markets/trading-rules/
check the Network class. There is a method custom to create a fully configured Network instance providing all endpoints
Could you give an example of using this on injective explorer? A contract with source code
@topaz seal I couldn't find there a contract with source code and didn't see the source code hash
The code is on chain, but compiled. You can always get the compiled code using the API (https://api.injective.exchange/#wasm-smartcontractstate)
If you want to see the source code, you need to get in touch with the smart contract developer.
Regarding the contract code hash to validate the published version is the one provided by the developer, check the checksum field in the contract code detail page (https://explorer.injective.network/code/386/)
Thank you for the answer
So a developer can't publish their source code like it's possible on etherscan?
The wasm contracts are sent to the chain in their compiled form, not as source code. The source code can be public, but the chain is not the repository for that (at least not with the current implementation)
Hi can i get any dev who can fetch nfts from public wallet address of inj, then make it show in frontend via mapping them?
if yes Dm me on Twitter: @Discordels_NFT or in Discord. If someone can help me show this data in user profile page i am waiting
Hey bro, i remember i seen somewhere in docs fetch inj balance, i was busy in games dev of Discordels, can u refer me to that doc?
the method which took public key and given info of inj blance etc
got it
`import { IndexerGrpcAccountApi } from '@injectivelabs/sdk-ts'
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
const endpoints = getNetworkEndpoints(Network.Testnet)
const indexerGrpcAccountApi = new IndexerGrpcAccountApi(endpoints.indexer)
const injectiveAddress = 'inj...'
const portfolio = await indexerGrpcAccountApi.fetchPortfolio(injectiveAddress)
console.log(portfolio)`
thanks
nah @topaz seal this dont work, console says we cannot take inj balace i think
console is too long
The fetchPortfolio should be working normally. If you have an error log please share it
lemme do, so thing is i used a function to fetch, then passed it user INJ address, then used useeffect to fetch each 30 sec, these are errors:
Access to fetch at 'https://testnet.exchange.grpc-web.injective.network/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Profile.js:87
POST https://testnet.exchange.grpc-web.injective.network/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList net::ERR_FAILED
@topaz seal
last error in console
Profile.js:106 Error fetching INJ balance: Error: Error: Response closed without headers
at IndexerGrpcAccountApi.fetchSubaccountsList (IndexerGrpcAccountApi.js:65:108)
at async fetchInjBalance (Profile.js:87:31)
at async fetchUserInjBalance (Profile.js
25)
CORS error is not generated by the public endpoints. It is something in the web server or app server you are using for your app. Please check your local configuration.
Look here is my api code thats fetching user blanace:
`// fetch-inj-balance.js
import { IndexerGrpcAccountApi } from "@injectivelabs/sdk-ts";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
export default async function handler(req, res) {
// Set CORS headers
res.setHeader("Access-Control-Allow-Origin", "*"); // or the specific origin you want to allow, like 'http://localhost:3000'
res.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type");
// Handle preflight requests for CORS
if (req.method === "OPTIONS") {
return res.status(200).end();
}
if (req.method !== "POST") {
return res.status(405).json({ error: "Method not allowed" });
}
try {
const injectiveAddress = req.body.injectiveAddress;
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcAccountApi = new IndexerGrpcAccountApi(endpoints.indexer);
const subaccountsList = await indexerGrpcAccountApi.fetchSubaccountsList(
injectiveAddress
);
if (!subaccountsList || subaccountsList.subaccounts.length === 0) {
throw new Error("No subaccounts found for this address");
}
const mainSubaccount = subaccountsList.subaccounts[0];
const subaccountBalances =
await indexerGrpcAccountApi.fetchSubaccountBalancesList(
mainSubaccount.subaccountId
);
const injBalance = subaccountBalances.balances.find(
(balance) => balance.denom === "inj"
) || { availableBalance: "0" };
return res.status(200).json({ balance: injBalance.availableBalance });
} catch (error) {
console.error("Error fetching INJ balance:", error);
res.status(500).json({ error: "Error fetching INJ balance" });
}
}
`
@topaz seal i seen it many times, u can seeany mistake?
`// fetch-inj-balance.js
import { IndexerGrpcAccountApi } from "@injectivelabs/sdk-ts";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
export default async function handler(req, res) {
// Set CORS headers
res.setHeader("Access-Control-Allow-Origin", "*"); // or the specific origin you want to allow, like 'http://localhost:3000'
res.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type");
// Handle preflight requests for CORS
if (req.method === "OPTIONS") {
return res.status(200).end();
}
if (req.method !== "POST") {
return res.status(405).json({ error: "Method not allowed" });
}
try {
const { injectiveAddress } = req.body;
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcAccountApi = new IndexerGrpcAccountApi(endpoints.indexer);
// Use fetchPortfolio instead of fetchSubaccountsList and fetchSubaccountBalancesList
const portfolio = await indexerGrpcAccountApi.fetchPortfolio(injectiveAddress);
// Extract the INJ balance from the portfolio details
const injBalance = portfolio.positions.find(
(position) => position.ticker === "INJ" // Adjust the ticker if needed
) || { availableBalance: "0" };
return res.status(200).json({ balance: injBalance.availableBalance });
} catch (error) {
console.error("Error fetching INJ balance:", error);
res.status(500).json({ error: "Error fetching INJ balance" });
}
}
`
changed to fetch portfolio method now, lemme try
I never said the error was in your app. I said it must be a configuration in your web server or app server. You need to get more information on the CORS error: Cross-Origin Resource Sharing (aka: CORS)
its on local host, lemme commit to git hub so i can test in vercel
Hey @topaz seal i never used inj api to fetch inj balance, doing first time, i copied code from docs to fetch portfolio, made a ts file in a folder, installed dependecies, ran but this gives erro with no orginal message
Here is CODE and ERROR CONSOLE
Code:
`// powershell -ExecutionPolicy Bypass -Command "ts-node Balance.ts"
import { IndexerGrpcAccountPortfolioApi } from "@injectivelabs/sdk-ts";
import { getNetworkEndpoints, Network } from "@injectivelabs/networks";
async function Main() {
const endpoints = getNetworkEndpoints(Network.Testnet);
const indexerGrpcAccountPortfolioApi = new IndexerGrpcAccountPortfolioApi(
endpoints.indexer
);
const injectiveAddress = "inj1tln0hfzhy4rg3zhp8czvk2xylksrntu2zkgjdw";
const portfolio =
await indexerGrpcAccountPortfolioApi.fetchAccountPortfolioBalances(
injectiveAddress
);
console.log(portfolio);
}
Main();`
Console:
PS D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz> powershell -ExecutionPolicy Bypass -Command "ts-node Balance.ts" Error at Object.onEnd (D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz\node_modules\@injectivelabs\sdk-ts\src\client\base\IndexerGrpcWebImpl.ts:84:13) at D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz\node_modules\@injectivelabs\grpc-web\dist\grpc-web-client.js:1:24439 at D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz\node_modules\@injectivelabs\grpc-web\dist\grpc-web-client.js:1:11490 at Array.forEach (<anonymous>) at e.rawOnError (D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz\node_modules\@injectivelabs\grpc-web\dist\grpc-web-client.js:1:11452) at e.onTransportHeaders (D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz\node_modules\@injectivelabs\grpc-web\dist\grpc-web-client.js:1:9025) at NodeHttp.responseCallback (D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz\node_modules\@injectivelabs\grpc-web-node-http-transport\src\index.ts:42:18) at Object.onceWrapper (node:events:629:26) at ClientRequest.emit (node:events:514:28) at ClientRequest.emit (node:domain:489:12) { type: 'grpc-unary-request', code: -1, originalMessage: '', name: 'GrpcUnaryRequestException', errorClass: 'GrpcUnaryRequestException', context: 'AccountPortfolio', contextModule: 'indexer-portfolio' } PS D:\Source-Files-and-projects\Visual-Studio-Code\INjective\randomz>
@topaz seal @lime ruin
@topaz seal @open plume @primal terrace would this be a good code to deploy the proposal to mainnet? Took the https://docs.injective.network/develop/guides/cosmwasm-dapps/Cosmwasm_CW20_deployment_guide_Mainnet/ as an example.
yes XXX | injectived tx wasm submit-proposal wasm-store /var/artifacts/rust_contract.wasm --from=inj1mywallet --chain-id="injective-1" --deposit=100000000000000000000inj --instantiate-everybody false --instantiate-only-address "inj1mywallet" --broadcast-mode=sync --yes --gas=10000000 --gas-prices=500000000inj --node=https://sentry.tm.injective.network:443 --title "Upload xxx" --description "longtext"
The gas-prices and instantiate-only-address should have the correct values. You can always run injectived tx wasm submit-proposal wasm-store --help to get more details on all the parameters
Not sure what the error is, but seems you are not using the correct SDK version for the Indexer in Testnet. I will let @kind flare reply on this one since he has more experience in TS SDK
thanks. Where do i find which value the gas-prices should be? And the instantiate-only-address will just be my own wallet, i cleared it here for security reasons... That are the only remarks?
Current gas price is 160000000inj. Those are the only comments I can make by just reading the command. I would suggest always testing things in testnet with dummy funds before trying anything in mainnet
The contract is already live on testnet but we don't need a submit-proposal command for that
we can just store there
Any builders have good experience with wallet mobile linking in the dapp?
Is there a documentation to create INJ NFT marketplace?
There isint one but I can create
Do you have a sample nft marketplace?
Check #💎・trenches-chat
Source code? Probably no NFT marketplace on Injective has it publicly available.
You can contact Talis or Dagora to see if they're willing to share theirs with you.
@lime mountain @austere bobcat @ionic oxide please consider banning this user. He is just spamming
done
u inj dev ? i need one, I need to show users nfts in wallet in his profile page on my site. I am Discordels Founder, u can Dm me on Twitter
On official Discordels page
@topaz seal @primal terrace sometimes we have connection errors to the blockchain, txs not coming through
Ooops could it be that our new launch took down some of the endpoints? I see partial outage
it works again!
I mentioned already in other reply resently that CORS errors are generated by the web server or app server hosting the app that connects to the nodes. The nodes servers do not generate those CORS errors
actually it worked halve of the time at the old LCD. Our frontend dev switched to the Sentry edition and it was OK. Our mistake in the end sir. sorry abt that
What is actually the current limit on:
injectived query txs [...] --events wasm[...] --limit 30 is what i use now... But i rather have 100 or something there... Seens i can't find this in the documentations
hi guys, u know anywhere i can swap testnet USDT to INJ?
hi fam, can we get inj on coinbase?
if you use the injective faucet on mainnet, it also supplies you 10k USDT
@raven merlin & @silver granite Please use #💬・general / #🆘︲help-and-support-old for non development related questions.
Is it possible to get tx info of a contract by its action ?
Any docs on nfts building for injective protocol?
I encountered the following error:
"Access to XMLHttpRequest at 'https://lcd.injective.network/cosmos/auth/v1beta1/accounts/..' from origin 'https://abc.vercel.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."
Could you please investigate the issue? @topaz seal
Yesterday, I did not encounter this error. However, when I attempted again today, I encountered this CORS-related issue. I also tried using a VPN.
Here is the code snippet I am using:
const chainId = ChainId.Mainnet; const { key, accounts, offlineSigner } = keplrAllData.keplrData; const pubKey = Buffer.from(key.pubKey).toString("base64"); const injectiveAddress = key.bech32Address; const restEndpoint = getNetworkEndpoints(Network.Mainnet).rest;
Version of typescript Injective I use
"@injectivelabs/exceptions": "1.14.4", "@injectivelabs/networks": "1.14.4", "@injectivelabs/sdk-ts": "1.14.4", "@injectivelabs/ts-types": "1.14.4", "@injectivelabs/utils": "1.14.4", "@injectivelabs/sdk-ui-ts": "^1.14.5",
Please review and let me know if you can identify any issues.`
@ionic oxide
Building one
builders on injective, be honest with me.
why i feel like the more i explore dev tools on injective and how things works,
why i feel.......... more bearish....
GM sir @topaz seal
I got new error
Here is my code
const dec = 10 * item.decimals;
combineMsg.push(
MsgSend.fromJSON({
amount: {
amount: `${Number(item.amount) * dec}`,
denom: item.denom,
},
srcInjectiveAddress: injectiveAddress,
dstInjectiveAddress: item.walletAddress,
})
);
console.log("combineMsg", combineMsg);
const { signDoc } = createTransaction({
pubKey,
chainId,
fee: DEFAULT_STD_FEE,
signMode: SIGN_DIRECT,
message: combineMsg,
sequence: baseAccount.sequence,
timeoutHeight: Number(fetchTimeout.data),
accountNumber: baseAccount.accountNumber,
});
console.log("signDoc", signDoc);
const directSignResponse = await keplr.signDirect(
injectiveAddress,
signDoc
);
console.log("directSignResponse", directSignResponse);
Here is details error
injectedScript.bundle.js:2 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'bodyBytes')
at c.<anonymous> (injectedScript.bundle.js:2:54416)
at Generator.next (<anonymous>)
at injectedScript.bundle.js:2:48885
at new Promise (<anonymous>)
at r (injectedScript.bundle.js:2:48630)
at c.signDirect (injectedScript.bundle.js:2:54318)
at transferAll (page.tsx:262:67)
Can you review it for me, thank you
for example, can anyone change my mind why i feel the tokenfactory using denom is weird?
for example, is this the industry standard of a token contract address ?
factory/inj1s9pckznjz4hmgtxu5t9gerxtalch7wtle4y3a6/MIB
instead of getting a single contract aaddress, we now use subdenom.
how to use this factory/xxxx/denom to serch on explorer?
You can search contracts on the explorer - https://explorer.injective.network/contracts/
What is the endpoint query you are running?
"GRPC_Address": "sentry.chain.grpc.injective.network:443", "NODE_Address": "https://sentry.tm.injective.network:443",
injectived query txs --grpc-addr " + inj_grpc_address + " --node " + inj_node_address + " --events wasm-XXX._contract_address=" + inj_contract_address + " --limit 100 --page " + pagenum + " --output json
That is a functionality that is provided by the base Tendermint implementation in Cosmos. Since it is not exclusive for Injective you need go to the cosmos documentation to find out the details about this functionality
@nova walrus Are you still looking for an experienced dev?
I can help you with it.
Can I DM you now?
hi guys, our first proposal passed, just need a hand with getting the contracts uploaded to mainnet
same error on both contracts
Do you have the link to the proposal? What security configuration did it have? Are you using an allowed address to instantiate the contract?
will get the other 2 answers to you shortly, our dev in not on discord
we chose the option that everyone can instantiate
inj19p5jvgfcdnpwjzp96ldczzjenzjn8y9jq576hm
In the proposal I can see the code was uploaded with permission for everyone to instantiate, so that should not be the problem. Do you hace a TX hash for the error you mentioned initially?
8F44C11728DF78DF121B5F03DA7A32369E96E81FC866A9CEFC7A6F5C4B37C320
Why are you sending a MsgStoreCode message? You already uploaded the code with the governance proposal
so what should i do now? instantiate? where is the code ID then?
sorry this is our first time on inj, wont need to ask twice
I found it just by looking into the "code" page in the explorer, and using the TX id when you submitted the proposal to find it https://explorer.injective.network/code/414/
thank you kindly good sir
but what next? we have 2 contracts in it
nvm its 413 and 414
thanks @topaz seal
Hey guys I tried something to send token with this demon but after that it give this error
I dont understand why? With "INJ" it works fine?
cant post in general, i tried. im just looking for help
You can post in #🆘︲help-and-support-old, also you can directly ask your question, no need for greetings.
You must be creating the composer in a way that does not include that token. You can either change the way you create the composer instance or you can create the MsgSend instance without using the composer
We are currently discussing integration with the wallet.
They requested the following data:
can you provide docs on how to resolve names?
either via CURL sample
or rust cdk
we need an easy way to resolve names via an api
You should check Space ID's documentation https://docs.space.id/developer-guide/web3-name-sdk
Does injective has an ICA host module?
@lime mountain @ionic oxide please consider banning this user that is just spamming in the channel
The project needs either a Rust SDK or a REST API call for resolving names.
You should contact Space ID team. That is not a Injective team implementation
Great, I wrote to spаce id support regarding this issue.
injective is it EVM compatible?
yes, no need to tag for those kind of questions.
is there a way to query trading rewards by account or subaccount using RPC nodes?
No, currently Injective is not natively EVM compatible. There is a project called InEVM that allow users to run EVM contracts in a kind of L2 on top of Injective chain. But it has some limitations (you will have to refer to InEVM documentation to know more. It has been mentioned numerous times in the near past, it will be easy for you to find references to it using the search tool in Discord, or Google to)
GM @topaz seal and Inj team, we are trying to make the wallet connect mobile linking on our game so that users can play with their mobile divices.
However, we could not find the instruction in the injective docs. Could you consider to add the detail guide on how to do it in this: https://docs.ts.injective.network/wallet/wallet-connections?
anyone know if I can run an indexer without the node?
Node is pretty heavy for me
is there any thirdparties that allow reading from their nodes?
You can ask this in #🔩・node-operators
Who can help me to convert inj address to bech32?
Was able to find
this https://twitter.com/Injective_/status/1614311855073247232
and this https://twitter.com/Injective_/status/1584755130141794304
but where can I see which messages are authorised ? or are they all authorized ?
It should be possible if you change the Indexer configuration to point to the public nodes. But keep in mind that Indexer requires more resources than the node (because it keeps history in its DB)
To integrate the .inj name into one of the wallets, I'll need either the Rust SDK or a REST API endpoint for name resolution. Where can I get this information? I asked yesterday in this chat and was redirected to the space ID support, where they suggested the team should be contacted directly. Is it possible to obtain the information required for integration
Again, I am not sure how to explain this for you to understand what I am saying: we are not the implementors of that functionality. We can't guide you in something we have not implemented.
I understand, but the space ID support also doesn't provide a precise answer; they only send a link in which there is no answer to this question.
Abel Thanks for everything on Python SDK Injective ❤️ Love it!
Hi, How to add injective testnet network to metamask wallet?
just connect your metamask to testnet dapp and change network in your metamask to goerli testnet.
isn't there a separate testnet for injective? and isn't the goerli network a testnet for ethereum?
And in injective can we create smart contract using solidity?
https://github.com/InjectiveLabs/injectived.git
am getting not found error (404)
is there an alternative?
Injectived is the only available Injective CLI tool as far as I know, make sure you're following the instructions correctly: https://docs.injective.network/develop/tools/injectived/install/
root@4zc7:~# wget https://github.com/InjectiveLabs/injective-chain-releases/releases/download/v1.10.0-1679065799/linux-amd 64.zip
--2024-01-31 11:34:04-- https://github.com/InjectiveLabs/injective-chain-releases/releases/download/v1.10.0-1679065799/linux-amd
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2024-01-31 11:34:05 ERROR 404: Not Found.
--2024-01-31 11:34:05-- http://64.zip/
Resolving 64.zip (64.zip)... failed: Name or service not known.
wget: unable to resolve host address ‘64.zip’
root@4zc7:~#
Can you try with option 2 on the docs page?
Ubuntu
okay
root@4zc7:~/injective-core# make install
cd cmd/injectived/ && go install -tags netgo -ldflags "-X github.com/InjectiveLabs/injective-core/version.AppVersion=v1.12.1 -X github.com/InjectiveLabs/injective-core/version.GitCommit=e1a
b66c -X github.com/InjectiveLabs/injective-core/version.BuildDate=20240131-0938 -X github.com/cosmos/cosmos-sdk/version.Version=v1.12.1 -X github.com/cosmos/cosmos-sdk/version.Name=injectiv
e -X github.com/cosmos/cosmos-sdk/version.AppName=injectived -X github.com/cosmos/cosmos-sdk/version.Commit=e1ab66c"
go: github.com/CosmWasm/wasmd@v0.45.0 requires
github.com/cosmos/cosmos-proto@v1.0.0-beta.2: missing go.sum entry; to add it:
go mod download github.com/cosmos/cosmos-proto
make: *** [Makefile:59: install] Error 1
root@4zc7:~/injective-core#
root@4zc7:~/injective-core# injectived version
Version dev (b92723b13)
Compiled at 20240106-0837 using Go go1.19.3 (amd64)
root@4zc7:~/injective-core#
means am good?
You can try running:
injectived --help
To see if it was installed successfully, if there are any further issues then you can post the error here and the devs will take a look when they're available.
Hey! I’m nearly completed with a new Dapp built on inEVM and have questions regarding its performance, use and functionality within the Injective framework and ecosystem.
You can ask your development related questions here or post in #1189372652561895475.
If you're building on Injective and would like to contact team then you can check #📥︲collaborations
Thanks!
While testing I noticed the use of 0x INJ vs Native INJ - from my understanding, inEVM is fully compatible with mainnet Injective but trying to get a clear picture as to how, along with other essential components like , the use of Mainnet INJ ; wallets such as leap/Keplr/Ninja’s compatibility with the Dapp and if users will be able to use, manage and access it seamlessly
Thank you so much … Very much appreciated.
Yes, users can manage their Injective network assets such as Native INJ through cosmos based wallets such as Keplr/Leap or native Injective wallet such as Ninji.
You can check this part of docs on how you can prepare, sign and broadcast transactions using a cosmos based wallet like Keplr: https://docs.ts.injective.network/transactions/transactions-cosmos
In injective can we create smart contract using solidity, say i want to create a dex like uniswap?
You can find details regarding how you can create smart contracts on Injective here: https://docs.injective.network/develop/guides/cosmwasm-dapps/Your_first_contract_on_injective
Correct, Dapps utilizing and built on inEVM can connect these wallets to inEVM Dapps like ours to stray away from the 0x INJ that’s currently needed to use for testing ?
I’ve submitted a collaboration form , thank you again Lahn your support has been greatly appreciated and helpful
For inEVM, I'm not sure, make sure you have checked the documentation already for answers.
- https://calderaxyz.gitbook.io/injective-documentation/
If you can't find answers regarding it in documentation then you can wait for devs and they might answer your question once they're available.
Ok thank you. I have not found these answers in the docs. Much appreciated Lahn
root@4zc7:~/injective-core# injectived keys add OLDWALLET --recover -i
Enter your bip39 mnemonic
After entering my mnemonic phrase
It asked me for:
Enter keyring passphrase (attempt 1/3):
I left it blank but it insisted that I entered a passphrase that I never set when I was creating the wallet
Is there something am doing wrong?
Enter keyring passphrase (attempt 1/3):
where do I found this?
Please block any private messages you get for help, they're all scammers.
Until then please wait until devs are available.
do we know if there will be another hackathon? And if yes, when? 🙂
Stay tuned for the next hackhathon. No info as of now though
Or bait them into giving you a link to their scam site and send it over to me and I'll report them to their domain registrar and hosting service to get them shut down
Well they usually use Vercel/Cloudflare/Firebase to host their scam websites on their subdomain so registrar won't shut the main domain but we can still report to the relevant hosting and they can shut the subdomain, good idea.
I've reported several before and they did shut them down but they weren't on Vercel etc
I've also had success in extracting the API call their sites make to send peoples seed phrases to their backend and then will run a script to spam them with hundreds of spurious mnemonics per second
Until their shit just breaks
Haha, good work!
Thank you for your help. We've found a solution to the issue, and the integration announcement will be made in a few days.
someone has a reflink for the beta out app?
hi i am getting error on injective sdk-ts when await chainGrpcBankApi.fetchBalance()
the error is "Product is under heavy load, refresh the page in a few seconds."
any fix? thanks
Are you using the public nodes or your own node? If you are using the public node, then the issue is clear in the error text: "Product is under heavy load, refresh the page in a few seconds."
public nodes yes... is this normal behaviour or just peak usage error?
use a private node 👍
is there a way to query trading rewards by account or subaccount using RPC nodes?
You can do it using:
https://sentry.exchange.grpc-web.injective.network/api/exchange/account/v1/rewards?accountAddress={address}
thank you! is there a way to grab historical values using height flag?
oh, is the distributedAt a timestamp of some sort?
It's the Epoch timestamp.
You can convert it to time using
new Date(1234) // Epoch seconds
You can also use SDK to fetch this data: https://docs.ts.injective.network/querying/querying-api/querying-indexer-account#using-grpc
Can python be used to build something simple for learning
What're you trying to do? Where are you having this error?
Are you using the correct account? The error says unauthorized. If you are using the correct account you will need to ask Talis support team if this is the correct way to interact with their contract
Could you provide more details about the difference in your configuration? I can't understand what you mean with "with injectivelabs" and what you mean with "when I use my own function".
If you found a way to do it that works, why are not using that?
While sending transactions to testnet node
it gives me errors like timeout and invalid chain randomly sometimes
The k8s and sentry testnet nodes
Are these error specific to them
The transactions are basic like sending tokens and burning
Please provide the actual error logs en examples of the transactions being broadcasted
Please who can solve or Who did this situation happen to?
warning! error encountered during contract execution [contract creation code storage out of gas]
How long have you been encountering this issue
as soon as I install the injective libraries for react, npm run doesnt work anymore
how can I fix this?
what error are you seeing? @drifting silo
height error on the public RPC node ?
gm where can I find out the circulating supply of $TALIS?
Hey !
Looking forward using LCD endpoint for Injective. I am having trouble for filtering specific queries:
Base Query:
/cosmos/tx/v1beta1/txs?events=message.action='/cosmos.staking.v1beta1.MsgDelegate' ✅
Issue 1: Can't filter correctly (works on other tendermint LCDs
&events=delegate.validator='.....'❌
Issue 2: Can't correctly use pagination.offset correctly (works on Cosmos LCD)
&pagination.offset=100❌
Same using gRPC !
Is it a known issue ?
Are you running a historical query?
Check the assets page in the explorer. You can also get the info using any of the SDKs
yup it was. currently switched to private node
Public nodes do not keep a lot of historical information
it was actually working perfectly and this failing query was about the last hours max.
I will have to pass the information to the devops team investigate if there was a problem in any of the public servers. But since the policy is that public servers should not be used for historical queries, the investigation will be low priority to be honest. It will take some time until we have more details.
nws. i got it solved by switching to private rpc and grpc
is it possible to verify the binary code of a contract?
Yes it's possible
these docs are the best I have ever seen
It took me 0.5h to create a script
And on the other hand on sui it took me 12h 🤣
Good job!
Hello. I have a decentralized exchange (DEX) ready to list the INJ token. Who can fill out the partnership form and the GitHub repository?
Check: #📥︲collaborations
Also what do you mean by filling out GitHub repository?
How to send multiple transactions with different t private keys
I am using msgbroadcaster withpk
This is a question for the team; they know what it's about.
Which SDK are you using? Initially I would say you can create a different broadcaster instance for each private key
do you know if there's an executable that supports ledger available?
Hi guys, is there a tutorial somwhere, or more info in general, on how to create a perpetuals exchange?
hi, building a wallet on testnet and need to show explorer url to see validator profile
anw, the validator profile as this one doesn't seem to work https://testnet.hub.injective.network/validators/injvaloper1jue5dpr9lerjn6wlwtrywxrsenrf28ru89z99z
can you suggest other explorer that I can use?
!faucet
You can create a page yourself querying the information using the API (for example https://sentry.lcd.injective.network/swagger/#/Query/Validator)
Yes. Please check the TypeScript SDK documentation page
!faucets
Receive a small amount of INJ, enough to make 1-2 transactions.
- https://inj.supply/
- https://stakely.io/en/faucet/injective-protocol
- https://bwarelabs.com/faucets/injective-mainnet
For Testnet use: https://testnet.faucet.injective.network/
Hello. Could you provide this information? It is needed for integrating the INJ token into the wallet.
@topaz seal
Rpc :
Chain id :
Explorer :
Token :
Op
Hello guys, just found this gem on the injective documentation:
https://docs.injective.network/develop/inEVM/
https://calderaxyz.gitbook.io/injective-documentation/getting-started/deploy-on-inevm
But there are things I'm not sure to clearly understand, can you help me with that? Because it's part of Injective documentation I think you have information about it.
So, inEVM is a blockchain own by Caldera? I'm right?
How injective users can use it, transparently, without switching to the Caldera blockchain?
I mean, my dapp is currently using Cosmowasm and is on the Injective mainnet. But it would be great to develop feature in Solidity because I already have knowlegde in it. How can I provide services for my users on Injective with the inEVM?
I am not sure what information you need really based only on that description. Injective mainnet chain id is injective-1. As for the rest, I will need some clarification.
Thank you, representatives of the team from this wallet have requested the data I mentioned above. I am awaiting your response.
Ok, but I am not asking who requested the information. I need a better explanation of what is the info you (or they) need
Can someone give me some hints please? I'm totally stuck with this…
For example, how can I do to read a contract deployed on inEVM while an user is connected on Injective?
Is that even possible?
how build?
Please get familiar with the injective docs - https://docs.injective.network/
https://docs.ts.injective.network/
Hi
I don't think you will get any hints in this Discord server about inEVM. You need to contact Caldera team for that
const accountDetailsResponse = await chainRestAuthApi.fetchAccount(
address
);```
I am using above code to get account details.
It used to work but now I get cors error.
How to resolve it?
didn't work. I tried with validator address injvaloper1cq6mvxqp978f6lxrh5s6c35ddr2slcj9h7tqng but received 404 with "key not found" error.
Note: I'm able to access this validator via dashboard https://testnet.hub.injective.network/
What else I can try?
That is because you're trying to query a testnet validator using the mainnet lcd.
Try with this endpoint:
https://testnet.sentry.lcd.injective.network/cosmos/staking/v1beta1/validators/{validator-address}
I am using Injectivelabs/sdk-ts
I can broadcast them separately, but requirement is to process the two transactions in a single block
I'm trying to send a signed tx and keep getting errors.
Currently I call prepareTxRequest where I get the prepareTxResponse with an attribute chainId: 'injective-1"
When I send this response into broadcastTxRequest I get an error signature verification failed: failed to parse chainID: injective-1: strconv.ParseUint: parsing "injective-1"
Anyone experienced this error before?
I tried both Network.MainnetSentry and Network.Mainnet8ks
Please don't tell me you used the mainnet query I shared with you (as an example of the query to send) with a testnet validator address you pasted in your message. If you did, I think you will agree with me that the query returning "key not found" is the expected result, right?
From the moment you are sending two separated transactions there is no guarantee both are going to end up included in the same block (chances are they will, but they could en up in different blocks too, depending on the validator node's mempool state).
You could try granting permissions to execute the actions you need to do from the two account into the same grantee account (a third account you will use to broadcast the transactions only) and then from the grantee account broadcast a single TX with two MsgExec messages each executing the actions (through Authz) for each of the granter accounts.
Can you provide an example script showing how you create the message and broadcast the transaction?
@topaz seal I used getEip712TypedData instead of prepareTxRequest and txRestClient.broadcast instead of transactionApi.broadcastTxRequest and that solved the issue
Hey, I’m working on uploading a smart contract to mainnet that needs to go through the governance process. Is it possible to get some assistance with this?
What assistance you need besides the process to submit the governance proposal that is explained in the documentation?
Any one can help me with "Rectification" of mi APIs with one of the contracts on Injective?
That is a scam link, please block them, the official team of any support never sends you private messages.
Its from their official Discord. The one on twitter
Can you please forward this to #🆘︲help-and-support-old together with more context?
done
hi
gm ninjas. trying to receive some inj to my keplr wallet and receiving 'no healthy upstream' message - can someone help please?
Likely Keplr's node endpoints are having issues at the moment, it's best to try again later.
Can you try this: Go to Keplr Settings -> Advanced -> Change endpoints -> Select Injective -> Change endpoints to the below ones -> Save.
that worked. thanks very much and have a great day! 🙏🙏
Hi guys anyway to transfer an NFT through a wallet?
I want to become a creator who can help me out
Please what is injective ash? Please
Is it possible to have a piece of code “audited”/looked at before I go forward with the governance proposal?
It’s not very long but want to make sure I’m not missing anything
As mentioned coutless times before in many channels in this Discord server, NFTs are not supported natively by Injective. NFTs dapps implement their own code to manage them. You need to contact the NFT dapp
I think that could be possible. I never heard before of anyone asking to have a governance proposal autited, I am not sure who would provide that service. But maybe any Injective builder could do that.
If you're here to engage with the community then you can head over to #🌆|chit-chat & #🪐︲ninja-chat
If you're a developer then you can get started by reading the documentation: https://docs.injective.network/
Hey fam, is there any good starter frontend for React/Next.js ? The counter example looks to have last been updated last year, does it still follow the latest best practice?
You can check: https://docs.ts.injective.network/building-dapps/configuring-react
Yes, you can create it using vite without issues, not sure if it'll work with create-react-app.
Thanks, hadn't seen this in the docs.
Hello, nope, I confirm this repo is not up to date with the current documentation.
Don't spam in this channel or you will get banned
@lime mountain @ionic oxide @plush oyster
I just went through the process of integrating Injective into our existing Next app. Everything we've built over the last 1+ years has utilized the SigningCosmWasmClient from cosmjs. I'm not sure if you're starting your project from scratch or are already using wallet management libraries, like graz or cosmoskit, but if you are, hit me up and I can try to help.
They have isuse with build?
Could you please provide Factory/Router address of native INJ? Would like to add chain on Dextools
is there a demand and place for gaming on injective? seems like most of the emphasis is on financial?
The emphasis is on financial, because, as clearly mentioned in the very top of the Injective web page, that is really the goal of the chain
What kind of verification are you thinking of?
We're in the process of migrating all our dapps to Injective. We started with some basic lottery-type games and will probably venture into card games this year. We're a broader web3 software shop, but there's plenty of work on the gaming side going on
Honestly, in my non-traditional perspective, there isn't much difference between trading in financial markets and games. The differences are, in my opinion, surface level mostly, consisting of differences in UX and legal technicalities. I'm really keen myself on pursuing social/multiplayer trading games and GameFi on Injective because of the great opportunities that exists to tap into Injective's native order book and other defi modules
If you need any help bootstrapping your dapp or project, lemme know and I'll try to help
because you need to use bech32
Injective is the end game in finance 
Hey Guys, I'm intrested in launching an NFT project on Talis, looking for people involved in the NFT space on INJ in order to make collabs ecc..
You can use #💎・trenches-chat
thank you, will do, sorry might I wrote in the wrong channel
Injective is not a protocol fam, it's a blockchain
Thanks bro
is there something wrong with "https://sentry.exchange.grpc-web.injective.network/" and "https://api.injective.network/", they returns wrong result
Can you tell which specific endpoint you're querying to, what's the result you expect and what they're returning.
the TIA market is stuck on BUY: 19.243 and SELL: 19.2470 same as the INJ market, im using indexerGrpcSpotApi.fetchOrderbookV2(marketId)
const indexerGrpcSpotApi = await new IndexerGrpcSpotApi(network.indexer);
it happened now it was working fine
sry i didnt mention
I just tested on my end with both Network.Mainnet and Network.MainnetSentry and it's returning correct response without issues.
ah ok i will see what's wrong, im sry
thank you
Hello,
I am having the issue with testnet.
I am tryng to query the balance of wallet using injective-ts .
But, the grpc call gives me back the error.
Can anyone help me why?
The TS code is
const endpoints = getNetworkEndpoints(Network.Testnet);
const chainGrpcBankApi = new ChainGrpcBankApi(endpoints.grpc)
let bal = await chainGrpcBankApi.fetchBalances(ADDRESS);
console.log(bal);
The error msg is
type: 'grpc-unary-request',
code: -1,
originalMessage: '',
name: 'GrpcUnaryRequestException',
errorClass: 'GrpcUnaryRequestException',
context: 'AllBalances',
contextModule: 'chain-bank'
Hello,
the above issue is same for me with different error
please help @topaz seal
JS code
const { IndexerGrpcAccountPortfolioApi } = require ('@injectivelabs/sdk-ts')
const { getNetworkEndpoints, Network } = require ('@injectivelabs/networks')
const endpoints = getNetworkEndpoints(Network.Testnet)
const indexerGrpcAccountPortfolioApi = new IndexerGrpcAccountPortfolioApi(
endpoints.indexer,
)
const fetchBlance = async() =>{
const injectiveAddress = 'inj1cw2kfaxe9gze83wm8ujx2s4090k3vw659yh20a'
const portfolio = await indexerGrpcAccountPortfolioApi.fetchAccountPortfolioBalances(
injectiveAddress,
)
console.log(portfolio)
return portfolio
}
fetchBlance()
error :
type: 'grpc-unary-request',
code: -1,
originalMessage: '',
name: 'GrpcUnaryRequestException',
errorClass: 'GrpcUnaryRequestException',
context: 'AccountPortfolio',
contextModule: 'indexer-portfolio'
}
Try with Network.TestnetSentry
getting error:
type: 'grpc-unary-request',
code: -1,
originalMessage: '',
name: 'GrpcUnaryRequestException',
errorClass: 'GrpcUnaryRequestException',
context: 'AccountPortfolio',
contextModule: 'indexer-portfolio'
}
I think TESTNET faucets and links are not operationable right now..😑
Working for me! 🙌
Thanks! @lime ruin
Hi, everyone
I am a passionate dev, so far attended various kinds of sol/evm projects.
so if you have some recommendations or looking for extra devs, I'd love to collaborate together. 🤝
then soove out the above problems @glad creek
Strange, changing network in past fixed it for me, maybe you can check if your @injectivelabs/networks is up to date.
npm install @injectivelabs/networks@latest
I want to fetch logs of the uploaded contract by txhash.
injectived query tx 53ADCC752977F306B07BE9B9DEB0B6BA446A28B85605FC2FF0F0F3CF0DAD92FA --node https://k8s.testnet.tm.injective.network:443 --output json | jq '.logs'
But the error persists on my end as you can see in the image attached.
Is there anyone who can help me with this error?
what up friends
can i get an example of collecting a fee from funds and forwarding that on
Hey guys,
I need an API function that will provide me with the latest NFT burns on the Injective network.
Is there any possibility for that?
Check here
All the examples showing orders creation, deposits, withdrawals and other actions that perform changes onchain show how to sign and broadcast TXs https://api.injective.exchange/#spot-msgcreatespotmarketorder
Please check the correct endpoints to use in the documentation page
There is no relationship between NFTs and orders. I think your reply is misleading.
Injective network does not support NFTs natively. There are NFT projects supporting NFTs through smart contracts. To do any NFT related actions you need to contact the NFT projects
corrent endpoint?
Yes, correct endpoints https://docs.injective.network/develop/public-endpoints/#testnet
But I used https://k8s.testnet.tm.injective.network:443 to upload the wasm contract.
https://docs.injective.network/develop/guides/cosmwasm-dapps/Your_first_contract_on_injective#upload-the-wasm-contract
Ok. Thank you for the answer!
You can try with sentry endpoints, K8s instances of testnet are deprecated.
Check the endpoints doc sent above by Abel to find them: #🚀・dev-support message
Got it, thanks
Cc: @topaz seal
@lime ruin Hey Lahn, what is the most stable service?
I tried the RPC service (https://testnet.sentry.tm.injective.network:443), but the issue persists.
Sentry nodes are the official ones, but usually they are also under heavy load as they are public.
You can find some other unofficial public nodes here: https://cosmos.directory/injective/nodes
The interchain directory for the Cosmos ecosystem.
got it, I will try with that
thanks
Sorry my bad
Ninjas time
If you don’t have any problems related to building , please use #🌆|chit-chat for random conversations
@topaz seal @lime ruin can you suggest any stable service for me?
https://docs.injective.network/develop/public-endpoints/#testnet
I still have the same issue with https://testnet.sentry.tm.injective.network:443
Please provide the error log again
Every week, 60% of the accumulated trading fees transform into a pool of assets that's up for auction.
Please check the docs and the article for further info
Ty!
i think that i didnt understand... if i send tokens to that address then the winner auction will get it?
Sending tokens to the auction will not cause those tokens being burnt. They will be acquired during the acution by the winner bidder
To burn tokens created with the TokenFactory you can use the logic explained in the documentation pages
To burn CW20 tokens (if possible) should be done following the logic in the CW20 contract used to create them
Transfering tokens to the address that would represent the "zero" address in Etherum will not mark the tokens as burnt in Injective
They will just be unavailable
This is what I am getting when I run injectived query tx 53ADCC752977F306B07BE9B9DEB0B6BA446A28B85605FC2FF0F0F3CF0DAD92FA --node https://k8s.testnet.tm.injective.network:443 --output json | jq '.logs' on my end.
Also it was the same even though I used https://testnet.sentry.tm.injective.network:443 instead.
you have to indicate the chain-id
okay, got it
I will try it now
@topaz seal I am getting another error now.
injectived query tx 76367BBB5266E04EE0A09F8B66A0186E9EE7A6492971AA54B57A481BACBCF713 --node https://testnet.sentry.tm.injective.network:443 --chain-id injective-888 --output json | jq -r '.logs[0].events[-1].attributes[0].value'
ty, now i get it
The following request works correctly on my side. Please check you are not typing anything incorrectly
injectived query tx 76367BBB5266E04EE0A09F8B66A0186E9EE7A6492971AA54B57A481BACBCF713 \
--chain-id "injective-888" \
--node https://testnet.sentry.tm.injective.network:443 --output json
This command also causes error like this.
would you let me know what it shows on your end?
I got no error on my side, as I mentioned before. Make sure you are using the latest injectived version
This is the version on my side.
@topaz seal what is your version on your end?
I got this as a response:
Thats great!
I just updated the injectived version to that latest one and now the issue has been resolved.
Really appreciate it! 👍 @topaz seal
I have one question.
How can I query the market status, like liquidity?
For example, I'd like to query the liquidity of INJ/USDT spot market.
I checked the injective-ts doc, but not found what I want.
What should I do?
anyone got experience with implementing cw2981-royalties for minting nfts? I'm not sure how to implement it with a cw721-base
I am not sure what you need to do, but you cuold get the market's orderbook
hi, are u injective contract dev?
I'd like to know the detail of the injective spot market.
For example, I'd like to see the exact liquidity amounts of INJ and USDT in INJ/USDT market.
Well, if you get the orderbook you will know exactly the amount on each side of the book by processing the book's orders
You can also try with this endpoint https://sentry.lcd.injective.network/swagger/#/Query/AggregateMarketVolume
I submit proposal testnet can see hash response but not saw on hub. Please advise:
yes XXX | injectived tx wasm submit-proposal wasm-store artifacts/cw.wasm
--title="Title of proposal - Upload contract"
--summary="Description of proposal"
--instantiate-everybody false
--instantiate-anyof-addresses='injADDRESS'
--broadcast-mode=sync
--chain-id=injective-888
--node=https://testnet.sentry.tm.injective.network:443
--deposit=50000000000000000000inj
--from='injADDRESS'
--gas=100000000
--gas-prices=500000000inj
--yes
--output json
- What is the result of that execution?
- Why are you sending a governance proposal to store new code in the chain? That is not required in Testnet
Thanks for your reply.
#1) result of exec like below, but I check on explorer hash not exist and on HUB not see proposal.
{"height":"0","txhash":"4CB41AE3922E93B1238F484881BCA3FDDEE9336F56D59DEAD376C3BFBF91D489","codespace":"","code":0,"data":"","raw_log":"[]","logs":[],"info":"","gas_wanted":"0","gas_used":"0","tx":null,"timestamp":"","events":[]}
#2) I submit on mainnet also same issue, just change 3 values:
--chain-id=injective-1
--node=https://sentry.tm.injective.network:443 443
--deposit=10000000000000000000inj \
The "node" parameter seems wrong. The expected one for mainnet is "https://sentry.tm.injective.network:443"
Ok let me try node without port 443, that make sense for https.
The port is required, the address I pasted is incorrect.
This is the correct one: "https://sentry.tm.injective.network:443"
oh, it is not pasting correctly
https://sentry.tm.injective.network:443
there we go
But the correct node is in the documentation page. You should be getting them from the docs
I use RPC but not work
Could you please share the result of executing this against mainnet? What is the public address of the account you are using to send the code? Why do you specify an incorrect "gas-prices"? why do you specify an incorrect deposit amount?
Thank you so much for support.
I need to find a way to collect the data from inj api - It's unclear how to get more then one page of transactions to a smart contract
Sorry if this has been asked before, I cant find info on this
Here are the TS docs for fetching them:
- https://docs.ts.injective.network/querying/querying-api/querying-indexer-explorer#using-http-rest
Here's the endpoint from which you can directly query from:
https://sentry.exchange.grpc-web.injective.network/api/explorer/v1/contractTxs/{contract-address}
Anyone wanna partner up to create #1 pfp collection on Injective? Art studio here.
For pagination, it is in the code example in the docs above for TS SDK.
As for the gRPC Indexer endpoint, it has a query parameter which is skip which lets you decide how many transactions you want to skip, there's a limit parameter as well which lets you decide how many transactions you want per page.
For example:
https://sentry.exchange.grpc-web.injective.network/api/explorer/v1/contractTxs/{contract-address}?skip=10&limit=10
So for example you can set the limit to 20 then to increase pagination you can increase the skip by your limit for next pages.
Thnx @lime ruin!
Is there a way to generate an unpredictable random number in injective cosmwasm
or is there any vrf available
I defined a variable token1_denom with type CW20::Denom in the InstantiateMsg struct.
When I instantiate the contract using injectived, I set the msg like '{"token1_denom":{"native":"INJ"}, ....'.
But it occurs the error like the following.
Error: rpc error: code = Unknown desc = [reason:"instantiate wasm contract failed" metadata:{key:"ABCICode" value:"4"} metadata:{key:"Codespace" value:"wasm"}]: rpc error: code = Unknown desc = failed to execute message; message index: 0: dispatch: submessages: Error parsing into type test_contract::msg::InstantiateMsg: missing field `token1_denom`: instantiate wasm contract failed [!injective!labs/wasmd@v0.45.0-inj/x/wasm/keeper/keeper.go:321] With gas wanted: '50000000' and gas used: '250555' : unknown request
Is there anyone who can help me to resolve this error?
can you send the instantiate struct
pub struct InstantiateMsg {
pub token1_denom: Denom,
pub token2_denom: Denom,
}
does the 3 day period of posting the proposal as a commonwealth draft apply for a smart contract?
I have one question.
Where can I check the info of IBC relayer channels of testnet?
I found the following link, but it is for mainnet.
https://injective.notion.site/Channels-2796bd6daf224836bc099a08fa3b4e35
I'd like to see the one for testnet.
Follow-up question is:
is there any link like this one?
https://testnet.mintscan.io/cosmoshub-testnet/relayers
This does queries the channels on testnet if this is what you need:
https://testnet.sentry.lcd.injective.network/swagger/#/Query/Channels
Hello
#💬・general message
This might be relevant: #🚀・dev-support message - #🚀・dev-support message
Thanks! @lime ruin
BTW, can you give answer to follow-up question?
I am not sure, I haven't seen anything like that for testnet yet.
For mainnet it's: https://www.mintscan.io/injective/relayers
Interchain explorer and analytics powered by Cosmostation.
GMMM team, I'm Howard from The Junior.
We are building token distributor on INJ: https://tokendistributor.thejunior.xyz/
Currently, we would love to get cw20 balance on INJ. We usually use Get portfolio API to get token list but this can't get cw20 token balance:
https://docs.ts.injective.network/querying/querying-api/querying-indexer-portfolio
I see that there is API to get cw20 balance:
https://products.exchange.grpc-web.injective.network/api/explorer/v1/wasm/inj19uk2gz5rn0f96p0phcgxmjzldx298sqywgfusl/cw20-balance
Could you please tell me how to use this api. Thank you.
https://sentry.exchange.grpc-web.injective.network/api/explorer/v1/wasm/inj19uk2gz5rn0f96p0phcgxmjzldx298sqywgfusl/cw20-balance
Just change the endpoint to the sentry one.
The product endpoint is not public I think.
thanks fam. let me try.
You can also use the TS SDK to query it: https://docs.ts.injective.network/querying/querying-api/querying-indexer-explorer#using-http-rest
It's the last code example in the docs above.
hi seems like that the official GRPC endpoint stoped working.
from sdk-ts when msgBroadcaster.broadcast( throws every time this error
type: 'grpc-unary-request',
code: -1,
originalMessage: 'The product is experiencing higher than usual demand. Hang tight, engineers are doing their best to improve the performance and efficiency.',
name: 'GrpcUnaryRequestException',
errorClass: 'GrpcUnaryRequestException',
context: 'Account',
contextModule: 'chain-auth'
i already tried to overwritte the grpc endpoint with a self grpc but so far no success
any help to be able to broadcast?
Sorry, I could not understand if when you say "self grpc" you mean you are running your own private node
yes exactly
there should not be any issue broadcasting a TX through your private node, unless it is not running or is not connected to any peer. You should check the status of your node
any guide or steps to check it? is it grpc or grpc-web?
The broadcast action should involve grpc.
You need to follow the "node health check" steps to discard issues. Please refer to the docs or use the #🔩・node-operators channel to ask questions
the node is ok, just checked.
none of those grpc work in the sdk https://cosmos.directory/injective/nodes, whatsmore not even the official one...
i dont know if i am missing something...
The interchain directory for the Cosmos ecosystem.
i'm trying to mint an nft using a cw721 contract, i'm getting an error saying:
here's my function that i'm using, it takes the collection and the recipient, recipient isn't the contract minter but it should receive the nft, the minter is a smart contract that i built which i implement this function inside of, inside of my own contract.
i'm not sure, am i missing a step that would make my contract sign the msg or something?
pub fn mint_token(collection: &Collection, recipient: Addr) -> Result<CosmosMsg, ContractError> {
// Init royalty extension
let extension = Some(Cw2981Metadata {
royalty_payment_address: Some(collection.royalty_wallet.clone().to_string()),
royalty_percentage: Some(collection.royalty_percent),
..Cw2981Metadata::default()
});
let mint_msg = Cw2981ExecuteMsg::Mint {
token_id: collection.next_token_id.to_string(),
owner: recipient.to_string(),
token_uri: Some(create_token_uri(
&collection.token_uri,
&collection.next_token_id.to_string(),
&collection.iterated_uri,
)),
extension,
};
let callback = Cw721Contract::<Empty, Empty>(
collection.cw721_address.clone().unwrap(),
PhantomData,
PhantomData,
)
.call(mint_msg)?;
Ok(callback)
}
We don't own any of the nodes in that directory. The only nodes we provide are the Injective public nodes.
Could you try broadcasting a TX using your private node and other SDK (Python or Go) or the injectived tool directly? To discard any problem in the node
Your message for instantiatiation is wrong
It is like
{ "denom" : "tokenAddress", "amount" : 100000}
are you sure?
That is instantiatemessage struct
do you have a struct named "Denom"
Its defined in cw20.
https://docs.rs/cw20/latest/cw20/enum.Denom.html
API documentation for the Rust Denom enum in crate cw20.
@topaz seal could you help me regarding this error?
#🚀・dev-support message
@frosty kiln
can anyone help with maybe some parameter info or names we are missing for querying the injective api -
so far only skip and limit work, other parameters don't - fromNumber /from specifically - and it seems there is no option to sort transactions of filter them? would be easy to fix if you can sort them in ascending order...
also there is an 'after' param - what to put in it? tried with transaction number (no luck) - this would fix our issue if we could say - give me transactions after so and so.
this is just to test in vsc
Here you have the swagger that shows the valid parameters for the endpoint: https://sentry.exchange.grpc-web.injective.network/swagger/#/InjectiveExplorerRPC/InjectiveExplorerRPC%23GetContractTxs
thanks, on it
@topaz seal Thanks for your response, Abel
So shall I ask to @frosty kiln ?
@topaz seal Are you still around here now?
I have already tagged Markus, why are you tagging him again? Instead of getting his attention faster, you will cause him not to reply at all. Please don't do that
Hello. To integrate inEVM into Routescan (https://routescan.io), we need to provide an archive RPC with debug trace for testing. Where can I find this information?
@topaz seal
Not sure about that. InEVM is implemented by Caldera as a kind of chain on top of Injective chain. You should check that out with Caldera team
what language for inj dev?
is that true what on Injective used are: Go, TypeScript, Rust, JavaScript?
Yes yes
okay, got it
how it possible, that insane. eth understand only solidity. how it working?
If you're talking in context of smart contracts then there are CosmWasm smart contracts on Injective, together with this there are Go, Typescrip, Javascript/Typescript SDKs.
Is there a playlist for writing dApps using injective?
Here are the docs: https://docs.injective.network/
thank you, but no videos?)
There's a playlist for hackathon which covers tutorials for building on Injective: https://www.youtube.com/playlist?list=PLTS_stt4XpDC3isu2cnBGpfviy3y7_Egu
The playlist is quite old so would advise to still cross check with documentation for updated information.
ok, lets watch it
hi, i have a trouble integrating token factory contract in my contract, bc currently i only support erc20 token, ibc token and native inj.
is it possible to create any of these token standarts as in token factory example ? https://github.com/CosmWasm/cw-plus/tree/main/packages/cw20
i want to create wrap token after receiving token factory and then operate as a erc20 token or ibc token. is that possible to issue custom erc20 or IBC token ?
thanks for responce in advance
I can get a transaction hash after uploading the smart contract to testnet using node https://testnet.tm.injective.network:443.
But I cannot find that transaction at all by its hash.
I get the error as you can see in the image.
Is there anyone who can help me with this error?
Could you share the code submission command you used and the full result?
Also please make sure you are using the correct endpoints https://docs.injective.network/develop/public-endpoints#testnet
oh right
thank you for your notice, Abel
really appreciate it! 👍
Is there anywhere I can thumb up for you? 😆
@topaz seal But the issue persists even I use https://testnet.sentry.tm.injective.network:443.
injectived tx wasm store release/test_contract.wasm --from testdream --node https://testnet.sentry.tm.injective.network:443 --chain-id injective-888 --gas-prices 9000000000000000inj --gas auto --gas-adjustment 15 --output json -y | jq -r '.txhash'
This is the command I executed.
No problem @fossil condor. Just keep building, that is what we want
@topaz seal could you take a look at this?
gas-prices is incorrect. It should be 160000000000000
Also please share the result or executing the command. Without that there is not much we can really use to investigate
injectived tx wasm store release/cw20_base.wasm --from testdream --node https://testnet.sentry.tm.injective.network:443 --chain-id injective-888 --gas-prices 160000000000000inj --gas auto --gas-adjustment 15 --output json -y | jq -r '.txhash'
The result is:
gas estimate: 36523320
Upload txHash:C00B5C82AB8809D449DC542E909C267CBA189D4CEAC4FFB16B5D5AF1AEB7490D
And then
injectived query tx C00B5C82AB8809D449DC542E909C267CBA189D4CEAC4FFB16B5D5AF1AEB7490D --node https://testnet.sentry.tm.injective.network:443 --chain-id injective-888 --output json
The result is:
Error: error in json rpc client, with http response metadata: (Status: 200 OK, Protocol HTTP/1.1). RPC error -32603 - Internal error: tx (C00B5C82AB8809D449DC542E909C267CBA189D4CEAC4FFB16B5D5AF1AEB7490D) not found
Usage:
injectived query tx --type=[hash|acc_seq|signature] [hash|acc_seq|signature] [flags]
Flags:
--grpc-addr string the gRPC endpoint to use for this chain
--grpc-insecure allow gRPC over insecure channels, if not TLS the server must use TLS
--height int Use a specific height to query state at (this can error if the node is pruning state)
-h, --help help for tx
--node string <host>:<port> to Tendermint RPC interface for this chain (default "tcp://localhost:26657")
-o, --output string Output format (text|json) (default "text")
--type string The type to be used when querying tx, can be one of "hash", "acc_seq", "signature" (default "hash")
Global Flags:
--chain-id string The network chain ID
--home string directory for config and data (default "/home/xdev/.injectived")
--log-format string The logging format (json|plain) (default "plain")
--log-level string The logging level (trace|debug|info|warn|error|fatal|panic) (default "info")
--trace print out full stack trace on errors
You are not getting me: I need the result of the store command. Please remove the | jq -r '.txhash' part
okay, got it
this is the result.
Please read the command result again: the answer to your questions is there. You don't need me for that
yep, thats it!
thank you, maybe I was just confusing... 😆
"Error: error unmarshalling: invalid character '<' looking for beginning of value". I am getting this error while trying to store my code using injectived on the testnet. It was working properly few days back.
@topaz seal Do you have any idea why it requires so much fee that is more than 300000000000000000 inj?
It worked properly yesterday requiring below than 9000000000000000.
Do you have handy the TX hash?
I am sure I am boring everyone by always replying initial requests with the same. But please, keep in mind that we are developers. We are not magicians and we can't read minds yet. If you don't provide the full command you executed and the full command result, there is nothing we can do
tx hash?
Yes the TX identifier for you code store command
This is the screenshot.
no, I dont have it
Try to take a look at the documentation page before doing anything. There is a page that list all official public endpoints both for mainnet and testnet. If you don't use the valid endpoints, any command you execute will fail
How come? It is part of the response when you execute the storecommand with injectived. There is no way you don't have it.
It was working few days back. It suddenly started giving this error. I haven't changed anything in my code.
I am using the same way that it is shown in the documentation.
My previous response still remains: you are not using the official endpoints
of course, I am getting the relevant tx hash.
but it does not exist on the testnet at all.
Please take a look at this https://docs.injective.network/develop/public-endpoints#testnet and let me know if there is any endpoint there starting with k8s.
Ok. So you mean you have not yet solved the funds issue, right?
okay okay
I just resolved it.
I paid the funds as fees.
I changed --gas-prices to --fees.
thank you anyway
It is working now when I changed the endpoint. Would appreciate if you could update this documentation on your site - https://docs.injective.network/develop/guides/cosmwasm-dapps/Your_first_contract_on_injective/. In the document, it is referring to k8 endpoint.
has anyone implimented cw404? Trying to find a repo for it, but can't seem to find it.
@topaz seal , Can i ask u some questions about deployment on mainnet ?
You don't have to ask to ask, just ask your question. 
I have built smart contract for new project about staking. but in this project we need to deploy many smart contract (with same).
in this case, do i need to request governance every time ? or is there any other ?
If you want to upload your contract on mainnet then yes, you'll need to raise a governance proposal for it.
For testnet you can directly do it.
but I need to upload many times , every times do i need to raise a governance proposal ?
With same what? Do you have one single contract logic and you will have many instances of that contract logic? Or do you need to upload many different implementations?
I have one single contract logic and will have many instances of that contract logic.
What you upload to the chain through governance is the code. If you have a single implementation then you just need to upload 1 thing, not many
could you explain in more detail please ?
so you mean, I need to upload code for governance & after that i can make muliple instance of that contract ?
is that possible ?
You need a governance proposal to upload a new contract code.
You don't need a governance proposal to instantiate a new contract from an already uploaded code
looks correct, so error must be in the way you submit the data or some other context. feel free to share more context
For Testnet use: https://testnet.faucet.injective.network/
You will get testnet tokens, be patient
can you provide me here..if I will give the address?
You can DM @lime ruin, he will send you

hey guys⚡, i was wondering is there any way to take snapshot of all injective stakers for all validators combined 🤔
hey, I'm using @injectivelabs/sdk-ts and I was wondering if there is any way to detect live switching wallet to update my address
What do you mean with "live switching wallet"? Do you mean the user changing the account in MetaMask or any other wallet they have connected?
yes, exactly
I think you are misunderstanding the purpose of Injective SDK. It is build to assist in the communication between apps/sites and the chain. It is not designed to assist on adding UX functionality
oh, ok. So there's any way in general to do this? Because I'm seeing a onAccountChange() from WalletStrategy
Hey Ninja's I have a question about this part. I have --amount on 60INJ and --min-self-delegation=60000000000000000000 why did I get the error! A little bit confused right now on cli
I'm trying to get historical funding rates, using this code from the api docs like so:
# select network: local, testnet, mainnet
network = Network.testnet()
client = AsyncClient(network)
market_statuses = ["active"]
quote_denom = "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5"
markets = await client.fetch_derivative_markets(market_statuses=market_statuses, quote_denom=quote_denom)
# print(markets)
# # # Get funding rates for a specific market
market = markets['markets'][0]
end_time = dt.datetime.utcnow()
start_time = end_time - dt.timedelta(days=1)
# Convert datetime to timestamp in milliseconds
end_time = int(end_time.timestamp() * 1000)
start_time = int(start_time.timestamp() * 1000)
pagination = PaginationOption(start_time=start_time, end_time=end_time)
if market['isPerpetual']:
market_id = market['marketId']
funding_rates = await client.fetch_funding_rates(market_id=market_id, pagination=pagination)
df = pd.DataFrame(funding_rates['fundingRates'])
# drop marketId and convert timestamp to datetime rounded to seconds UTC
df.drop(columns=['marketId'], inplace=True)
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms').dt.round('s')
# rename timestamp to ts
df.rename(columns={'timestamp': 'ts'}, inplace=True)
print(df.head())
print(df.tail())
print(df.info())
if __name__ == "__main__":
asyncio.get_event_loop().run_until_complete(main())```
Sometimes this code works, but more often it doesn't and gives a RuntimeError: Error fetching exchange cookie (Metadata(())).
Note I've tried using network = Network.mainnet()
But that returns an empty market {}.
I've read others have gotten this error and it's because the public indexer is not great right now, and I should use a local one?
Here I think it shows how to set up a local indexer but I have to set up a local node first?
https://docs.injective.network/nodes/RunNode/local
I have to set up something called a 'key ring'...I'm not a crypto dev I'm just a data scientist.
I'm not trying to make a ton of calls to the api, like once an hour I'd like to get the funding rates for all perps.
Is there a way to do this using public indexers so I don't have to go down too much of a rabbit hole here?
Thanks
You can try getting the information from the public indexers, but they are in general under a very heavy load. The chances that you get a connection refused error are high
So next step is to set up local indexer? Is the only documentation on this what I linked above? I have to set up a node first? Any other links or references for guidance on setting that stuff up would be great I don't understand any of it, would need to start way at the begininng
@austere bobcat any news about 404cw?
Please wait for answer from dev team
been redirected here - does anyone have working examples of calling injective smart contracts with typescript?
Regarding cw standards you should check CosmWasm documentation
You provided the link to the documentation on how to run a local node in your first post
anyone who can help out with this
There is no endpoint providing the information you want with a single query
what's a reasonable price to pay to have a historical l2/l3 order book and trades data scraped from INJ's helix? I assume that would be possible since everything on the DEX should be on the blockchain right?
It could vary in price depending on factors like the volume of data and the complexity of scraping
Everything is on the blockchain, yes. But only non-prunned nodes contain the full chain, and in general the nodes are prunned (at least the public ones). You might need to run you own unprunned node
I see, pruned nodes only contain the latest transactions? How many days of transactions at least do they contain?
It depend on factors like network activity and block size
But they generally store a few days worth of data
Have a quick question. Looks like Injective made some changes recently to how you get metadata.
So previously I was using Denom client to fetch token metadata, (creator, supply, and creator rights, etc). This used the token format as "factory/address/symbol", but now it seems token addresses are just"inj[address]".
So 2 main questions, are tokens that follow factor/address/symbol deprecated, or are they co existing, and how are we now able to fetch the equivalent metadata information with the new token contract, it wasn't clear in any of the docs?
Not sure if any changes were made or not but I simply use:
const { TokenFactory } = require("@injectivelabs/token-metadata");
const { Network } = require("@injectivelabs/networks");
const network = Network.Mainnet;
const tokenFactory = TokenFactory.make(network);
const denom = "factory/inj1.../..."
const token = tokenFactory.toToken(denom);
Which still seems to work.
Yesterday, I tried a whole day to understand why it was not importing. Now i understood. Still not fixed.
Well, the documentation is there, that is for sure: https://api.injective.exchange/#bank-denommetadata
Hmm maybe looking at the wrong spot. Let me re read that, I don't think I saw this one. Hmm 🤔
So it the reason this token is failing is the fact this address is a "contract" (inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923)
hi, is there any active grant for an NFT project on INJ?
Depends, we do have one for projects building on Injective: https://www.opendefi.xyz/venture-group
Our Grants Program is designed to provide milestone-based funding for projects that aim to grow the Injective ecosystem with pioneering ideas.
is this the same of Injective Venture?
Yes
@lime mountain @ionic oxide @plush oyster we need your help here again to bann spammers
Done
https://discord.com/channels/739552603322450092/1210845552883798066
can anyone help me with this query
well heres official Injective twitter saying the cw404 is released but where is not meantioned.
https://twitter.com/Injective_/status/1760925051124077019
Uniting Fungible and Non-Fungible: Exploring the CW404 Standard in Conjunction with Injective
https://www.linkedin.com/pulse/uniting-fungible-non-fungible-exploring-cw404-standard-bikram-biswas-g60wc?utm_source=share&utm_medium=member_android&utm_campaign=share_via
I tried to write down after reading everything from Cosmwasm to ERC . Please check and inform me if there is anything I misinformed.
inEVM testnet faucer does not seem to work?
Please reach out to Caldera team they will check
can i get sent some tokens? i've been unable to reach the Caldera team
I have a question about fee_recipient logic.
https://docs.injective.network/develop/guides/exchange/
The doc says the fee_recipient is receiving the 40% of trading fee.
What happens if I don't set the fee_recipient for order?
Specifically, this contract example sets the optional fee_recipient address.
What will happen if I pass it as None, instead of some address?
https://github.com/InjectiveLabs/swap-contract/blob/master/contracts/swap/src/swap.rs#L145-L161
The chain will use the sender as the fee_recipient if none provided in most cases
Hey! Any plans on ibc-hooks on Injective?
https://github.com/osmosis-labs/osmosis/tree/main/x/ibc-hooks#ibc-hooks
Bump on this for confirmation.
For CW20 tokens use CW20 contracts functions
can someone explain me native markets in Injective? https://explorer.injective.network/markets/
Is that like an amm dex built in the protocol? or a more like an order book dex?
how would I know the liquidity on a market?
Hey. Im looking for dev rel team member to discuss deploy motoDEX (top3 game wordwide). Please DM me in TG alex12alex
can u help in case?
You can check #📥︲collaborations
Hi, I am part of Venly (web3 infra) and I was wondering if a mod could bring me into contact with the right person to discuss a potential integration of Injective into our dev tools (WaaS, NFT API, Market API, ecommerce, Gaming SDK,...)
Not sure, it depends on the question. Please post your doubt and someone in the team will reply
Have you already checked the #📥︲collaborations channel?
Im trying to convert my stars address to injective but im not getting the same address as i have in keplr for injective only
https://jasbanza.github.io/convert-bech32-address/
@topaz seal @frosty kiln
I've got this error on my site. please help me to fix this error.
always I've got error on this line
Try with Network.MainnetSentry
have tried but same result
To use the query you're using, the address which is passed needs to be registered on chain before you can query it else it'll return 404 response, the address should get registered when any transactions happen to that address.
pinged you on tg
Does anyone have an example project using WalletStrategy to connect to Metamask? I'm getting an error "pubKey does not match signer address" when running msgBroadcastClient.broadcast(). I'd like to refer to some other projects for guidance.
here is my code
here is error
You are using an invalid (out of date) network to create the broadcaster. K8s are no longer active. Please check if using the correct network solves de issue.
cc: @kind flare
Should I use InjectiveNetwork.Testnet?
Please use TestnetSentry
what about mainnet ? please tell me about mainnet endpoint.
MainnetSentry
A channel for builders and developers
Please what are we building and developing?
Sorry to ask
DIfferent dapps, you can see here https://explorer.injective.network/featured-dapps/
What's Dapps please?
I'm new to this whole space
Check the link sent above by Stefan to check some featured ones, you can check the full ecosystem at: https://injective.com/ecosystem
Also please forward any general queries to #💬・general / #🆘︲help-and-support-old, please leave this channel for development related questions, thank you.
Does this answer the question on what Dapps means?
Decentralized applications, basically the applications built on any specific blockchain can be considered a dApp.
If you have any other questions then use #💬・general for them.
Okay
Noted
Thanks
Anyone?
Or point me to relevant documentation
Please check the documentation page. Your question is addressed there.
what error in Keplr ?
Helix app is the biggest one
Who should we contact for a manually upload of a contract after Governance Proposal is passed?
@primal terrace
no not in keplr, what im trying to do is convert my osmo address to injective
is it doable ?
If a governance proposal is passed then your contract is already uploaded. You can find the Code ID from the explorer page or on-chain queries.
https://explorer.injective.network/codes/
@wheat nexus
I am using injectived cli in a docker
I created a new wallet
name: testuser
type: local
address: inj1huurgwdssfml20j7lmk5zq9nmsa5j5f9pj5wv9
pubkey: '{"@type":"/injective.crypto.v1beta1.ethsecp256k1.PubKey","key":"A2VJavCjnjF7aLdVD17PgN5thfv0G+5tHNao6uo3dHW1"}'
mnemonic: ""
and exported it
export INJ_ADDRESS=inj1huurgwdssfml20j7lmk5zq9nmsa5j5f9pj5wv9
and got faucet here: https://testnet.faucet.injective.network/
but its balance is still zero after all above
Dear members of the Injective community (@here):
We want to notify everyone that there is a new version of the Python SDK (v1.3.1). The new version includes a change that aligns the SDK to a change performed in the public load balanced servers, aiming to improve performance and availability in general.
If you are currently using the Python SDK, please make sure download the latest version (https://pypi.org/project/injective-py/).
Thank you very much for your attention.
Interesting
🚀🔥
❤️🥷
Great, thank, mate! 🔥
@ionic oxide , could you plz help me?
Please have patience until a dev responds
Do you mean that you have requested funds from the faucet and you have not received them? The faucet does not send funds instantly all the time. It takes some time if it is empty.
Have you tried other faucets?
!faucets
Receive a small amount of INJ, enough to make 1-2 transactions.
- https://inj.supply/
- https://stakely.io/en/faucet/injective-protocol
- https://bwarelabs.com/faucets/injective-mainnet
For Testnet use: https://testnet.faucet.injective.network/
@tall bronze
Cool! 
well yes, and Keplr can do that
thats why I asked what error you have in Keplr
@primal terrace
Can you check the ibc channel for evmos?
I tried to use it again, and it fails.
Also, it would be much better if there is doc/website to show the open ibc channels of injective testnet.
FYI, I want to know if the channels are app module ones.
like this proto_msg type url "/ibc.applications.transfer.v1.MsgTransfer"
Hello @topaz seal , I tried here yesterday, but still 0 balance now
hi
I am a Smart Contract & Web3 developer with 7 years experience.
Ready to craft decentralized wonders tailored to your project's needs, ensuring security, scalability, and innovation every step of the way.
Skillls
- Smart Contract : Ethereum, BSC, Polkadot, Tezos, Solana, Avalanche
- Web3 : Integrating DApps with blockchain networks
- Blockchain Architecture : Tailored to Specificc use cases
- DeFi : including DEXs, lending, borrowing, yield farming
- NFTs : Creating for digital art, gaming, and collectibles
Projects
- DeFi Applications
- NFT Marketplaces
- Supply Chain Management
- DAOs
- Decentralized Social Networks
You can check the careers page of Injective labs: https://injectivelabs.org/careers/
Thank you.
by any chance do you guys need an intern? 😄
You can also check the careers page of Injective Labs which is sent above: #🚀・dev-support message
One question, where can I get the doc/code of cw404 standard?
You have only two options: wait until that particular faucet has mor INJ available or use other faucet
where can I use other faucet?
!faucets
Receive a small amount of INJ, enough to make 1-2 transactions.
- https://inj.supply/
- https://stakely.io/en/faucet/injective-protocol
- https://bwarelabs.com/faucets/injective-mainnet
For Testnet use: https://testnet.faucet.injective.network/
Have you seen in the very same screenshot you sent the phrase "Alternative testnet faucet here"?
thank you, I got inj but faced another issue
I used this command
yes 12345678 | injectived tx wasm store artifacts/my_first_contract.wasm
--from=$(echo $INJ_ADDRESS)
--chain-id="injective-888"
--yes --fees=1000000000000000inj --gas=2000000
--node=https://k8s.testnet.tm.injective.network:443
and using docker env
I seriously doubt your passphrase is 12345678. If it is, you should change it as soon as possible
Actually, you are also pointing to an incorrect node. The list of valid nodes is in the documentation
You can see open roles here - https://injectivelabs.org/careers#open-roles
Did you not send the same message recently #🚀・dev-support message ?
Please stop spamming in the channel.
cc: @austere bobcat
Didn't notice that, sorry i will delete.
🧙♂️🤝
I'm tryign to deploy to inEVM but getting 'gas required exceeds allowance' when using https://testnet.rpc.inevm.com/http as the RPC. I have 300 INJ on https://testnet.hub.injective.network/.
We are not getting any values of market spot and preps, could you please help me out even I have moved .env.example to .env also please check my .env file screenshots.
Please let me know if anything is wrong in .env file or we need to do any other configurations on my local.
hi
i am building a dapp on injective, am founder of discordels, i have correctly successfully integrated keplr wallet in app
but leap giving problems.
Leap connection is done correctly, but in docs i not found any guide to make transactions with leap.
tried keplr handke transaction function, but it not seems to work with it
Please check all documentation pages https://api.injective.exchange/?go#tokenfactory-msgsetdenommetadata
Could anyone please share these endpoints ?
VITE_INDEXER_API_ENDPOINT=
VITE_SENTRY_GRPC_ENDPOINT=
VITE_SENTRY_HTTP_ENDPOINT=
VITE_SENTRY_REST_ENDPOINT=
VITE_EXPLORER_API_ENDPOINT=
VITE_CHRONOS_API_ENDPOINT=
These endpoints need to be set in .env file.
If that is for a node, there is a spacial channel for node questions in this server
@topaz seal please check this and help me out
You will have to provide more context. I can't help you with your question because I don't know what app are you using, if you are using and of the SDKs, nothing.
Can you provide a script on how you are getting the markets?
just following readme of this - https://github.com/InjectiveLabs/injective-helix-demo. for node_modules installation usinf yarn and running using yarn dev
what else should i need to do ?
@kind flare
They are optional, you don’t need to fill them, you need that if you wanna connect to your own infrastructure. If not, you can just set VITE_APP_NETWORK=mainnetSentry and thats it
yes @kind flare I want to create my own infrastructure as custom and want to add spot pair and perps pair
Please suggest best way for this
Then you have to complete the config options with your own prive node and indexer endpoints.
ok @topaz seal can you please suggest me how we can setup our own private node and indexer endpoints ?
You can check #📚・node-resources
Ok i can see there how we can Join Injective Mainnet, And can you help me with indexer endpoints how i can setup them?
@topaz seal Hi Abel, how are you doing today?
Are you around here now?
I'd like to upload and instantiate a smart contract to the injective mainnet.
I had various test on the testnet already.
Would you let me know how long it takes to be deployed to the mainnet?
Also that is explained in the Injective documentation page
also trying out https://github.com/InjectiveLabs/injective-helix-demo, updated package.json to use latest dependencies matching injective-ts, but now getting error
"Cannot read properties of undefined (reading 'mainnetSentry')"
am very new at this, any hints on where I should look/read to resolve this? thanks
Can i write on contract cw20 on injective, even im not owner the contract?
I have problems with Staking Api. I'm using injective/sdk-ts with Mainnet enpoint to fetch staking data from injective. The thing is it's usually down very frequently, is there any alternative ways to get the data ? thank you
Maybe my answer is not going to be useful since I am not sure what you mean with "write on contract cw20" (if you can clarify that the team will be able to provide a better answer). But initially when a contract logic is implemented each function in the contract will be configured as public or not. A public function will be callable by anyone, unless the function logic performs some caller validation.
Please make sure you are using MainnetSentry. Also, regarding availability, the best alternative is for users to run their own nodes
Use pyinjective lib, when try to connect stream_spot_orderbook_update() have error.
It seems you are not using the latest library version
Are there any known issues with mainnet api? (api.injective.network)
Looks like it started timing out or throwing http 503 errors a few hours ago
Tried other environments as well (sentry, k8s), none of them seem to work properly atm
k8s indexer endpoint would throw 503s at me, sentry would respond with weird 400 bad request errors
when is it available?
Can you try this one, please?
https://testnet.faucet.injective.network/
tried, but coudnt get faucet
Can you DM me with your address, please?
@shut canopy Have you got the faucet?
I have question about spot market.
I can use the following lcd to query the prices for swaps.
https://lcd.injective.network/swagger/#/Query/SpotMidPriceAndTOB
I'd like to know how these prices are computed.
Is this based on existing orderbook(orders)?
Or is this simply the ratio of pair tokens?
Or is this computed like in swap-contract?
https://github.com/InjectiveLabs/swap-contract/blob/master/contracts/swap/src/queries.rs#L167-L186
yeah, I have
oh really?
where did you get it?
from Stefan
hmm... okay, got it
I am asking it because I see its still undergoing maintenance.
Quick question for the intective team. Just looking fro confirmation on my end. So a factory denom tokens (factory/address/subdemon) has the MsgMint and MsgBurn functionalities correct.
For CW20 tokens, from what ive read are not there in CW20 tokens (injaddress). Its that correct?
Plase, try to rephrase your question. To me it sounds like you are asking if considering the CW20 tokens, if there are no CW20 tokens, which makes no sense
So the token denom's that start with "factory/" have the MsgMint and MsgBurn capabilities, but CW20 tokens, that are contracts and start with "inj" only, do not have the MsgMint and MsgBurn capabilities natively, is that correct?
CW20 tokens' functionality depend on their contract implementation
Perfect, so by default they don't, unless it was implemented in the contract.
actually they do have by default - https://github.com/CosmWasm/cw-plus/blob/main/contracts/cw20-base/src/contract.rs#L197
Any devs or admin on? Have a serious problem that yous may be able to assist me with 🙏
hey, devs cannot help you with that, sadly you got compromised, only way to recover your staked INJ is withdrawing faster than the scammer
hello please I need injective test tokens
Cool beans 🙏
you can Dm me I will send testnet tokens
cydm
sent
thanks
currently facing this
Error: error unmarshalling: invalid character '<' looking for beginning of value
when trying to upload the contract
yes password# | injectived tx wasm store /var/artifacts/cw404.wasm \
> --from=$(echo $INJ_ADDRESS) \
> --chain-id="injective-888" \
> --yes --gas-prices=500000000inj --gas=20000000 \
> --node=https://k8s.testnet.tm.injective.network:443
Hello @primal mesa , try this
yes password# | injectived tx wasm store var/artifacts/my_first_contract.wasm --from=$(echo $INJ_ADDRESS) --chain-id="injective-888" --yes --fees=1000000000000000inj --gas=2000000 --node=https://testnet.sentry.tm.injective.network:443
Please use the correct nodes. You will find them in the documentation page
gm
I want to participate in the OLP program through the Black Panther Vault. I have already removed my address from Trade and Earn https://explorer.injective.network/transaction/DABD4CC1DEBA3F9034A29095B3B84FCE9B026D15F0D3D21DF24A711FD3A14871/ I have also deposited funds into the kuji/usdt Black Panther Vault https://explorer.injective.network/transaction/A23430633F9953833A6F241FD6B78D2EC4DF809D13D6421C8094269F116898C8/
However, I still see the following statuses on the OLP page:
Current Epoch Ineligible
Next Epoch Ineligible
Or should I check not my address, but the vault's address in the OLP checker?
Hello
My client shut down while I was using the docker.
How can I restart it because I was in the middle of setting a contract up
Are you trying to restart a local node? If that is the case, please post the question in #🔩・node-operators
Anyone here that would be interested in a Mito integration on a smart contract level?
If i deploy a token smart contract on cosmos, can I move it over on injective through IBC?
Hello, what's minimum deposit to upload contract to Mainnet?
Any gobernance proposal requires a 100 INJ deposit
Where could such an error originate, I am using foundry and running a script. Is there a direction in which I could look more
Is there documentation about how to call the injective spot orderbook ? I would preferably like it from inEVM to the exchange module using hyperlane, but could only find https://docs.injective.network/develop/modules/Injective/exchange/spot_market_concepts/ which only explains it but does not give the code
Can you see Code ID for proposal 350?
I can’t find it on explorer page or on-chain queries.
We havent submitted our contract anywhere, we made a text proposal which require us to upload it manually. (proposal passed already)
I found the typescript sdk, but my question would be is it possible to call the spot orderbook module from contracts in inEVM, or does it have to go offchain ? Also, when making spot limit orders, do you have to provide and "lock" the tokens you buy/sell inside the orderbook, or can you send the tokens only when the order is filled ? I'm basically trying to make an amm dex connected in solidity connected to injective orderbook module
For inEVM it would be better to check Caldera team documentation
Hello, do you have any Typescript/Javascript example on how to send a market order on Injective/Helix app? Thank you
For some reason i am getting the following errors: Module "@injectivelabs/utils" has no exported member derivativeQuantityToChainQuantityToFixed . I am getting that for 2 more functions (derivativePriceToChainPriceToFixed, derivativeMarginToChainMarginToFixed). They used to work in older version but is not working with new version
You can import it from @injectivelabs/sdk-ts
Thank you very much
@topaz seal do you have time to help me with this?
Hello. Why are you trying to upload the code manually? Are you trying to bypass the contract size limitation?
No. If you Read the information on Injective Hub about “Text Proposal” it says that this form of proposal needs to be manually handled if passed. Our proposal is passed, and now I’m asking how do I do this? There is no more information about How to upload it.
That does not apply to code uploads, because there is no way for users to manually upload coad. Don't create a text proposal. Create a wasm-store proposal that will automatically store the code once the proposal is approved.
The process is described in the documentation https://docs.injective.network/develop/guides/injective-101/mainnet-deployment-guide
Why is this not mentioned in the page where we create proposals?
What am I supposed to do now? We passed our governance, with text proposal which clearly states following "Propose ANY action on Injective. TextProposal defines a standard text proposal whose changes need to be manually updated in case of approval". As you can see on the image. "Any actions" should include upload of a contract?
@topaz seal
I have one question.
How can I query the whole tx info with tx hash?
For example, I'd like to see the whole error log of tx with tx hash.
In addition, can you help me answer this question?
#🚀・dev-support message
As I mentioned in my previous message, the process to upload contracts to mainnet is detailed in the documentation. The description of the text proposal you mention is correct, but since there exists a specific kind of proposal for code-store, the expectation is for users to use the specific proposal intead of the generic text proposal.
What you are supposed to do know is to send the code-store proposal
Please check the API documentation page. The endpoint to query TXs is detailed there
All native markets are orderbook markets. The middle price calculation is the standard for orderbooks
Which one of these are for code-store?
Please refer to the link I provided previously
@topaz seal
I have more questions.
I'd like to know if the min_quantity_tick_size of spot market is applied to both of base denom and quote denom.
For example, I'd like to swap INJ for USDT in INJ/USDT market.
https://explorer.injective.network/markets/spot/0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0/
Here, the min_quantity_tick_size is 0.001.
So, should I send at least 0.001 INJ to buy USDT?
Also, at least 0.001 USDT to buy INJ?
I would suggest reviewing a little bit more documentation about orderbook trading. I don't suggest doing any trade activity until you know what you are doing. All orderbook markets have a trading pair, and the base and quote tokens for the market remains the same. Also when you create orders, quantity is always for the same token (either buy or sell), and the price is always in the same token (either buy or sell).
Do you have any suggestion for reading? @topaz seal
I just read this doc.
https://docs.injective.network/develop/modules/Injective/exchange/spot_market_concepts
Don't the inevm to cosmos wasm calls go through hyperlane instead of caldera ?
Caldera team implemented inEVM, they will be able to provide more info about that
alright thanks, also anybody knows the correct address of the wrapped injective token on inEVM (both mainnet and testnet), the explorer gives 3 WINJ tokens, some must be scams lol
I cant find anything in the doc about which proposal type of the 4 to select. Can you please point it out for me?
You don't have to raise a governance proposal through the Injective hub, it needs to be done through the CLI to upload your wasm contract code to the network.
https://docs.injective.network/develop/guides/injective-101/mainnet-deployment-guide#submit-a-code-upload-proposal-to-injective-mainnet
Hello, I have a question that might seem basic, as I'm a beginner.
I've deployed my contract on the Injective testnet. In my application, I need to obtain USDC approval from the user. On Ethereum, I would typically use the USDC address and its ABI, then call the approve function with the spender's address and the amount.
However, I don't have the USDC address for the Injective testnet. Could someone please provide it?
so that i can use balanceOf and approval functions
Hello ser! I dropped you a dm - can you check plz 
how can I simply verify a user and let them log in to my app, using the signArbitrary function ?
I've been trying to verify the message using the ADR-036 spec but I couldn't get it to work
verifyArbitrary from @keplr-wallet/cosmos library is also not working, getting an Unmatched signer error both there and on my own implementation
For the ADR-036 spec, make sure you’re following the guidelines for off-chain message signing, which includes using an empty memo, setting the nonce and sequence number to 0, and having an empty chain-id. https://docs.cosmos.network/main/build/architecture/adr-036-arbitrary-signature
If you’re encountering an Unmatched signer error,
it could be due derivation path, especially if you’re working with a network like Injective.
yeah I've been doing everything correctly
getting the signature with window.keplr.signArbitrary
and verifying according to the spec
the same impl works on other cosmos chains
is there any working example that I can check?
if you want to look for test cases for the verifyArbitrary function in the @keplr-wallet/cosmos package,
I only know Keplr wallet documentation which provides guidance on how to detect Keplr and use its features.
which may include examples of test cases.
https://github.com/chainapsis/keplr-wallet/blob/master/docs/api/README.md
documentation also suggests using the verifyADR36Amino function in the @keplr-wallet/cosmos package or your own implementation instead of using the verifyArbitrary API.
But worry not senior devs will soon resolve ur query wait for them to rpl. 
I've developed nft staking smart contract, and deployed at testnet. but other users can not execute my smart contract message. shows this message (below image) when other user execute message on my smart contract.
please help me on this , how to fix that.
make sure that your smart contract’s execute function does not restrict message execution to only the contract owner or specific addresses.
Set Permissions to grant execute permissions to any address.
For detailed guidance, you can refer to the Injective documentation on developing smart contracts.
https://docs.injective.network/develop/guides/cosmwasm-dapps/Your_fist_contract_on_injective/
on the link you sent, I can't find about setting permissions to grant all users can execute msg , if you can send image with marked, it would be appreciate
yes this article dosent cover that. i will send if i will find any practical otherwise just wait for experience devs to rpl. they'll give detailed solution
could you tell me how to get transactions with codeid please ?
u may check the documentation
https://docs.cosmwasm.com/docs/getting-started/interact-with-contract/
We have the wasm binary ready. Now it is time to deploy it to the testnet and start interacting. You can use the wasmd Go CLI or the CosmJS Node Console as you prefer.
who can help me on this please ?
when I've inited my smart contract, this logs attached, is that right?
how to make smart contract for every users can execute my smart contract message?
thanks for trying fam, but unfortunately verifyADR36Amino is also not working. I've tried all possible solutions
is there anyone who knows how this works? something this easy shouldn't have taken this long to develop 🥲
pubkeyToAddress function for example returns a different wallet address than the signing address for a signature
I think it might be because address calculation is done using ethsecp256k1 on Injective but the current impls expect secp256k1
Hey there, using the TS SDK, and given an address, a signature and a message, what's the best way to verify that the signature is valid for those parameters? Probably the same question that was asked above ^
const web3 = new Web3(window.ethereum);
how can i change this to injective public API?
i dont see any web3 provider provide api for injective so far.
@kind flare hey boss, small heads up in case you have a quick answer 🙏
you don’t need a Web3 provider like you would with Ethereum’s window.ethereum. Instead, you can use the Injective API directly, which supports both REST and gRPC protocols. Injective also provides SDKs in Python, Go, and TypeScript.
Maybe this will help
API ARTICLE: https://blog.injective.com/en/injective-public-api-launch/
( You can see github resources in the article)
Hello CosmWasm developers!
Please take a look at this recently published post about security issues caused by rounding in smart contracts. What they are, how to prevent them, and, as always, some real-world issues from our reports 🙂
https://medium.com/oak-security/cosmwasm-security-spotlight-4-b5ba69b96c5f
Are you a CosmWasm Smart Contract developer? A random Cosmonaut peeking into this cool tech? A Solidity auditor looking for new knowledge…
Depends on the signature, if its EIP712 you can try to derive the pubicKey from the signature and the EIP712 and if it matches your publicKey the signature is correct
We don’t have any other utilities for this particular case
to derive the pubicKey from the signature
any resource I could check to know how to do that?
I'd like to do this in an app where the user can authenticate using their Injective wallet
so wallet signs message, backend checks if signature matches message and signer
https://github.com/InjectiveLabs/injective-ts/blob/b8661f057136c6f82e87770053ace40c7f2c3936/packages/wallet-ts/src/broadcaster/MsgBroadcaster.ts#L194-L217 for Ethereum native wallets only
Ty, not possible to make users sign a message through Keplr/Leap and verify it ser?
I'm sure it is but we don't have some integration on the sdk, you can try to google it out
I've obviously tried to google it, same as the person before me lol #🚀・dev-support message
"to recover the public key" : this is the point lmao -> How?
import base64
from cosmospy import offline_signer
# Example TxRaw and Signature
tx_raw = "YOUR_TX_RAW_BASE64_ENCODED_STRING"
signature = "YOUR_SIGNATURE_BASE64_ENCODED_STRING"
# Decode TxRaw
decoded_tx_raw = base64.b64decode(tx_raw)
# Extract Signature
decoded_signature = base64.b64decode(signature)
# Extract public key
public_key = offline_signer.recover_public_key(decoded_tx_raw, decoded_signature)
print("Public Key:", public_key)
In this pseudocode:
YOUR_TX_RAW_BASE64_ENCODED_STRINGis the base64 encoded string of your TxRaw.YOUR_SIGNATURE_BASE64_ENCODED_STRINGis the base64 encoded string of your signature.
Make sure to replace these placeholders with actual values from your transaction.
You may need to install the cosmospy package or any other relevant library for working with Cosmos transactions and signatures. Make sure to check the specific documentation for the library you choose to use. Also, the actual implementation might vary slightly based on the libraries and tools you're using.
Alright so your sdk only supports EVM wallets although I guess 99% of your users and dapps use cosmos wallets
Ty ChatGPT!
I am just curious how to creae dapp to swap tokens on injective chain, what doc is good for me?
If there is someone who has exp of this, plz help me
u can checkout https://docs.injective.network/
Documentation homepage offers a wide range of developer guides and resources to help you build powerful financial dApps. Its very user frndly.
Also you can check https://docs.injective.network/develop/guides/exchange/ ( If you’re specifically looking to build an orderbook exchange dApp)
Injective is a lightning-fast, interoperable, layer one blockchain optimized for building premier Web3 financial applications. Injective provides developers with robust plug-and-play modules such as a fully decentralized orderbook, binary options, real-world asset (RWA) module, and more, allowing developers to build a diverse array of sophistica...
As an incentive mechanism to encourage exchanges to build on Injective and source trading activity, exchanges that originate orders into the shared orderbook of Injective's exchange protocol (read more) are rewarded with $\beta = 40%$ of the trading fee from orders that they source. The exchange protocol implements a global minimum trading fee ...
thx for your kind reply
i have already checked
but unclear how to do swap
on evm, there is a protocol such like uniswap or pancake swap
so like this, should interact with individual smart contract or any other service?
i am going to build just backend for swapping
If you're looking to use the Helix swap contract then yes you can do so but in the backend the Helix swap contract also uses the market orders in the backend to perform swaps.
Check this on how you can create spot market orders using Typescript SDK and with the help of exchange module: https://docs.ts.injective.network/core-modules/exchange#msgcreatespotmarketorder
could you we have private chat?
since there are too man y things to ask or discuss
You can feel free to ask here so that your question is seen by most of the devs and anyone can try to help you, remember that if you get random private message or friend requests then block them, they are very likely a scammer.
make sense
and thx for your effort
#🚀・dev-support message
here, the points what i dont know well are the exact meaning of various parameters
could you help me abou these?
Please clearly state you question. We don't provide general guides, since that is the purpose of the documentation pages.
yes, thx,
so MsgCreateDerivativeMarketOrder is function for create swap, right?
That function will create a market order. You need to understand what a market order is in the context of an orderbook market before doing anything. But that is basic trading knowledge, not something to address in the builders channel, that is intended for technical questions
plz help me on this, I can't understand why this happened.
in the code, there is no checking owner information.
hmm....
so, where can i find example code of swap tokens?
the red marked part was run successfully with contract owner, but it has error when other users execute this msg on smart contract.
please help me how to fix that.
is the cw20-reflection token standard documented anywhere?
Keep an eye in dojo doc.
I'm sure they will update it soon with cw-20 reflection part.
https://docs.dojo.trading/introduction/about
I was trying the "Cosmwasm Deployment Guide on Testnet" and I get the following error in the step 1. I'm using WSL Ubuntu. It would be great if I get some help to resolve this error.
it mentions an invalid type: map, where a SemVer version for the key package.version was expected.
you should check the Cargo.toml file for the cw20 package.(check if package version format compatible with SemVer).
also update your ubuntu terminal. It might resolve any version-related issues.
need docs to start buildiong with injective :)) anyone here ?
Injective is a lightning-fast, interoperable, layer one blockchain optimized for building premier Web3 financial applications. Injective provides developers with robust plug-and-play modules such as a fully decentralized orderbook, binary options, real-world asset (RWA) module, and more, allowing developers to build a diverse array of sophistica...
Normal here lol
You can check the official docs. You can find them easily using Google or any other web search tool. No need to ask here for that.
Please dont spam this chat
oh ok 😦 was asking
Is there anyone experienced with cosmwasm_std::CheckedMultiplyFractionError?
How can I handle both overflow and divide_by_zero errors after doing checked_mul_floor?
What are we supposed to write in this field? “From your_key”
This is for Contract Instantiation Governance.
i am going to swap token by interact dojo swap contract directly
but i cant see dojo contract code, so how to interact?
the --from parameter is the name of the key-file registered in your injectived for the account you want to use to sign the TX
You have to contact dojo swap team or dojo swap dapp documentation page
any official wrap station from native to cw20 or needs to be done a custom wrap contract?
can only convert from cw20 to bank and vice versa, on the hub https://hub.injective.network/
Hello, one question
I am trying to query the B contract from A contract(cosmwasm) in the inj mainnet.
But, when I try to call the query in A contract, it gives me the following error
query wasm contract failed: Generic error: Querier contract error: codespace: wasm, code: 9
Can anyone let me know the reason?
Ts indexer to fetch contract txs is throwing 502 error for days, any alternative endpoint to fetch txs for a sc
How can I get usdt test tokens in my keplr wallet?
If you have Testnet INJ you can use the INJ/USDT market to trade one for the other
Thanks for your response, Abel
Could you suggest some market which I can swap INJ test tokens?
I am not sure I understand your question, but that would depend on the token you have currently in your wallet that you would like to trade for USDT, right?
yep, of course
I have INJ testnet and tokens in my keplr wallet at the moment.
I'd like to swap it with USDT.
You can also swap, yes. But I was suggesting to use the native orderbook markets
Anyways, whatever works best for you
okay, got it
thanks
It is so damn difficult to find the details of adding inevm to metamask in all the documents of inevm
https://hub.inevm.com/ - Click add chain to Metamask.
Makes it quite hard to trust inevm developers
They should also mention it if someone wants to add it manually
To be safe
Sir, this is the Injective Discord server, not the Caldera Discord server. We are not the implementors of inEVM, hence your post in this tech channel is considered spam
Alright
https://docs.inevm.com/getting-started/add-inevm-to-metamask
The docs do tell you how to add it manually
I have question about this query
https://lcd.injective.network/swagger/#/Query/SpotOrderbook
Here, I can set the several optional params - limit, order_side, limit_cumulative_quantity, limit_cumulative_notional.
The issue is that I cannot get the query with order_side, limit_cumulative_quantity, limit_cumulative_notional.
When set order_side, the query gives error like "message": "strconv.ParseInt: parsing \"Sell\": invalid syntax",.
when set the limit_... params with string like "90.00000000000", the query gives error like math.legacydec is not supported.
I can't figure out how to set these params correctly.
Anyone can help me?
In addition, it would be best for me to know what would be the result when setting limit_... params. (order_side is pretty straightforward for understanding)
Maybe, @topaz seal can you give insight?
i wanna use injective cli, but met some issue
is there anyone who has rich exp of inj cli
How can I fetch sc txs ts indexer doesn’t work
The REST request is failing, I think a similar error that is making the Go SDK gRPC query to fail too (the issue is currently under investigation). You can use the Python SDK to execute the request, or query the spot orderbook indexer endpoint instead of the node endpoint.
Regarding the parameteres, they are explained in the Injective API documentation
Thanks! @topaz seal
Can you let me know the injective API documentation?
What I wanna know is how the limit_cumulative_quantity & limit_cumulative_optional params work.
For example, if I set the limit_cumulative_quantity=10000, would the query fetch the orders with same quantity - 10000? (let's assume I only fetch OrderSide::Sells if necessary)
Or it would fetch the orders of amount which is bigger or less than param quantity?
If it doesn't work then make sure to also provide information about what exactly isn't working, what errors you are getting and the code you tried with, etc. this way you'll get help faster.
Try with Network.TestnetSentry
But I want mainnet data
Network.MainnetSentry then.
In the same directory where you have the code for opting out.
Here's an exmaple .env file:
EXAMPLE_VAR="Example Value"
According to the example here: https://github.com/InjectiveLabs/sdk-python/blob/master/examples/chain_client/exchange/21_MsgRewardsOptOut.py
The variable should be named: INJECTIVE_PRIVATE_KEY
And the value as the value which you want that variable to be, the above script expects the variable to be the private key.
Also please proceed at your own risk and never share your private key with anyone.
You can test on testnet first to make sure everything works.
I need help in the injective swap programatically
Is there anyone who has rich experience of this?
This is urgent task and if you fix, you can get reward
Injective swap? Would you please give us more details?
Thanks so much! @topaz seal
I succeeded to use the python sdk to query the orderbook.
Can you help me one more?
I'd like to know how exactly the limit_cumulative_quantity & limit_cumulative_notional filtering params work.
Other options(limit, order_side) are pretty clear for use.
But, I don't see how the helix markets filter the whole orderbook(all orders) with above optional params.
Can you indicate any reference or example?
Thx in advance!
With those parameters you limit the total quantity and/or notional that should be returned in the response per side of the orderbook
I wanna deploy contract to injective mainnet.
How can I deploy contract to mainnet?
You do that by submitting a governance proposal. The process is explained in the docs
hello, i'm trying to add my token metadata to the token.ts array. but i get a 403 when trying to push? do you know @lime ruin
Hey! I am working for a multi-chain evm project that is launching a token on inEVM through LayerZero. Is it possible to set up a bridge to go from inEVM to INJ mainnet? If so what should my first steps be? Comfortable with both solidity and cosmwasm @topaz seal
How much time it takes?
I am going to use dojo swap
I have tried use dojo swap api and cli
But cant create swap tx, could you let me guide a little?
Push? You'll need to fork and add it then create a pull request.
You likely don't have permission to directly push in the main repository.
i see that makes sense
what is the best rpc endpoint for uploading the smart contract to mainnet?
Hi, who can help me with the token launcher?
I am not sure what you mean with "best". There is only one endpoint. There are multiple node alternatives you can connect to, but endpoint only one
You will have to check inEVM documentation or reach to Caldera's team
sorry for confusing, I am justing asking for node.
The best option is always to run a private node
I'll reach out to Caldera thanks
okay, got it
not possible to run these nodes?
https://docs.injective.network/develop/public-endpoints
yes, it is, unless the public nodes are overloaded and reject the connection
Hy huys, any project for crypto payment built on injective.
I want to use multi send in typescript, anyone got an example?
This is how i do it rn but it seems not very fast and i read there is a multisend method
async function sendInjToMultipleWallets(wallets: string[], amount: number): Promise<string[]> {
const network = Network.Testnet;
const privateKeyHash = process.env.PRIVATE_KEY as string;
const privateKey = PrivateKey.fromHex(privateKeyHash);
const injectiveAddress = privateKey.toBech32();
const msgBroadcaster = new MsgBroadcasterWithPk({
privateKey,
network,
simulateTx: true,
});
const txHashes: string[] = [];
for (const wallet of wallets) {
const msg = MsgSend.fromJSON({
amount: {
denom: 'inj',
amount: new BigNumberInBase(amount).toWei().toFixed()
},
srcInjectiveAddress: injectiveAddress, // Absenderadresse
dstInjectiveAddress: wallet // Empfängeradresse
});
try {
const result = await msgBroadcaster.broadcast({
msgs: msg,
});
const txHash = result.txHash;
if (txHash) {
txHashes.push(txHash);
console.log(`Sent ${amount} to wallet ${wallet}`);
} else {
console.error(`Tx hash not found for ${wallet}`);
}
} catch (error) {
console.error(`Eror while sending to ${wallet}:`, error);
}
}
return txHashes;
} ```
It is a security measure to avoid trades at unwanted price levels due to volatility conditions.
Also, i want to send a specific token. How do i need to set the quantity because it always says spendable balance 2000000factory/tokenaddy/name is smaller than 1000000000000000000000000factory/tokenaddy/name . What i need to do?
Testnet seems to be down.
we aware and it will back online soon
How long will it take? Do you have an ETA?
Hi, I want to create a token on Injective. I have found the tokenstation.app, but it seems it limits you in the tokenomics you can apply to the token. The tokenomics I have in mind require some more coding.
What would you guys recommend the way to go is? Can the code be altered (by me or a developer) if I create it through the tokenstation.app, or would you recommend to download Injectived and go from there with all the coding needed?
I can't code myself, but I have a great idea for a project, so help and advice would be very much appreciated. Thanks!
Hello,
Can you please help me with some questions on wasm contract deployment on mainnet?
I am working for a project that wants to airdrop a tokenfactory token through a smart contract. We already tested the contract successfully on testnet and want to deploy it on mainnet now.
It looks like we need to pass a governance vote according to https://docs.injective.network/develop/guides/injective-101/mainnet-deployment-guide/
But this leaves me with some questions I could not answer by searching through the docs:
- Do we really need to pass a governance vote? There are more contracts stored on-chain than governance proposals and the latest stored contracts are younger than the 4 day voting window. https://explorer.injective.network/codes/ Am I missing something?
- How does the governance proposal deposit work? Is it returned if the proposal is not vetoed?
- Do we even need a deposit? This one passed without having a deposit: https://hub.injective.network/proposal/358
The contract we are planning to use is pretty standard, but I could not find it's checksum already stored on mainnet: https://github.com/CosmWasm/cw-tokens/blob/main/contracts/cw20-merkle-airdrop/src/contract.rs
Hello how do I push to mainnet?
Sounds like you will have to create your own CW20 contract, using cosmwasm
The different prices for a market (mid price, best bid, best ask) can be retrieved from the current market's orderbook
What are you trying to do? I am not sure what you mean with "push"
Sorry I mean deploy
If you are trying to deploy a new contract code, all the information you need is in the docs
Unless you provide all the info required for investigation (the actions you are performing and the full error log), we can't help you debug the issue
injectived tx wasm submit-proposal wasm-store /home/fave/cw404/artifacts/cw404.wasm \
--title "Title of proposal - Upload contract" \
--description "Description of proposal" \
--instantiate-everybody true \
--deposit=1000000000000000000inj \
--run-as [inj_address] \
--gas=10000000 \
--chain-id=injective-1 \
--broadcast-mode=sync \
--yes \
--from [YOUR_KEY] \
--gas-prices=500000000inj
this the command
Error: unknown command "submit-proposal" for "wasm"
Please double check you are using the latest injectived version. I am checking locally in my environment and I don't get that error.
You need also to provide all the required parameters. In your query you are not specifying the node injectived should connect to.
Also the gas-prices you are specifying is incorrect
It is ok to ask questions when you are new, no problem. What is not ok is to ask things that are explained in the documentation pages. Please refer to the docs first, and if the info you need is not there, feel free to ask here
OK.
I literally copied what I saw in the docs and that's what I used and it brought this error.
It was the doc I used to deploy on testnet
Sorry, but I will have to doubt you checked the docs. I have just taken a screenshot of the doc page that provides the command example, and it includes both the required node parameter, and also specifies the correct gas price
damn I was checking the wrong one
can you send me this
thanks
will try it now
facing this error now
--title=Proposal Title: command not found
anyone could help with my error?
The error message is telling you that you are trying to use more tokens than you have in the account
Error: [inj1xzl47mx87r7sx8e6cz9d3q257xtp9fue3dx073].info: key not found what does this means?
Probably that you are trying to use an account to submit the proposal for which you don't have the private key registered in the injectived key files
I just generated so I think its still in the key files
If that is the case then you have a problem in your injectived installation, because it is not finding the key file
so I need to re install it
Not sure. My guess is that you should not be using the public address in your command, but the key name. I can't ensure you need to reinstall injectived, I don't have access to your environment. You will have to take the decission yourself
it doesn't matter how much i put into the amount in the msg it doesn't execute no matter what
i just want to send 1 of the token
i did it although i don't understand why its happening. 0.000000000001 is considered 1 token
the error message is telling you how much you have of the token in that account. If you try to transfer that amount, there will not be any issue
the correct amount of tokens in the account? Run a balance query
is it because inj has 18 decimals and my token has 6 decimals and 18 - 6 is 12
No how much "amount" considered to be 1 token
because i entered 0.000000000001 and it sent 1
Check the token information. You will find there the number of decimals used by the token
I am not sure how you are submitting the MsgSend, that will make a difference.
like this
But in general, if your token decimals is 6, then 1 token is expressed as 1*1e6
btw do you know if there is a multisend msg example?
for typescript
What do you mean with multisend? You can include as many MsgSend messages in a single TX as you wish (considring always the max amount of gas a TX is allowed to consume)
I saw on the python github there is a msgmultisend. I want to send many token at once to a lot of wallets
And above is the way i approach it on typescript
I am not sure if there is a helper function in TS SDK to use the MsgMultisend. You could in any case prepare code in your app to send a MsgMultisend anyways. But I am not sure that will be useful when you can just include many MsgSend messages in a single TX
how can the last one be made though? Include many msgsend in 1 tx? I do have several for several msg
I see the test nodes are on partial outage at the moment.
When can I use the test nodes?
@topaz seal Hey Abel, could you give me your answer?
Please check the TS SDK documentation to find an explanation on how to broadcast TXs. The documentation explains how to include messages in a TX
As soon as the nodes finish catching up with all the blocks. I don't have a time to provide you.
okay, got it
@topaz seal I am not sure the reason why this error occurs at the moment.
Could you help me to resolve the issue?
I guess its related to the injectived version as its just 1.10 in the injective documentation.
https://docs.injective.network/develop/guides/injective-101/local-deployment-guide#2-install-the-injectived-binary
what is the most stable version? 1.12.1?
you should check the releases page https://github.com/InjectiveLabs/injective-chain-releases/releases
Thank you for your response, Abel
I've finally resolved the error with the latest version of injectived.
Btw... now I am going to deploy my smart contract to the mainnet.
Can you give me some guide for that?
Is it necessary to init a new node?
Or is it fine to use one of existing nodes?
Please check the docs. The process to deploy smart contracts is explained there
can you give me the exact link?
I cannot find relevant one in the doc, but just about submitting proposal to mainnet.
Not sure what it is for.
You need to upload your smart contract code to mainnet through a governance proposal.
If the proposal passes your code will be uploaded to mainnet and then you will be able to initiate the contract using the code.
@topaz seal can u tell me how can we fectch txhash from a transaction signed by user, using keplr and leap? cause i am not seeing txhash in response, transaction going through correctly, here is my code:
broadcastTx should return the TX hash
cc: @kind flare
lemme send u response from console, waity a min
its like this, lemme send u with stringified version of log, i mean object opened
response.txHash
Where response is the result of the broadcast. Use TypeScript to make your life easier.
i tried to make life easier with ts, hehehe, it not worked, i made harder by using js again
will try again after exams, i just need to complete this app
got it by this:
console.log("Transaction Hash:", txHash.tx_response.txhash);
thanks for answer, can u lead me to doc where its told how can we read all info by tx hash so i can take tx hash from user
and verify tx on backend, weather user ransacted really or its just a bot doing random api requests.
i wanna do is:
give api this tx hash
check if one of the addresses involved is mine or not (i willl hard code tereasusry adddress in api)
if yes then what was inj ammount, what was $DDL (my token) amount.
if tx happened in reality i can add user new points he gained in database
@topaz seal
https://docs.ts.injective.network/ read our docs
🤦
i have read it infinity times, thats why i am already building dapp on inj