metaplex-foundation / mpl-token-metadata

Program to attach additional data to Fungible or Non-Fungible tokens on Solana.
https://developers.metaplex.com/token-metadata
Other
98 stars 42 forks source link

Error: 410 Gone: The RPC call or parameters have been disabled. #75

Closed caramboleyo closed 1 month ago

caramboleyo commented 6 months ago

i just tried to retrieve digital assets like described here:

const umi = createUmi('https://api.mainnet-beta.solana.com').use(mplTokenMetadata())

const owner = createSignerFromKeypair(umi, {
    publicKey: keypair.publicKey.toString(),
    secretKey: keypair.secretKey,
});
console.log('>>>owner', owner);

const assets = await fetchAllDigitalAssetByOwner(umi, owner)
console.log('>>>assets', assets);

it fails with a 410 error:

/root/www/nodejs/my-metaplex-token-stuff/node_modules/@solana/web3.js/lib/index.cjs.js:6474
        callback(new Error(`${res.status} ${res.statusText}: ${text}`));
                 ^

Error: 410 Gone:  {"jsonrpc":"2.0","error":{"code": 410, "message":"The RPC call or parameters have been disabled."}, "id": "365043e9-04db-4f83-a456-8695b7570c33" } 

    at ClientBrowser.callServer (/root/www/nodejs/my-metaplex-token-stuff/node_modules/@solana/web3.js/lib/index.cjs.js:6474:18)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
samuelvanderwaal commented 4 months ago

i just tried to retrieve digital assets like described here:

const umi = createUmi('https://api.mainnet-beta.solana.com').use(mplTokenMetadata())

const owner = createSignerFromKeypair(umi, {
  publicKey: keypair.publicKey.toString(),
  secretKey: keypair.secretKey,
});
console.log('>>>owner', owner);

const assets = await fetchAllDigitalAssetByOwner(umi, owner)
console.log('>>>assets', assets);

it fails with a 410 error:

/root/www/nodejs/my-metaplex-token-stuff/node_modules/@solana/web3.js/lib/index.cjs.js:6474
        callback(new Error(`${res.status} ${res.statusText}: ${text}`));
                 ^

Error: 410 Gone:  {"jsonrpc":"2.0","error":{"code": 410, "message":"The RPC call or parameters have been disabled."}, "id": "365043e9-04db-4f83-a456-8695b7570c33" } 

    at ClientBrowser.callServer (/root/www/nodejs/my-metaplex-token-stuff/node_modules/@solana/web3.js/lib/index.cjs.js:6474:18)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

The free public RPC prohibits certain types of resource-intensive calls because they get abused. fetchAllDigitalAssetsByOwner is one of them, so you will need to use a custom RPC that supports "getProgramAccount" calls on the Token Metadata program. More details and some RPC options are here.

blockiosaurus commented 1 month ago

Question answered, thanks @samuelvanderwaal!