Stop Scrolling Docs. Start Building. Meet - Copy-n-Paste PAPI

Hi folks! :waving_hand:

I just put together Copy-n-Paste PAPI — a PAPI Explorer webapp that helps you get hands-on with the Polkadot-API without the tab-hopping. If digging through papi.how or dev.papi.how feels like a maze when you just want to see things work, this gives you a single place to explore and learn by doing.

What’s inside:

  • Browse everything in one go: chain modules, storage, constants, runtime calls, events, and extrinsics.

  • Test transactions without the risk: simulate first, inspect payloads/signatures, and see decoded events before you broadcast.

  • Grab ready-to-paste TypeScript: copy snippets straight into your project.

  • Quick chain/account switcher: hop between relay/system chains and accounts fast.

  • Built for onboarding: go from reading to simulating to sending with as few clicks as possible.

Try the webapp:
https://papi-copy-n-paste-web.vercel.app/

After a demo, I got encouraging feedback from Shawn Tabrizi (Parity), Jakub (Hydration) and PAPI team to post this here. I’m fairly new to Polkadot myself, coming from other blockchain ecosystems, and I think this can help other ecosystem developers.

Quick starter (optional):
I also published create-papi-app to scaffold a PAPI project with templates (minimal, vite-react, next-app, node-cli).
Run:
npx create-papi-app
Package: https://www.npmjs.com/package/create-papi-app

Feedback welcome:

  • Webapp UX: what should be one-click? what’s confusing?

  • Missing examples: storage/transactions/events you’d like prefilled?

  • Starter gaps: env setup, wallet integrations, SSR patterns, tests?

I’m actively looking for feedback and collaborators. If you try it, please share bugs, rough edges, or ideas — happy to pair up or review PRs.

PS: I am currently in PBA Bali (Dapps track), if someone wants to chat about this, please find me. I would be glad.

Thanks for reading! :folded_hands:

9 Likes

This tool helped me navigate Papi calls for my personal project. <3

I can not give you PAPI related feedback as I’ve never worked with it… yet :wink:
But maybe thats actually good. Here is how I interacted with it:

I open up papi-copy-n-paste and immediately my attention goes to the dropdown’s on the left. I click wildly around on them to collapse and hide.
Now inside “Balances > Storage > Locks” the “Run Query” button is disabled and I am wondering why. I was hoping when I would fill the SS58String I could do the call - but the state didn’t change. Some kind of feedback about why something doesnt work would be helpful here.

Furthermore a few times when the Button was available, I received the error: “:warning: Storage key not known for Auctions.AuctionCounter”. If I added the call to the Queue and executed the queue it presented the Queue run to be successful despite the missing key error in the “Auctions.AuctionCounter”.

When I have something inside the queue all the other calls become available as well. However, when I run them only the queue is being executed, not the selected call. Idk if this is intended but it feels buggy.

“VoterList > Calls > rebag” - when I select Alice the button becomes disabled.

I can not give you PAPI related feedback as I’ve never worked with it… yet :wink:
But maybe thats actually good. Here is how I interacted with it:

I open up papi-copy-n-paste and immediately my attention goes to the dropdown’s on the left. I click wildly around on them to collapse and hide.
Now inside “Balances > Storage > Locks” the “Run Query” button is disabled and I am wondering why. I was hoping when I would fill the SS58String I could do the call - but the state didn’t change. Some kind of feedback about why something doesnt work would be helpful here.

Furthermore a few times when the Button was available, I received the error: “:warning: Storage key not known for Auctions.AuctionCounter”. If I added the call to the Queue and executed the queue it presented the Queue run to be successful despite the missing key error in the “Auctions.AuctionCounter”.

When I have something inside the queue all the other calls become available as well. However, when I run them only the queue is being executed, not the selected call. Idk if this is intended but it feels buggy.

“VoterList > Calls > rebag” - when I select Alice the button becomes disabled.

I’ll ask a colleague with more dApp and PAPI experience to take a look and share additional feedback.

Cheers :confetti_ball:

Yup, fixed now, also added many more features.
Now we have constants, events, errors

Do give it a try folks

Really cool tool! Might add it to hackathon-guide/polkadot-tinkerers.md at 56f28753f063f148909bab34e110b524fd5b3989 · polkadot-developers/hackathon-guide · GitHub, if you don’t mind :wink:

1 Like

@bader Sure sure.

1 Like

This is super helpful, I was lost in PAPI, this has made it so much easier for beginners to use it.
Thanks.

1 Like

Hey folks, would it be helpful if we can connect a real wallet here and make actual queries and transactions, since we have the setup already here?

If you go down this path, then it’s probably a great idea to use DOTConnect by @tien . It’s pretty awesome!

2 Likes

Thank you so much Josep, looks really good.